Abstract
This paper exposes a Garbage Collection (GC) algorithm for loosely-coupled multi-processors. The algorithm is based on reference counting and is designed to reclaim distant-pointed objects. It behaves like weighted reference counting, using only decrement messages. The main advantages are that it never creates indirect cells (so accesses to distant pointed objects arc always done in constant time) and it does not need synchronization with the proprietary site of the object. Object migration is also supported with only one decrement message, involving only the source and destination sites. On the other hand, two extra fields are needed in every remote pointer and decrement messages can be generated in cascades of arbitrary size, making it less predictable.
A first version adapted to a distributed Lisp running on a group of Transputcr1 processors will be presented along with some measures. Each processor has its own local Garbage Collector (of the Mark-Scan type) and the indirect reference counting for remote pointers has been implemented without having to change the local GC.
In this paper the algorithm is presented, it is compared with the weighted reference counting garbage collector and some experimental results are shown along with some implementation issues.
This work was partially supported by the University of Chile, INRIA and the french government.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Lex Augusteijn, Garbage Collection in a Distributed Environment, LNCS 259, PARLE Proceedings Vol. I, Eindhoven, Springer Verlag, June 1987.
M. J. Beckerle, K. Ekanadham, Distributed Garbage Collection with no Global Synchronization, IBM Research Report, RC 11667 (#52377), January 1986.
D. I. Bevan, Distributed Garbage Collection Using Reference Counting, LNCS 259, PARLE Proceedings Vol. II, Eindhoven, Springer Verlag, June 1987.
D. G. Bobrow, Managing Reentrant Structures Using Reference Counts, ACM Trans. on Programming Languages and Systems, Vol. 2, No. 3, pp. 269–273, July 1980.
D. R. Brownbridge, Cyclic Reference Counting for Combinator Machines, Functional Programming Languages and Computer Architecture, LNCS 201, pp. 273–288, Springer Verlag, September 1985.
J. Chailloux, M. Devin, J. M. IIullot, Le-Lisp: A Portable and Efficient Lisp System, Proc. 1984 ACM Symposium on Lisp and Functional Programming, August 1984.
K. M. Chandy, L. Lamport, Distributed snapshots: Determining global states of distributed systems, ACM Trans. on Computer Systems, Vol. 3, No. 1, February 1985.
G. E. Collins, A Method for Overlapping and Erasure of Lists, Comm. of the ACM, Vol. 3, No. 12, pp. 655–657, December 1960.
M. II. Derbyshire, Mark Scan Garbage Collection On A Distributed Architecture, Lisp and Symbolic Computation, Vol. 3, No. 2, pp. 135–170, April 1990.
E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, E. F. M. Steffens, On-the-fly Garbage Collection: an exercise in cooperation, Comm. of the ACM Vol. 21, No. 11, November 1978.
E. W. Dijkstra, C. S. Scholten, Termination Detection for Diffusing Computations, Information Processing Letters, Vol. 11, No. 1, August 1980.
I. Foster, A Mullicomputer Garbage Collector for a Single-Assignment Language, Int. Journal of Parallel Programming, Vol. 18, No. 3, 1989.
B. Goldberg, Generational Reference Counting: A Reduced-Communication Distributed Storage Reclamation Scheme, SIGPLAN Conference on Programming Languages Design and Implementation, Portland, Oregon, June 1989.
P. Hudak, R. M. Keller, Garbage Collection and Task Deletion in a Distributed Applicative Processing System, 1982 ACM Symposium on Lisp and Functional Programming, 1982.
L. Lamport, Time, Clocks, and the Ordering of Events in a Distributed System, Comm. ACM, Vol. 21, No. 7, pp. 558–565, July 1978.
C. W. Lermen, D. Maurer, A Protocol for Distributed Reference Counting, Proc. 1986 ACM Conference on Lisp and Functional Programming, Cambridge, Massachussets, August 1986.
J. M. Piquer, Un GC parallèle pour un Lisp distribué,Journées francophones des langages applicatifs, La Rochelle, January 1990. BIGRE 69, July 1990 (french).
J. M. Piquer, Sharing Data Structures in a Distributed Lisp, Proc. High Performance and Parallel Computing in Lisp Workshop, Twickenham, London, UK, November 1990.
M. Rudalics, Distributed Copying Garbage Collection, Proceedings of the ACM Conference on LISP and functional prog., Cambridge, Massachussets, August 1986.
P. Watson, I. Watson, An Efficient Garbage Collection Scheme for Parallel Computer Architectures, LNCS 259, PARLE Proceedings Vol. II, Eindhoven, Springer Verlag, June 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Piquer, J.M. (1991). Indirect Reference Counting: A Distributed Garbage Collection Algorithm. In: Aarts, E.H.L., van Leeuwen, J., Rem, M. (eds) Parle ’91 Parallel Architectures and Languages Europe. Lecture Notes in Computer Science, vol 505. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-25209-3_11
Download citation
DOI: https://doi.org/10.1007/978-3-662-25209-3_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-23206-4
Online ISBN: 978-3-662-25209-3
eBook Packages: Springer Book Archive