Lock-free garbage collection for multiprocessors
- 1 May 1992
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 3 (3) , 304-311
- https://doi.org/10.1109/71.139204
Abstract
Garbage collection algorithms for shared-memory multiprocessors typically rely on some form of global synchronization 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. The authors present the first algorithm for lock-free garbage collection in a realistic model. The algorithm assumes that processes synchronize by applying read, write, and compare 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.Keywords
This publication has 13 references indexed in Scilit:
- Wait-free synchronizationACM Transactions on Programming Languages and Systems, 1991
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- Design of the opportunistic garbage collectorPublished by Association for Computing Machinery (ACM) ,1989
- Impossibility and universality results for wait-free synchronizationPublished by Association for Computing Machinery (ACM) ,1988
- On interprocess communicationDistributed Computing, 1986
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Algorithms for on-the-fly garbage collectionACM Transactions on Programming Languages and Systems, 1984
- Specifying Concurrent Program ModulesACM Transactions on Programming Languages and Systems, 1983
- Concurrent Reading While WritingACM Transactions on Programming Languages and Systems, 1983
- List processing in real time on a serial computerCommunications of the ACM, 1978