1000 Java Tips ebook
Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java
programming articles and tips. Please take your copy here.
Take your copy of free "Java Technology Screensaver"!.
The Multi-Tasking Virtual Machine: Building a Highly Scalable JVM
JavaFAQ Home » Good To Know
Some programming tasks related to systems programming cannot be performed
solely using the standard Java libraries. Developers might have to use
native code, scripting languages, and C or C++ before returning to Java
code. For example, stating that a given Java computation should have the
exclusive right to use at least 50% of the processor time of its host
machine, or that its network usage should be limited to at most 5 MBs,
cannot be expressed with the current interfaces.
And, today, when a user runs multiple Java applications concurrently in
different instances of the Java virtual machine (JVM), there tends to be
substantial duplication of effort in each JVM. For example, when multiple
applications are executed concurrently, each has to load, parse, verify, and
create runtime representations of all the applications' classes, even such
common ones as
java.lang.Object. Application start-up time,
memory footprint, and raw execution time are thus negatively impacted.
Developers who try to circumvent the problem by using class loaders soon
discover that they provide inadequate inter-application isolation and make
it difficult to cleanly terminate applications.
Sun Microsystems Laboratories'
Barcelona research team, led by Dr. Grzegorz Czajkowski, is addressing
both of these problems by developing techniques that allow for collocation
of multiple applications in a single instance of the virtual machine.
Applications are isolated from one another and each "thinks" it has the
whole virtual machine all to itself. Aggressive transparent sharing of
metadata, such as bytecodes of methods, reduces application footprint and
start-up time. Furthermore, through building on the foundation of an
isolated Java computation (known as an "isolate"), the team has developed a
set of resource management techniques and APIs which allow developers to
define new resource types, partition resources among computations, and
control resource management overhead.
The Multi-Tasking Virtual Machine
The proposed extensions and modifications to the JVM have been prototyped as the
Multi-Tasking Virtual Machine (MVM). Existing Java bytecodes can run unmodified,
enjoying scalability benefits. New applications can take advantage of new
abstractions and interfaces currently missing from the Java platform to
accomplish a variety of systems programming tasks. "Across all the metrics of
scalability we want to improve the well-being of Java programs," remarks
Czajkowski. "We are scaling the Java platform and turning it into a complete
operating environment, by adding various APIs and extensions so that anything
you currently want to do in the domain of systems programming, you can do from
within the language."
The MVM is a general-purpose virtual machine for executing multiple
applications written in the Java language, based on the Java HotSpot Virtual
Machine and its client compiler. Through hosting multiple tasks, the MVM
increases the scalability of the Java platform.
Read the rest
Printer Friendly Page
Send to a Friend
Search here again if you need more info!