Beautiful Architecture

(avery) #1

JTOC


As described earlier in “Object Layout,” the JTOC is responsible for holding literal and
static field values. Traversing the JTOC produces the boot image.

Boot record
A table at the beginning of the data image that contains data shared between the boot
image runner and Jikes RVM. These values typically cannot be determined during the
bootstrap.


Boot Image Runner

Data Image

Code Image

Root Map

Boot Image

MMTk Spaces

Native Libraries

Stack for Boot Image Runner

0x00000000

0xFFFFFFFF

...
Code Array
Code Array

...
Object
Object
JTOC
Boot Record

FIGURE 10-4. The runtime memory layout of Jikes RVM


Compiling the Primordials and Filling in the JTOC


The primordials are a collection of classes that must be built into the boot image for it to run.
The most important primordial is org.jikesrvm.VM, which is responsible for starting the virtual
machine. If something isn’t part of the boot image, and therefore isn’t a primordial, then it is
referenced. When a referenced object is accessed at runtime, it causes the class loader to load
and link the referenced class.


244 CHAPTER TEN

Free download pdf