Mostly parallel garbage collection

We present a method for adapting garbage collectors designed to run sequentially with the client, so that they may run concurrently with it. We rely on virtual memory hardware to provide information about pages that have been updated or “dirtied” during a given period of time. This method has been used to construct a mostly parallel trace-and-sweep collector that exhibits very short pause times. Performance measurements are given.

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

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

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

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

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

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

[7]  Richard P. Gabriel,et al.  Performance and evaluation of Lisp systems , 1985 .

[8]  Hans-Juergen Boehm,et al.  Garbage collection in an uncooperative environment , 1988, Softw. Pract. Exp..

[9]  Andrew W. Appel,et al.  RETROSPECTIVE : Real-time Concurrent Collection on Stock Multiprocessors , 2004 .

[10]  Daniel G. Bobrow,et al.  Combining generational and conservative garbage collection: framework and implementations , 1989, POPL '90.

[11]  Carl H. Hauser,et al.  The portable common runtime approach to interoperability , 1989, SOSP '89.

[12]  Benjamin G. Zorn,et al.  Comparing mark-and sweep and stop-and-copy garbage collection , 1990, LISP and Functional Programming.

[13]  Pavel Curtis,et al.  A module system for scheme , 1990, LISP and Functional Programming.

[14]  E. P. Wentworth Pitfalls of conservative garbage collection , 1990, Softw. Pract. Exp..

[15]  Andrew W. Appel,et al.  Virtual memory primitives for user programs , 1991, ASPLOS IV.