Skip to main content

Sharing the Virtual Machine (technical session)

Posted by hiheiss on June 30, 2004 at 8:20 PM PDT

Just left the "Sharing the Virtual Machine" session TS-3207, all
about scaling the JVM through sharing, and making the JVM a
complete operating environment. The large hall was full as two
researchers from Sun Labs, Grzegorz
Czajkowski (presenting) and Mick Jordan, working from prototypes
that are modifications of the
HotSpot Java Virtual Machine, version 1.3.1, for the Solaris
Operating Environment using a client compiler, reported
impressive results on a SunFire 280R server. The take home
message: the best way to scale Java technology is to co-locate
multiple computations in a specially modified JVM. Users can
securely manipulate private files, load their native libraries without
endangering other computations and use all standard APIs. The
modified JVM requires auxiliary processes for multiple operating
system resource and user contexts, but the operating system itself
requires no modification.

The idea is to improve start-up time and performance, and decrease
memory footprint. They have tried two experiments; one involving
shared meta-data through shared memory, while the other encoded
Java packages as shared libraries. They found similar
improvements in both prototypes, with a 10% start-up time
decrease and a memory footprint reduction of 10%. The cost of
multiple OS processes is an obstacle. And shared VMs are more
difficult owing to position independence and compiled code.

The only technical criticism of multiple VMs is that the situation is
similar to OS processes' dependency on the well-being of the
kernel. And there can be a problem with buggy implementations.

As for scalability of multiple VMs, start-up time is down to 4% for
non-GUI apps and down 33% for GUI apps. Memory footprint is
down between 50%-70%. The overall performance is increased
through the benefits of collocation.

The general conclusion: Re-architecting the JVM to host multiple
Java applications outperforms cross-process meta-data sharing in
regard to start-up time, memory footprint and performance. Steps
are being taken towards a complete operating environment for the
Java programs, in the form of an API for application of life-cycle
management and an API for resource management. The research
prototype is in progress, and Java 2 Platform, Micro Edition
productization is underway.

Go to TS 1634, Thursday, 2:30 p.m., July 1, Gateway 104 for more
information about multiple VMs core technologies in a multi-
tasking virtual machine for J2ME, targeted at the cellular phone

The Barcelona Project Web Pages

JSR 121