"The Jalapeno Virtual Machine"
Bowen Alpern, IBM
Jalapeno is a Java virtual machine (JVM) under development at IBM's T. J. Watson Research Center. Jalapeno is designed to meet the performance and scalability requirements of SMP servers. A novel aspect of Jalapeno is its implementation in Java.
Jalapeno's unique object model allows a hardware null-pointer check as well as fast access to array elements, fields, and methods. Java threads are multiplexed by virtual processors (implemented as operating system threads). A family of concurrent object allocators and parallel type-accurate garbage collectors is supported. Jalapeno's inter-operable compilers enable quasi-preemptive thread switching and precise location of object references. Jalapeno's dynamic optimizing compiler will produce high quality code for methods that are observed to be frequently invoked and/or computationally intensive.
Implementing Jalapeno in Java ought to be problematic since Java programs normally require a JVM to run on. In fact, we encountered only two real difficulties: getting the JVM started, and circumventing Java language restrictions in the JVM implementation while preserving them for the programs that run on the JVM.
After briefly discussing some key features of Jalapeno, I will describe how we addressed the difficulties of implementing it in Java.