Multitasking without compromise:: a virtual machine evolution

被引:14
作者
Czajkowski, G [1 ]
Daynès, L [1 ]
机构
[1] Sun Microsyst Labs, Mt View, CA 94043 USA
关键词
!text type='Java']Java[!/text] virtual machine; application isolation; resource control; native code execution;
D O I
10.1145/504311.504292
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Multitasking Virtual Machine (called from now on simply MVM) is a modification of the Java (TM) 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-of-service 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 (TM) 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.
引用
收藏
页码:125 / 138
页数:14
相关论文
共 30 条
[1]  
Arnold K., 1998, JAVA PROGRAMMING LAN
[2]  
BACK G, 2000, 4 S OP SYST DES IMPL
[3]  
BALFANZ D, 1997, 56097 PRINC U DEP CO
[4]  
BRYCE C, 1999, 3 INT S MOB AG PALM
[5]  
BRYCE C, 2000, ACM OOPSLA 00
[6]  
Czajkowski G., 2001, TR0196 SUN MICR LAB
[7]  
CZAJKOWSKI G, 1998, ACM OOPSLA 98
[8]  
CZAJKOWSKI G, 2000, ACM OOPSLA 00
[9]  
Dillenberger W., 2000, IBM SYSTEMS J, V39
[10]  
GONG L., 1999, INSIDE JAVA 2 PLATFO