Part II
Architecture
This section describes the architecture of Jikes RVM. Jikes RVM can be divided into the following components:
- Core Runtime Services: (thread scheduler, class loader, library support, verifier, etc.) This element is responsible for managing all the underlying data structures required to execute applications and interfacing with libraries.
- Magic: The mechanisms used by Jikes RVM to support low-level systems programming in Java.
- Compilers: (baseline, optimizing, JNI) This component is responsible for generating executable code from bytecodes.
- Memory managers: This component is responsible for the allocation and collection of objects during the execution of an application.
- Adaptive Optimization System: This component is responsible for profiling an executing application and judiciously using the optimizing compiler to improve its performance.
- Interface to the Class Library: This component is responsible for handling the interaction between the Core Runtime Services and the Java class library.
12 Adaptive Optimization System
12.1 AOS Controller
12.2 Cost Benefit Model
12.3 Jikes RVM’s compilers
12.4 Life Cycle of a Compiled Method
12.5 Logging and Debugging
12.6 Threading and Yieldpoints
13 Compilers
13.1 Baseline Compiler
13.2 Optimizing Compiler
14 Core Runtime Services
14.1 Object Model
14.2 Class and Code Management
14.3 Thread Management
14.4 JNI
14.5 Exception Management
14.6 Bootstrap
14.7 Calling Conventions
14.8 VM Callbacks
15 Magic
15.1 Compiler Intrinsics
15.2 Unboxed Types
15.3 Raw Memory Access
15.4 Uninterruptible Code
16 MMTk
16.1 Anatomy of a Garbage Collector
16.2 Memory Allocation in Jikes RVM
16.3 Scanning Objects in Jikes RVM
16.4 Using GCSpy
17 Interface to the Class Library
17.1 Overview
17.2 GNU Classpath VM interface
17.3 Naming conventions
17.4 Build organisation
12.1 AOS Controller
12.2 Cost Benefit Model
12.3 Jikes RVM’s compilers
12.4 Life Cycle of a Compiled Method
12.5 Logging and Debugging
12.6 Threading and Yieldpoints
13 Compilers
13.1 Baseline Compiler
13.2 Optimizing Compiler
14 Core Runtime Services
14.1 Object Model
14.2 Class and Code Management
14.3 Thread Management
14.4 JNI
14.5 Exception Management
14.6 Bootstrap
14.7 Calling Conventions
14.8 VM Callbacks
15 Magic
15.1 Compiler Intrinsics
15.2 Unboxed Types
15.3 Raw Memory Access
15.4 Uninterruptible Code
16 MMTk
16.1 Anatomy of a Garbage Collector
16.2 Memory Allocation in Jikes RVM
16.3 Scanning Objects in Jikes RVM
16.4 Using GCSpy
17 Interface to the Class Library
17.1 Overview
17.2 GNU Classpath VM interface
17.3 Naming conventions
17.4 Build organisation