Lightweight recoverable virtual memory
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Free transactions with Rio Vista
Proceedings of the sixteenth ACM symposium on Operating systems principles
Quicksilver: a quasi-static compiler for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Application isolation in the Java Virtual Machine
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Multitasking without comprimise: a virtual machine evolution
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
The JavaSeal Mobile Agent Kernel
ASAMA '99 Proceedings of the First International Symposium on Agent Systems and Applications Third International Symposium on Mobile Agents
Building a Java virtual machine for server applications: the Jvm on 0S/390
IBM Systems Journal
Processes in KaffeOS: isolation, resource management, and sharing in java
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Implementing multiple protection domains in java
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Luna: a flexible Java protection system
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Java object look aside buffer for embedded applications
MEDEA '03 Proceedings of the 2003 workshop on MEmory performance: DEaling with Applications , systems and architecture
Scaling J2EE™ application servers with the Multi-tasking Virtual Machine
Software—Practice & Experience - Research Articles
Heap protection for Java virtual machines
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
ATEC '03 Proceedings of the annual conference on USENIX Annual Technical Conference
Cloneable JVM: a new approach to start isolated java applications faster
Proceedings of the 3rd international conference on Virtual execution environments
Process-shared and persistent code caches
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Recoverable class loaders for a fast restart of Java applications
Proceedings of the 1st international conference on MOBILe Wireless MiddleWARE, Operating Systems, and Applications
MTM2: Scalable Memory Management for Multi-tasking Managed Runtime Environments
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Recoverable class loaders for a fast restart of Java applications
Mobile Networks and Applications
Scaling J2EE™ application servers with the multi-tasking virtual machine
Scaling J2EE™ application servers with the multi-tasking virtual machine
Optimized memory management for class metadata in a JVM
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Sharing the runtime representation of classes across class loaders
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Virtualization of service gateways in multi-provider environments
CBSE'06 Proceedings of the 9th international conference on Component-Based Software Engineering
S-RVM: a secure design for a high-performance java virtual machine
Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
Hi-index | 0.00 |
Sharing of code among applications executing in separate virtual machines can lead to memory footprint reductions and to performance improvements. The design of a general and acceptable sharing mechanism is challenging because of several constraints: performance considerations, the possibility of dynamic class loading, dependencies between shared code and the runtime system, and the potential of adverse impact on the runtime's reliability and on ease of maintenance. This paper analyzes these tradeoffs in the context of two modifications to the Java驴 virtual machine (JVM驴). The first allows for sharing of bytecodes and class information across multiple virtual machines, each of which executes in a separate operating system process, using shared memory. The second additionally enables the sharing of dynamically compiled code. Their design and performance are evaluated against two other approaches: running each application in a separate instance of an unmodified virtual machine, and running all applications in a single instance of a multitasking virtual machine.