This paper presents our experience implementing the memory management extensions in the Real-Time Specification for Java. These extensions are designed to given real-time programmers the control they need to obtain predictable memory system behavior while preserving Java's safe memory model.We describe our implementation of certain dynamic checks required by the Real-Time Java extensions. In particular, we describe how to perform these checks in a way that avoids harmful interactions between the garbage collector and the memory management system. We also found that extensive debugging support was necessary during the development of Real-Time Java programs. We therefore used a static analysis and a dynamic debugging package during the development of our benchmark applications.
[1]
James Gosling,et al.
The Real-Time Specification for Java
,
2000,
Computer.
[2]
David Gay,et al.
Language support for regions
,
2001,
PLDI '01.
[3]
Martin C. Rinard,et al.
Pointer and escape analysis for multithreaded programs
,
2001,
PPoPP '01.
[4]
Morten V. Christiansen,et al.
Region-Based Memory Management in Java
,
1998
.
[5]
David Gay,et al.
Memory management with explicit regions
,
1998,
PLDI.
[6]
Mads Tofte,et al.
Region-based Memory Management
,
1997,
Inf. Comput..