Tutorial
Sunday,
September 9, 2001
The
Design and Implementation of the Jalapeņo JVM
Michael Hind (1) and Dick Attanasio (2), IBM Research
The design and implementation of a high-performing Java virtual machine
is a formidable task. Over the past three years IBM researchers have
developed the Jalapeno JVM as a high-performing server platform. To
address the requirements of servers, performance and scalability in
particular, Jalapeņo was designed from scratch to be as self-sufficient
as possible. Key design features of Jalapeņo include:
- the
entire JVM is implemented in Java,
- a
flexible online adaptive optimization infrastructure, implemented
as concurrent Java threads, utilizes two compilers and no interpreter
guided by a cost-benefit model
- a
family of parallel, type-exact garbage collectors,
- a
lightweight thread package with compiler-supported preemption, and
- an
aggressive optimizing compiler with multiplel optimization levels.
This
tutorial will share the lessons learned from the design and implementation
of Jalapeņo. Design decisions will be contrasted to other Java implementations.
Jalapeņo runs on AIX/PowerPC and Linux/IA32 architectures. Several universities
have full source access to Jalapeņo and are using it as a research infrastructure.
Further information about Jalapeņo is available at http://www.research.ibm.com/jalapeno.
(1)
Michael Hind
is a Research Staff Member at IBM's Thomas J. Watson Research Center.
He received his Ph.D. from New York University in 1991 and was a professor
of computer science at the State University of New York at New Paltz
from 1992-1998. He is currently working on the Jalapeņo Java Virtual
Machine at IBM, where he is managing the Dynamic Optimization group.
His research interests include program analysis, adaptive optimization,
and programming languages.
(2) C. R. Attanasio is a Research Staff Member at the T.J. Watson Research
Center. He joined IBM in 1965 and has been involved in systems and database
programming and analysis projects, including security evaluation and
enhancement of VM/370, AIX-based networking enhancements, and a bytecode
verifier for Java. As part of the Jalapeno project he has implemented
a never-copying mark/sweep storage manager with a generational variant,
and cooperated in other variants of storage managers.