As applications executing in virtual machine runtime environments such as the Java Virtual Machine and the .NET Common Language Runtime become more prevalent on desktop operating systems, this trend raises the interesting question of the best model for supporting multiple applications in virtual machine environments. A natural model is to execute each application in its own virtual machine process. However, multiple applications could also be executed in a single virtual machine process by leveraging the protection and security features of the programming languages used by the applications. Executing within a single virtual machine process makes it easier to share code and data and communicate among the processes. In this paper, we present an intermediate model for supporting multiple applications in virtual machine environments for desktop operating systems. We argue that applications should take advantage of the protection features and resource management provided by the operating system and execute each application in its own virtual machine process. However, to facilitate code reuse, reduce application initialization time, and facilitate interprocess communication among applications in different virtual machines, we propose extending virtual machine implementations with the use of a shared class cache and an efficient serialization implementation optimized for local machine interprocess communication. To demonstrate and evaluate our approach, we describe the design and implementation of a shared class cache and optimized class serialization in the Java virtual machine, and evaluate our implementation using a set of application and micro-benchmarks.
The authors of these documents have submitted their reports to this technical report series for the purpose of non-commercial dissemination of scientific work. The reports are copyrighted by the authors, and their existence in electronic format does not imply that the authors have relinquished any rights. You may copy a report for scholarly, non-commercial purposes, such as research or instruction, provided that you agree to respect the author's copyright. For information concerning the use of this document for other than research or instructional purposes, contact the authors. Other information concerning this technical report series can be obtained from the Computer Science and Engineering Department at the University of California at San Diego, firstname.lastname@example.org.
[ Search ]