Design of the opportunistic garbage collector

The Opportunistic Garbage Collector (OGC) is a generational garbage collector for stock hardware and operating systems. While incorporating important features of previous systems, the OGC includes several innovations. A new bucket brigade heap organization supports advancement thresholds between one and two scavenges, using only two or three spaces per generation, and without requiring per-object counts. Opportunistic scavenging decouples scavenging from the filling of available memory, in order to hide potentially disruptive scavenge pauses and improve efficiency. Card marking efficiently records which small areas of the heap may contain pointers into younger generations, and is supported by a refinement of the crossing map technique, to enable scanning of arbitrary cards.

[1]  Paul R. Wilson Opportunistic garbage collection , 1988, SIGP.

[2]  Frank Jackson,et al.  Tenuring policies for generation-based storage reclamation , 1988, OOPSLA '88.

[3]  Paul R. Wilson,et al.  Demonic memory for process histories , 1989, PLDI '89.

[4]  S. S. Rath,et al.  Conference proceedings , 1999, 1987 IEEE Applied Power Electronics conference and Exposition.

[5]  David Ungar Generation scavenging: a nondisruptive high performance storage reclamation algorithm , 1984 .

[6]  Robert Courts,et al.  Improving locality of reference in a garbage-collecting memory management system , 1988, CACM.

[7]  Patrick Sobalvarro,et al.  A Lifetime-based Garbage Collector for LISP Systems on General- Purpose Computers , 1988 .

[8]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[9]  Thomas G. Moher,et al.  PROVIDE: A Process Visualization and Debugging Environment , 1988, IEEE Trans. Software Eng..

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

[11]  William D. Clinger,et al.  Implementation strategies for continuations , 1988, LFP '88.

[12]  James W. Stamos,et al.  Static grouping of small objects to enhance performance of a paged virtual memory , 1984, TOCS.

[13]  David A. Moon,et al.  Garbage collection in a large LISP system , 1984, LFP '84.

[14]  Peter Steenkiste,et al.  Lisp on a reduced-instruction-set processor: characterization and optimization , 1988, Computer.

[15]  Ricki Blau Paging on an object-oriented personal computer for Smalltalk , 1983, Perform. Evaluation.

[16]  Robert Allen Shaw,et al.  Empirical analysis of a LISP system , 1988 .