Real-time garbage collection in multi-threaded systems on a single processor

We show the difficulties that arise for the implementation of a real-time garbage collector (GC) in a multi-threaded system. A mechanism for synchronization between threads is proposed for a single processor system. It is shown how this mechanism can be used to maintain exact information on roots, to do incremental or even constant-time root-scanning and to allow pre-emption of GC activity.

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

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

[3]  Erik R. Altman,et al.  Lightweight monitor for Java VM , 1999, CARN.

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

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

[6]  Ken Arnold,et al.  The Java programming language (2nd ed.) , 1998 .

[7]  Edsger Wybe Dijkstra,et al.  Cooperating Sequential Processes, Technical Report EWD-123 , 1965 .

[8]  Pekka P. Pirinen,et al.  Barrier techniques for incremental tracing , 1998, ISMM '98.

[9]  Kelvin D. Nilsen,et al.  Reliable Real-Time Garbage Collection of C++ , 1994, Comput. Syst..

[10]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[11]  Franco Travostino,et al.  Towards a Resource-safe Java for Service Guarantees in Uncooperative Environments , 1998 .

[12]  Bernhard Steffen,et al.  Optimal code motion: theory and practice , 1994, TOPL.

[13]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[14]  The T9000 transputer instruction set manual , 1993 .

[15]  Joel F. Bartlett,et al.  Compacting garbage collection with ambiguous roots , 1988, LIPO.

[16]  Lorenz Huelsbergen,et al.  Very concurrent mark-&-sweep garbage collection without fine-grain synchronization , 1998, ISMM '98.

[17]  Damien Doligez,et al.  Portable, unobtrusive garbage collection for multiprocessor systems , 1994, POPL '94.

[18]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[19]  Fridtjof Siebert,et al.  Guaranteeing non-disruptiveness and real-time deadlines in an incremental garbage collector , 1998, ISMM '98.

[20]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques Submitted to Acm Computing Surveys , 1992 .