Scalable Garbage Collection with Guaranteed MMU

Regional garbage collection offers a useful compromise between real-time and generational collection. Regional collectors resemble generational collectors, but are scalable: our main theorem guarantees a positive lower bound, independent of mutator and live storage, for the theoretical worst-case minimum mutator utilization (MMU). The theorem also establishes upper bounds for worst-case space usage and collection pauses. Standard generational collectors are not scalable. Some realtime collectors are scalable, while others assume a well-behaved mutator or provide no worst-case guarantees at all. Regional collectors cannot compete with hard real-time collectors at millisecond resolutions, but offer efficiency comparable to contemporary generational collectors combined with improved latency and MMU at resolutions on the order of hundreds of milliseconds to a few seconds.

[1]  Robert Hieb,et al.  Representing control in the presence of first-class continuations , 1990, PLDI '90.

[2]  Peter Boehler Bishop,et al.  Computer systems with a very large address space and garbage collection , 1977 .

[3]  Guy E. Blelloch,et al.  On bounding time and space for multiprocessor garbage collection , 1999, PLDI '99.

[4]  J. Moss,et al.  Older-first garbage collection in practice: evaluation in a Java Virtual Machine , 2003, MSP '02.

[5]  Elliot K. Kolodner,et al.  An algorithm for parallel incremental compaction , 2002, ISMM '02.

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

[7]  William D. Clinger,et al.  Implementation Strategies for First-Class Continuations , 1999, High. Order Symb. Comput..

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

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

[10]  Roger Henriksson,et al.  Scheduling Garbage Collection in Embedded Systems , 1998 .

[11]  Guy E. Blelloch,et al.  A parallel, real-time garbage collector , 2001, PLDI '01.

[12]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, Language Hierarchies and Interfaces.

[13]  Marc Feeley,et al.  A compacting incremental collector and its performance in a production quality compiler , 1998, ISMM '98.

[14]  David M. Ungar,et al.  Generation Scavenging: A non-disruptive high performance storage reclamation algorithm , 1984, SDE 1.

[15]  Scott Shenker,et al.  Mostly parallel garbage collection , 1991, PLDI '91.

[16]  J. Eliot B. Moss,et al.  Mark-copy: fast copying GC with less space overhead , 2003, OOPSLA 2003.

[17]  Scott Nettles,et al.  Real-time replication garbage collection , 1993, PLDI '93.

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

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

[20]  Kathryn S. McKinley,et al.  Beltway: getting around garbage collection gridlock , 2002, PLDI '02.

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

[22]  David Detlefs,et al.  A generational mostly-concurrent garbage collector , 2000, ISMM '00.

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

[24]  Matthias Jacob,et al.  Concurrent Remembered Set Refinement in Generational Garbage Collection , 2002, Java Virtual Machine Research and Technology Symposium.

[25]  David F. Bacon,et al.  Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java , 2003 .

[26]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[27]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[28]  William D. Clinger,et al.  An experimental study of renewal-older-first garbage collection , 2002, ICFP '02.