Lock-free garbage collection for multiprocessors

Garbage collection algorithms for shared-memory multiprocessors typically rely on some form of global synchro- nization to preserve consistency. Such global synchronization may lead to problems on asynchronous architectures: if one process is halted or delayed, other, nonfaulty processes will be unable to progress. By contrast, a storage management algorithm is lock- free if (in the absence of resource exhaustion) a process that is allocating or collecting memory can be delayed at any point without forcing other processes to block. This paper presents the first algorithm for lock-free garbage collection in a realistic model. The algorithm assumes that processes synchronize by applying read, write, and cornpre&swap operations to shared memory. This algorithm uses no locks, busy-waiting, or barrier synchronization, it does not assume that processes can observe or modify one another's local variables or registers, and it does not use inter-process interrupts. Index Terms-Garbage collection, lock-free algorithms, mem- ory management, multiprocessors, shared memory, wait-free al- gorithms.

[1]  H. T. Kung,et al.  An efficient parallel garbage collection system and ITS correctness proof , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[2]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, JACM.

[3]  Maurice Herlihy,et al.  Lock-Free Garbage Collection for Multiprocessors , 1992, IEEE Trans. Parallel Distributed Syst..

[4]  Mordechai Ben-Ari Algorithms for on-the-fly garbage collection , 1984, TOPL.

[5]  Calton Pu,et al.  A Lock-Free Multiprocessor OS Kernel , 1992, OPSR.

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

[7]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

[8]  Tom Moher,et al.  Design of the opportunistic garbage collector , 1989, OOPSLA 1989.

[9]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[10]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[11]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

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

[13]  Gary L. Peterson,et al.  Concurrent Reading While Writing , 1983, TOPL.

[14]  G BakerHenry List processing in real time on a serial computer , 1978 .

[15]  Maurice Herlihy,et al.  Impossibility and universality results for wait-free synchronization , 1988, PODC '88.

[16]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[17]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[18]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data structures , 1990, PPOPP '90.