Interaction of Virtual Machine with the Operating System
Skip to main content
eScholarship
Open Access Publications from the University of California

Interaction of Virtual Machine with the Operating System

Abstract

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.

Pre-2018 CSE ID: CS2002-0728

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View