Scoped types and aspects for real-time Java memory management

Abstract Real-time systems are notoriously difficult to design and implement, and, as many real-time problems are safety-critical, their solutions must be reliable as well as efficient and correct. While higher-level programming models (such as the Real-Time Specification for Java) permit real-time programmers to use language features that most programmers take for granted (objects, type checking, dynamic dispatch, and memory safety) the compromises required for real-time execution, especially concerning memory allocation, can create as many problems as they solve. This paper presents Scoped Types and Aspects for Real-Time Systems (STARS) a novel programming model for real-time systems. Scoped Types give programmers a clear model of their programs’ memory use, and, being statically checkable, prevent the run-time memory errors that bedevil the RTSJ. Adopting the integrated Scoped Types and Aspects approach can significantly improve both the quality and performance of a real-time Java systems, resulting in simpler systems that are reliable, efficient, and correct.

[1]  David L. Detlefs,et al.  Proceedings of the 3rd international symposium on Memory management , 2002 .

[2]  James Noble,et al.  Small memory software - patterns for systems with limited memory , 2000 .

[3]  Andy J. Wellings,et al.  Evaluating the Expressive Power of the Real-Time Specification for Java* , 2004, Real-Time Systems.

[4]  Martin C. Rinard,et al.  Ownership types for safe region-based memory management in real-time Java , 2003, PLDI '03.

[5]  Andy J. Wellings,et al.  Ravenscar‐Java: a high‐integrity profile for real‐time Java , 2005, Concurr. Pract. Exp..

[6]  Ron K. Cytron,et al.  Automated discovery of scoped memory regions for real-time Java , 2002, ISMM '02.

[7]  Douglas C. Schmidt,et al.  Configuring Real-Time Aspects in Component Middleware , 2004, CoopIS/DOA/ODBASE.

[8]  Siobhán Clarke,et al.  An evaluation of aspect-oriented programming for Java-based real-time systems development , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[9]  Sergio Yovine,et al.  Program Instrumentation and Run-Time Analysis of Scoped Memory in Java , 2004, RV@ETAPS.

[10]  James Noble,et al.  Saving the world from bad beans: deployment-time confinement checking , 2003, OOPSLA '03.

[11]  Christophe Rippert,et al.  Efficient Region-Based Memory Management for Resource-limited Real-Time Embedded Systems. , 2006 .

[12]  David C. Sharp,et al.  Real-time distributed object computing: ready for mission-critical embedded system applications , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[13]  Jan Vitek,et al.  Real-time Java scoped memory: design patterns and semantics , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[14]  Daniel L. Dvorak,et al.  Project Golden Gate: towards real-time Java in space missions , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[15]  Jan Vitek,et al.  A Real-time Java Virtual Machine for Avionics - An Experience Report , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[16]  V. T. Rajan,et al.  The Metronome: A Simpler Approach to Garbage Collection in Real-Time Systems , 2003, OTM Workshops.

[17]  Daniel Spoonhower,et al.  Eventrons: a safe programming construct for high-frequency hard real-time applications , 2006, PLDI '06.

[18]  Daniel L. Dvorak,et al.  Programming with non-heap memory in the real time specification for Java , 2003, OOPSLA '03.

[19]  Sigmund Cherem,et al.  Region analysis and transformation for Java programs , 2004, ISMM '04.

[20]  Douglas C. Schmidt,et al.  The Design and Performance of the jRate Real-Time Java Implementation , 2002, OTM.

[21]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[22]  Shane Markstrum,et al.  A framework for implementing pluggable type systems , 2006, OOPSLA '06.

[23]  Gilad Bracha,et al.  Strongtalk: typechecking Smalltalk in a production environment , 1993, OOPSLA '93.

[24]  John Hogg Islands: aliasing protection in object-oriented languages , 1991, OOPSLA 1991.

[25]  James Cheney,et al.  Region-based memory management in cyclone , 2002, PLDI '02.

[26]  Jan Vitek,et al.  A real-time Java virtual machine with applications in avionics , 2007, TECS.

[27]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[28]  Kirk Reinholtz,et al.  Scoped memory , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[29]  Martin C. Rinard,et al.  An Implementation of Scoped Memory for Real-Time Java , 2001, EMSOFT.

[30]  V. T. Rajan,et al.  A real-time garbage collector with low overhead and consistent utilization , 2003, POPL '03.

[31]  Frédéric Parain,et al.  Mackinac: making HotSpot/spl trade/ real-time , 2005, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05).

[32]  David C. Sharp,et al.  Evaluating real-time Java for mission-critical large-scale embedded systems , 2003, The 9th IEEE Real-Time and Embedded Technology and Applications Symposium, 2003. Proceedings..

[33]  James Noble,et al.  Ownership types for flexible alias protection , 1998, OOPSLA '98.

[34]  Robert Cartwright,et al.  Soft typing , 1991, PLDI '91.

[35]  Jan Vitek,et al.  Flexible Alias Protection , 1998, ECOOP.

[36]  Albert F. Niessner,et al.  A Patterns Catalog for RTSJ Software Designs , 2003, OTM Workshops.

[37]  Andy J. Wellings,et al.  Memory Management Based on Method Invocation in RTSJ , 2004, OTM Workshops.

[38]  John Hogg,et al.  Islands: aliasing protection in object-oriented languages , 1991, OOPSLA '91.

[39]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[40]  Jan Vitek,et al.  Scoped types for real-time Java , 2004, 25th IEEE International Real-Time Systems Symposium.

[41]  Gilad Bracha Pluggable Type Systems , 2004 .

[42]  Jan Vitek,et al.  A REAL-TIME JAVA VIRTUAL MACHINE FOR AVIONICS (PREPRINT) , 2006 .

[43]  Albert F. Niessner,et al.  RTSJ Memory Areas and Their Affects on the Performance of a Flight-Like Attitude Control System , 2003, OTM Workshops.

[44]  Jens Palsberg,et al.  Type-based confinement , 2006, J. Funct. Program..