Scheduling of hard real-time garbage collection

Automatic memory management or garbage collection greatly simplifies development of large systems. However, garbage collection is usually not used in real-time systems due to the unpredictable temporal behavior of current implementations of a garbage collector. In this paper we propose a real-time garbage collector that can be scheduled like a normal real-time thread with a deadline monotonic assigned priority. We provide an upper bound for the collector period so that the application threads will never run out of memory. Furthermore, we show that the restricted execution model of the Safety Critical Java standard simplifies root scanning and reduces copying of static data. Our proposal has been implemented and evaluated in the context of the Java processor JOP.

[1]  Martin Schoeberl,et al.  JOP: A Java Optimized Processor for Embedded Real-Time Systems , 2008 .

[2]  RobertzSven Gestegard,et al.  Time-triggered garbage collection , 2003 .

[3]  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..

[4]  Sven Gestegard Robertz,et al.  Automatic memory management for flexible real-time systems , 2006 .

[5]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[6]  Martin Schoeberl,et al.  Non-blocking object copy for real-time garbage collection , 2008, JTRES '08.

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

[8]  D NilsenKelvin,et al.  Performance of a hardware-assisted real-time garbage collector , 1994 .

[9]  Zoran A. Salcic,et al.  Designing a Concurrent Hardware Garbage Collector for Small Embedded Systems , 2005, Asia-Pacific Computer Systems Architecture Conference.

[10]  Henry G. Baker,et al.  The treadmill: real-time garbage collection without motion sickness , 1992, SIGP.

[11]  Guy L. Steele,et al.  Multiprocessing compactifying garbage collection , 1975, CACM.

[12]  Martin Schoeberl,et al.  Architecture for object-oriented programming languages , 2007, JTRES.

[13]  Sven Gestegard Robertz,et al.  Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems , 2003, LCTES '03.

[14]  Matthias Hauswirth,et al.  High-level real-time programming in Java , 2005, EMSOFT.

[15]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[16]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques , 1992, IWMM.

[17]  Chris J. Cheney A nonrecursive list compacting algorithm , 1970, Commun. ACM.

[18]  Martin Schoeberl,et al.  WCET analysis for a Java processor , 2006, JTRES '06.

[19]  Benedikt Huber,et al.  Worst‐case execution time analysis for a Java processor , 2010, Softw. Pract. Exp..

[20]  S. L. Graham,et al.  List Processing in Real Time on a Serial Computer , 1978 .

[21]  Martin Schoeberl,et al.  Java for Safety-Critical Applications , 2009 .

[22]  Martin Schoeberl Real-time garbage collection for Java , 2006, Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'06).

[23]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[24]  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).

[25]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..

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

[27]  Alan Burns,et al.  Hard Real-Time Scheduling: The Deadline-Monotonic Approach , 1991 .

[28]  Jan Vitek,et al.  Scheduling Hard Real-Time Garbage Collection , 2009, 2009 30th IEEE Real-Time Systems Symposium.

[29]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

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

[31]  Martin Schoeberl,et al.  A Profile for Safety Critical Java , 2007, 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07).

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

[33]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[34]  Heung Seok Chae,et al.  An adaptive load balancing management technique for RFID middleware systems , 2010 .

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

[36]  Joshua S. Auerbach,et al.  Design and implementation of a comprehensive real-time java virtual machine , 2007, EMSOFT '07.

[37]  John H. Reppy,et al.  Concurrent garbage collection on stock hardware , 1987, FPCA.

[38]  Taiichi Yuasa,et al.  Real-time garbage collection on general-purpose machines , 1990, J. Syst. Softw..

[39]  Martin Schoeberl,et al.  Exact roots for a real-time garbage collector , 2006, JTRES '06.

[40]  Rodney A. Brooks,et al.  Trading data space for reduced time and code space in real-time garbage collection on stock hardware , 1984, LFP '84.

[41]  Jan Vitek,et al.  Garbage collection for safety critical Java , 2007, JTRES.

[42]  Martin Schoeberl,et al.  Non-blocking root scanning for real-time garbage collection , 2008, JTRES '08.