Multitasking without compromise: a virtual machine evolution

  • Authors:
  • Grzegorz Czajkowski;Laurent Daynàs

  • Affiliations:
  • Sun Microsystems Laboratories, Mountain View, CA;Sun Microsystems Laboratories, Mountain View, CA

  • Venue:
  • ACM SIGPLAN Notices - Supplemental issue
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Multitasking Virtual Machine (called from now on simply MVM) is a modification of the Java芒聞垄 virtual machine. It enables safe, secure, and scalable multitasking. Safety is achieved by strict isolation of applications from one another. Resource control mechanisms augment security by preventing some denial-ofservice attacks. Improved scalability results from an aggressive application of the main design principle of MVM: share as much of the runtime as possible among applications and replicate everything else. The system can be described as a 'no compromise' approach -- all the known APIs and mechanisms of the Java programming language are available to applications. MVM is implemented as a series of carefully tuned modifications to the Java HotSpot芒聞垄 virtual machine, including the dynamic compiler. This paper presents the design of MVM, focusing on several novel and general techniques: an in-runtime design of lightweight isolation, an extension of a copying, generational garbage collector to provide best-effort management of a portion of the heap space, and a transparent and automated mechanism for safe execution of user-level native code. MVM demonstrates that multitasking in a safe language can be accomplished with a high degree of protection, without constraining the language, and with competitive performance characteristics.