This report describes the design and implementation work which has been undertaken using the Java Virtual Machine (JVM) over the Nemesis operating system. The aim is to provide a Java runtime system which is able to support a diverse mix of traditional and soft-real-time applications, just as the Nemesis operating system aims to provide this support to native applications. The report covers three aspects of this work: an interface between Java applications and native services, a run-time code generator that may operate safely under the control of the application and a garbage collector that enables the heap to be partitioned into separately-managed sections. It finally presents the design and prototype implementation of an eXtensible Virtual Machine (XVM) which
|
5825
|
Introduction to Algorithms
– Cormen, Leiserson, et al.
- 1992
|
|
1127
|
Smalltalk-80: The Language and Its Implementation
– Goldberg, Robson
- 1983
|
|
381
|
Uniprocessor Garbage Collection Techniques
– Wilson
- 1992
|
|
299
|
Pizza into Java: Translating theory into practice
– Odersky, Wadler
|
|
297
|
Garbage Collection: Algorithms for automatic dynamic memory management
– Jones, Lins
- 1996
|
|
283
|
Making the future safe for the past: adding genericity to the java programming language
– Bracha, Odersky, et al.
- 1998
|
|
280
|
Generation scavenging: A non-disruptive high performance storage reclamation algorithm
– Ungar
- 1984
|
|
241
|
Region-Based Memory Management
– Tofte, Talpin
- 1997
|
|
214
|
Efficient Implementation of the Smalltalk-80 System
– Deutsch, Schiffman
- 1984
|
|
175
|
The Java Language Specification. The Java Series
– Gosling, Joy, et al.
- 1996
|
|
159
|
Parameterized Types for Java
– Myers, Bank, et al.
- 1997
|
|
143
|
An Efficient Implementation of SELF – a Dynamically-Typed Object-Oriented Language Based on Prototypes
– Chambers, Ungar, et al.
- 1989
|
|
139
|
Optimizing Dynamically-Dispatched Calls With RunTime Type Feedback
– Hölzle, Ungar
- 1994
|
|
132
|
Dynamic class loading in the Java vir-tual machine
– Liang, Bracha
- 1998
|
|
132
|
The Java Virtual Machine Specification. The Java Series
– Lindholm, Yellin
- 1997
|
|
127
|
Making Pure Object-Oriented Languages Practical
– Chambers, Ungar
- 1991
|
|
96
|
Threaded code
– Bell
- 1973
|
|
94
|
Adding Type Parameterization to the Java Language
– Agesin, Freund, et al.
- 1997
|
|
89
|
Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming
– Hölzle
- 1995
|
|
88
|
Space efficient conservative garbage collection
– Boehm
- 1993
|
|
79
|
Java Intermediate Bytecodes
– Gosling
- 1995
|
|
70
|
The Treadmill: Real-time garbage collection without motion sickness
– Baker
- 1992
|
|
55
|
Eicken. Jres: a resource accounting interface for java
– Czajkowski, von
- 1998
|
|
42
|
Drawing the Red Line in Java
– Back, Hsieh
- 1999
|
|
42
|
Byte Code Engineering
– DAHM
- 1999
|
|
41
|
Nested Java processes: OS structure for mobile code
– Tullmann, Lepreau
- 1998
|
|
37
|
RCANE: A Resource Controlled Framework for Active Network Services
– Menage
- 1999
|
|
37
|
Compiling away the meta-level in object-oriented concurrent reflective languages using partial evaluation
– Masuhara, Matsuoka, et al.
|
|
31
|
Debugging optimized code with dynamic deoptimization. SIGPLANNotices
– olzle, Chambers, et al.
- 1992
|
|
30
|
A high-performance garbage collector for Standard ML
– Reppy
- 1993
|
|
27
|
The Java HotSpot virtual machine architecture
– Griswold
- 1998
|
|
24
|
A gcc-based Java implementation
– Bothner
- 1997
|
|
23
|
A theory of stack allocation in polymorphically typed languages
– Tofte, Talpin
- 1993
|
|
22
|
On bounding time and space for multiprocessor garbage collection
– Blelloch, Cheng
- 1999
|
|
19
|
Real-time replication-based garbage collection
– Nettles, O'Toole
- 1993
|
|
15
|
A dynamically configurable, multi-language execution platform
– Folliot, Piumarta, et al.
- 1998
|
|
14
|
A brief introduction to regions
– Tofte
- 1998
|
|
13
|
Design and implementation of Pep, a Java just-in-time translator. Theory and Practice of Object Sytems
– Agesen
- 1997
|
|
13
|
Parametric Polymorphism of Java: A Reflective Solution. OOPSLA
– Solorzano, Alagic
- 1998
|
|
10
|
A memory-efficient real-time non-copying garbage collector
– Lim, Pardyak, et al.
- 1998
|
|
8
|
A first taste of Vanilla
– Dobson
- 1998
|
|
8
|
Controlling Run-time Compilation
– Harris
- 1998
|
|
6
|
An Extensible Virtual Machine Architecture
– Harris
- 1999
|
|
6
|
How to soup up Java. Byte
– Halfhill
- 1998
|
|
6
|
Family Developer's Manual, volume 2, programmer's reference manual
– Pro
- 1996
|
|
4
|
Early storage reclamation in a tracing garbage collector
– HARRIS
- 1999
|
|
2
|
Fast and effective code generation in a just-in-time Java compiler
– Compilers, Techniques, et al.
- 1986
|
|
1
|
IP version 4 on Nemesis
– Ahlgren, Voigt
- 1998
|
|
1
|
Steele Guy L. Compatible genericity with run-time types for the java programming language
– Cartwright, r
|
|
1
|
Nemesis JVM implementation
– Harris
- 1998
|