Programming with non-heap memory in the real time specification for Java
Greg Bollella, Tim Canham, Vanessa Carson, Virgil Champlin, Daniel L. Dvorak, Brian J. Giovannoni, Mark Indictor, Kenny Meyer, Alex T. Murray, Kirk Reinholtz · 2003
The Real-Time Specification for Java (RTSJ) provides facilities for deterministic, real-time execution in a language that is otherwise subject to variable latencies in memory allocation and garbage collection. A major consequence of these facilities is that the normal Java practice of passing around references to objects in heap memory cannot be used in hard real-time activities. Instead, designers must think carefully about what type of non-heap memory to use and how to transfer data between components without violating RTSJ's memory-area assignment rules. This report explores the issues of programming with non-heap memory from a practitioner's view in designing and programming real-time control loops using a commercially available implementation of the RTSJ.