1 / 18

The Jikes RVM

The Jikes RVM. Dr. Ian Rogers Jikes RVM Core Team Member Research Fellow, Advanced Processor Technologies Group, The University of Manchester. What is the Jikes RVM?. An open source JVM project Released under the CPL license Written in Java

julie
Télécharger la présentation

The Jikes RVM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Jikes RVM Dr. Ian Rogers Jikes RVM Core Team Member Research Fellow, Advanced Processor Technologies Group, The University of Manchester

  2. What is the Jikes RVM? • An open source JVM project • Released under the CPL license • Written in Java • Started as a closed source IBM research project calledJalapeño in December 1997

  3. Some of the major components • Runtime system • Dynamic linking and class loader • Thread support • Garbage collector - MMTk • Copying and noncopying, generational and nongenerational, hybrids • Type accurate - used in other projects rotor, ovm • Baseline compiler – fast 1st compilation • Optimizing compiler • HIR → LIR → MIR conversion with optimisation at each level • Extended Array SSA form phases; BURS based instruction selector • On stack replacement, allows backing out of compiler decisions • Adaptive optimization system • Cost/benefit model to decide when and what to recompile • Boot image writer/runner

  4. Why write a JVM in Java? • Most parts of the JVM don’t need to know about pointers • For the parts that don’t we use compiler magic: • Pragmas – tell the compiler not to emit the normal code sequence • Unboxed – special types that behave more like primitive types (e.g. Address) • There are potential benefits: • Compilation ahead of time of libraries into the boot image • No barriers to method inlining (other than JNI) • Reuse of Java tools • Platform independence • There are potential problems: • GC has to handle the application and the JVM • Boot strapping issues (e.g. class initializers)

  5. Other Java in Java VMs • JavaInJava – Sun Microsystems 1998 • Squawk – Sun Microsystems 2002 • Ovm – Purdue 2004 • Rivet – MIT 1999 • Joeq – Stanford 2001 • Moxie – Intel 2006 And OS projects: • JNode – Prengsma 2003 • JX OS – Erlangen 2001 • JANOS – Utah 1999

  6. Some early project highlights • Nov ‘97: project initiated • Mar ‘98: opt compiler, • Jan ‘00: adaptive system • 2000: Port to Linux/PPC (UMass) • Jan ‘01 – 10/01: university releases to 16 universities via IP agreements • Not open source, can’t collaborate, can’t use for teaching • Oct ’01: Open source release (CPL) • “Jalapeno”  “Jikes RVM” • Used non-open source libraries from OTI • Dec ‘02: Switched to Classpath (mostly) • Apr ’03: Full switch to Classpath, runs Eclipse • Dec ’03: MacOS/PPC32 • Nov ’04: AIX/PPC64

  7. Since then… • Regression testing infrastructure • Constant improvements throughout the VM • Move to make source editable in Eclipse • Switch to ant based build system • Support for Java 5.0 • Rewrite of portions of the VM to use Java 5.0 language features

  8. Related research • Lots of garbage collection papers! • Dynamic parallelization • Manchester, Toronto • Transactional memories • Stanford • Distributed JVM • ANU • Aspects • Steamloom – open source VM with dynamic aspects - Darmstadt • Machine learning for GC, dynamic compilation, … • Binary translation • PearColator – open source x86 and PPC binary translator - Manchester • Dynamically typed language support • Parakeet – open source Parrot VM - Manchester

  9. Publications

  10. Dissertations

  11. Hopefully coming soon.. • Interpreter • JDWP support • x86 64 support • JNode integration

  12. Thanks Please visit us at: http://www.jikesrvm.org/

More Related