Abstract
With the continued growth in interest in distributed systems, garbage collection is actively receiving attention by designers of distributed languages [Bal, 1990]. Distribution adds another dimension of complexity to an already complex problem. A comprehensive review and bibliography of distributed garbage collection literature up to 1992 is presented. As distributed collectors are largely based on nondistributed collectors these are first briefly reviewed. Emphasis is given to collectors which appeared since the last major review [Cohen, 1981]. Collectors are broadly classified as those that identify garbage directly and those that identify it indirectly. Distributed collectors are reviewed on the basis of the taxonomy drawn up for nondistributed collectors.
Preview
Unable to display preview. Download preview PDF.
Bibliography
Almes G, Borning A and Messinger E (1983) Implementing a Smalltalk-80 system on the Intel 432: a feasibility study, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley 175–187
Appleby K, Carlsson M, Haridi S, and Sahlin D (1983) Garbage collection for Prolog based on WAM, Comm. ACM 31, 719–741
Augusteijn L (1987) Garbage collection in a distributed environment, in PARLE'87 — Parallel Architectures and Languages Europe, LNCS 259, Springer-Verlag, 75–93.
Baden SB (1983) Low-overhead storage reclamation in the Smalltalk-80 virtual machine, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 331–342
Baker HG (1978) List Processing in real-time on a serial computer, Comm ACM 21, 280–294
Baker HG (1992) The treadmill: real-time garbage collection without motion sickness, SIGPLAN NOTICES 27(3), March 1992, 66–70
Bal H (1990) Programming Distributed Systems, Prentice Hall
Ballard S and Shirron S (1983) The design and implementation of VAX/Smalltalk-80, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 127–150
Bartlett JF (1990) A generational, compacting garbage collector for C++, ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Bates RL, Dyer D and Koomen JAGM (1982) Implementation of Interlisp on the VAX, ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania, 15–18 August 1982, 81–87.
Ben-Ari M (1984) Algorithms for on-the-fly garbage collection, ACM Transactions on Programming Languages and Systems 6, 333–44.
Bennett JK (1987) The design and implementation of distributed Smalltalk, OOPSLA '87, SIGPLAN Notices 22(12), 318–330.
Bengtsson M and Magnusson B (1990) Real-time compacting garbage collection, ECOOP/OOPSLA '90 Workshop on Garbage Collection.
Benjamin G (1989) Generational reference counting: A reduced communication distributed storage reclamation scheme in Programming Languages Design and Implementation, SIGPLAN Notices 24, ACM Press, 313–321.
Bevan DI (1987) Distributed garbage collection using reference counting, in PARLE '87 — Parallel Architectures and Languages Europe, LNCS 259, Springer-Verlag 176–187.
Boehm HJ and Weiser M (1988) Garbage collection in an uncooperative environment, Software Practice and Experience 18(9), 807–820.
Bobrow, DG (1980) Managing reentrant structures using reference counts, TOPLAS 2(3) 269–273.
Brooks RA, Gabriel RP and Steele GL (1982) S-1 Common lisp implementation, ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania, 15–18 August 1982. 108–113.
Brownbridge DR (1985) Cyclic reference counting for combinator machines, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer-Verlag, 273–288.
Carlsson S, Mattsson C and Bengtsson M (1990) A fast expected-time compacting garbage collection algorithm., ECOOP/OOPSLA '90 Workshop on Garbage Collection.
Chambers C Ungar D and Lee E (1989) An efficient implementation of SELF, A dynamically-typed object-oriented language based on prototypes. OOPSLA '89, SIGPLAN Notices 24(10), ACM, 49–70.
Cohen J and Trilling L (1967) Remarks on Garbage Collection using a two level storage (sic) BIT 7(1), 22–30
Cohen J (1981) Garbage collection of linked data structures, ACM Computing Surveys 13(3) 341–367.
Collins GE (1960) A Method for overlapping and erasure of lists, Comm. of the ACM 3(12) 655–657.
Courts R (1988) Improving locality of reference in a garbage-collecting memory management system, Comm. of the ACM 31(9) 1128–1138.
Dawson JL (1982) Improved effectiveness from a real-time lisp garbage collector, 1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania August 15–18. 159–167.
Dellar CNR (1980) Removing backing store administration from the CAP operating system, Operating System Review 14(4) 41–49.
Detlefs DL (1990a) Concurrent garbage collection for C++, CMU-CS-90-119 School of Computer Science, Carnegie Mellon Univ., Pittsburgh, PA 15213.
Detlefs DL (1990b) Concurrent, atomic garbage collection., ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Detlefs DL (1991) Concurrent, Atomic Garbage Collection, PhD Thesis,Dept of Computer Science, Carnegie Mellon Univ, Pittsburgh, PA 15213 CMU-CS-90-177, November 1991.
Demers A, Weiser M, Hayes B, Boehm H, Bobrow D and Shenker S (1990) Combining generational and conservative garbage collection: framework and implementations, in ACM Symposium on Principles of Programming Languages, 261–269.
DeTreville J (1990) Experience with garbage collection for Modula-2+ in the Topaz Environment, ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Deutsch LP and Bobrow DG (1976) An efficient, incremental, automatic garbage collector. Comm ACM 19(9) 522–526.
Deutsch LP (1983) The Dorado Smalltalk-80 Implementation: Hardware architecture's impact on software architecture, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 113–125.
Dijkstra EW, Lamport L, Martin A J and Steffens EFM (1978) On-the-fly garbage collection: An exercise in cooperation, Comm ACM 21(11) 966–975.
Edelson D and Pohl I (1990) The case for garbage collector in C++, ECOOP/OOPSLA '90 Workshop on Garbage Collection.
El-Habbash A, Horn C and Harris M (1990) Garbage collection in an object oriented, distributed, persistent environment, ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Falcone JR and Stinger JR (1983) The Smalltalk-80 Implementation at Hewlett-Packard, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 79–112
Fenichel RR and Yochelson JC (1969) A LISP garbage-collector for virtualmemory computer systems, Comm ACM 12, 611–612
Ferreira P (1990) Storage reclamation., ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Field AJ and Harrison PG (1988) Functional Programming, Addison-Wesley.
Fisher DA (1974) Bounded workspace garbage collection in an address-order preserving list processing environment, Info. Processing Letters 3(1), 29–32.
Foderaro, JK, Fateman, RJ (1981) Characterization of VAX maxsyma in Proceedings of the 1981 ACM Symposium on Symbolic and Algebraic Computation, 14–19.
Friedman DP and Wise DS (1976) Garbage collecting a heap which include a scatter table, Info. Processing Letters 5(6), 161–164.
Friedman DP and Wise DS (1977) The one-bit reference count, BIT (17), 351–359.
Friedman DP and Wise DS (1979) Reference counting can manage the circular environments of mutual recursion, Info. Processing Letters 8(1), 41–45.
Gabriel RP and Mansinter L M (1982) Performance of lisp systems, 1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania, 15–18 August 1982, 123–142.
Garnett NH and Needham RM (1980) An Asynchronous garbage collector for the Cambridge file server, Operating System Review 14(4), 36–40.
Gelernter H, Hansen JR and Gerberrich CL (1960) A FORTRAN-compiled list processing language, JACM 7(2), 87–101.
Goldberg A and Robson D (1983) Smalltalk-80: The Language and its Implementation, Addison-Wesley, 674–681
Hansen WJ (1969) Compact list representation: definition, garbage collection, and system implementation, Comm ACM 12(9), 499
Hayes, B (1990) Open systems require conservative garbage collectors, ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Hayes B (1991) Using key object opportunism to collect old objects, OOPSLA'91, SIGPLAN Notices 26(11), ACM, 33–46
Hoare CAR (1974) Optimization of store size for garbage collection, Info. Processing Letters 2(6), 165–166.
Hudak, P(1982) Object and Task Reclamation in Distributed Applicative Processing Systems, PhD Thesis, University of Utah.
Hudak, P and Keller R M (1982) Garbage collection and task deletion in distributed applicative processing systems, ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania, August 1982, 168–178.
Hudak P (1986) A semantic model of reference counting and its abstraction (detailed summary), Proceedings of 1986 ACM Conference on Lisp and Functional Programming, Massachusetts Institute of Technology, 351–363.
Hudson, R and Diwan A(1990) Adaptive garbage collection for Modula-3 and Smalltalk., ECOOP/OOPSLA '90 Workshop on Garbage Collection.
Hughes, J (1984) Reference counting with circular structures in virtual memory, spplicative dystems, TR Programming Research Group, Oxford Univ.
Hughes, J (1985) A distributed garbage collection algorithm, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer-Verlag, 256–272.
Johnson D (1991) The case for a real barrier, Proceedings of the Fourth International Support for Programming Languages and Operating Systems (ASPLOS IV), 96–107.
Jones SLP (1987) The Implementation of Functional Programming Languages, Prentice-Hall.
Jonkers HBM (1979) A gast garbage compaction algorithm. Info. Processing Letters 9(1) 26–30.
Juul NC (1990) Report on the ECOOP/OOPSLA'90 Workshop on Garbage Collection in Object-Oriented Systems.
Kafara D, Washabaugh D and Nelson J (1990) Garbage collection of actors, ECOOP/OOPSLA '90 Proceedings of Workshop on Garbage Collection, 126–34
Kain RY (1969) Block structures, indirect addressing and garbage collection. Comm ACM 12(7)395–398.
Knuth DE (1973) The Art of Computer Programming; Vol 1: Fundamental Algorithms, Addision-Wesley, Reading, Mass.
Kolodner E, Liskov B and Weihl W (1989) Atomic garbage collection: managing a stable heap, Proceedings of 1989 ACM SIGMOD International Conference on the Management of Data, 15–25.
Kolodner E (1991) Atomic incremental garbage collection and recovery for Large stable heap, implementing persistent object bases: principles and practice, Fourth International Workshop on Persistent Object Systems, Morgan-Kaufmann Publishers, San Mafeo, California.
Krasner G (ed) (1983) Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley.
Lang, B, Queinnec C, and Piquer J (1992) Garbage collecting the world, Proceedings of the 19th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'92), 1992.
Lermen C W and Maurer D (1986) A Protocol for Distributed Reference Counting, Proceedings of 1986 ACM Conference on Lisp and Functional Programming, Massachusetts Institute of Technology, 343–350.
Li K (1988a) Real-time concurrent collection in user mode, ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Li K Appel AW, and Ellis JR (1988b) Real-time concurrent collection on stock multiprocessors, ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, 11–20.
Lieberman H and Hewitt C (1983) A real-time garbage collector based on the lifetimes or objects. Comm ACM 26(6), 419–429.
Lindstrom G (1974) Copying list structures using bounded workspace, Comm ACM 17(4), 198–202.
Liskov B and Ladin R (1986) Highly-available distributed services and faulttolerant distributed garbage collection, in Proceedings of the 5th symposium on the Principles of Distributed Computing, ACM, 29–39
Martin JJ (1982) An efficient garbage compaction algorithm, Comm ACM 25(8), 571–581.
McCarthy J (1960) Recursive functions of symbolic expressions and their computation by machine: Part I, Comm ACM 3(4), 184–195.
McCullough PL (1983) Implementing the Smalltalk-80 system: The Tektronix experience, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 59–78
Meyers R and Casseres D(1983) An MC68000-Based Smalltalk-80 System, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 175–187.
Miranda E (1987) BrouHaHa — a portable Smalltalk interpreter, OOPSLA'87, SIGPLAN Notices 22(12), ACM, 354–365
Mohammed-Ali K A (1984) Object-Oriented Storage Management and Garbage Collection in Distributed Processing Systems, Academic Dissertation, Royal Institute of Technology, Dept of Computer Systems, Stockholm, Sweden.
Moon D.(1984) Garbage collection in a large lisp system, 1984 ACM Symposium on Lisp and Functional Programming, 235–246.
Morris FL (1978) A time-and Space-efficient garbage compaction algorithm. Comm ACM 21(8), 662–665.
Morris FL (1979) On a comparison of garbage collection techniques, Comm ACM 22(10), 571.
Moss JEB (1990) Garbage collecting persistent object stores, ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Newell A and Tonge FM (1960) An introduction to IPL-V, Comm ACM 3, 205–211.
Newman IA, Stallard RP and Woodward MC (1982) Performance of parallel garbage collection algorithms, Computer Studies 166, Sept 1982.
Nilsen K and Schmidt WJ (1990) Hardware support for garbage collection of linked objects and arrays in real time, ECOOP/OOPSLA'90 Workshop on Garbage Collection. October 1990.
Nilsen K (1988) Garbage collection of strings and linked data structures in real time, Software Practice and Experience 18(7), July 1988, 613–640.
North SC and Reppy JH (1987) Concurrent garbage collection on stock hardware in Functional Programming Languages and Computer Architecture, LNCS 274 Springer-Verlag, 1987, 113–133.
ParcPlace (1991) ObjectworksSmalltalk Release 4 User's Guide, Memory Management 229–237
Queinnec C, Beau doing B, and Queille J (1989) Mark DURING sweep rather than mark THEN sweep, in PARLE '89 — Parallel Architectures and Languages Europe. LNCS 365, Springer-Verlag.
Rudalics M, (1986) Distributed copying garbage collection, Proceedings of 1986 ACM Conference on Lisp and Functional Programming, Massachusetts Institute of Technology, 364–372.
Schelvis M and Bledoeg E (1988) The implementation of a distributed Smalltalk, ECOOP Proceedings, August 1988 LNCS 322.
Schelvis M (1989) Incremental distribution of timestamp packets: a new approach to distributed garbage collection, OOPSLA'89, SIGPLAN Notices 24(10), ACM, 37–48.
Schorr H and Waite WM (1967) An efficient machine-independent procedure for garbage collection in various list structures, Comm ACM 10(8), 501–506.
Sharma R and Soffa M L (1991) Parallel generational garbage collection, OOPSLA 91, SIGPLAN Notices 26(11), ACM, 16–32
Shapiro M, Plainfosse D and Gruber O (1990) A garbage detection protocol for a realistic distributed object-support system., ECOOP/OOPSLA'90 Workshop on Garbage Collection. October 1990.
Standish TA (1980) Data Structures Techniques, Addison-Wesley, Reading, Mass., 1980.
Steele GL (1975) Multiprocessing compactifying garbage collection. Comm ACM 18(9), 495–508.
Thomas RE, (1981) A dataflow computer with improved asymptotic performance, MIT Laboratory for computer science report MIT/LCS/TR-265
Terashima M and Goto E (1978) Genetic order and compactifying garbage collector, Info. Processing Letters 7(1), 27–32.
Ungar DM and Patterson DA (1983) Berkeley Smalltalk: who knows where the time goes?, in Smalltalk-80: Bits of History, Words of advice, Addison-Wesley 189–206.
Ungar D (1984) Generation scavenging: a non-disruptive high performance storage reclamation algorithm, in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, April 1984, 157–167.
Ungar D and Jackson F (1988) Tenuring policies for generation-based storage reclamation, OOPSLA'88, SIGPLAN Notices 23(11), ACM, 1–17.
Ungar D and Jackson F (1992) An adaptive tenuring policy for generation scavengers, TOPLAS 14(1), 1–27.
Vestal S C (1987) Garbage Collection: An Exercise in Distributed, Fault-Tolerant Programming. PhD Thesis, Dept. of Computer Science, University of Washington, Seattle WA (USA), January 1987.
Wadler PL (1976) Analysis of an algorithm for real-time garbage collection, Comm ACM 19(9), 491–500.
Watson I (1986) An analysis of garbage collection for distributed Systems, TR Dept Comp. Sc., U. Manchester.
Watson P and Watson I (1987) An efficient garbage collection scheme for parallel computer architecture, in PARLE '87 — Parallel Architectures and Languages Europe, LNCS 259, 432–443.
Wegbreit B (1972) A generalised compacting garbage collector, Computer Journal 15(3) 204–208.
Weizenbaum J (1962) Knotted list structures, Comm ACM 5(3), 161–165.
Weizenbaum J (1963) Symmetric list processor, Comm ACM 6(9), 524–544.
White JL (1980) Address/memory management for a gigantic Lisp environment, or GC considered harmful, Conference Record of the 1980 Lisp Conference, 119–127.
Wilson PR and Moher TG (1989) Design of the opportunistic garbage collector, OOPSLA'89, SIGPLAN Notices 24(10), ACM, 23–35.
Wilson PR (1990) Some issues and strategies in heap management and memory Hierarchies, ECOOP/OOPSLA'90 Workshop on Garbage Collection
Wilson PR, Lam MS and Moher TG (1990) Caching considerations for generational garbage collection: a case for large and set-associative caches., TR UIC-EECS-90-5, December 1990.
Wilson P R (1992) Comp.compiler Usenet discussion, February 1992
Wilson PR, Lam MS and Moher TG (1991) Effective “static-graph” reorganization to improve locality in garbage-collected systems, Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation. Toronto, Ontario, Canada, 177–191.
Wolczko M and Williams I (1990) Garbage collection in high-performance system, ECOOP/OOPSLA'90 Workshop on Garbage Collection. October 1990.
Woodward MC (1981) Multiprocessor garbage collection — a new solution, Computer Studies 115
Zave DA (1975) A fast compacting garbage collector, Info Processing Letters 3, 167–169.
Zorn B (1989) Comparative performance evaluation of garbage collection Algorithms, PhD Thesis, EECS Dept, UC Berkeley.
Zorn, B (1990) Designing systems for evaluation: A case study of garbage collection., ECOOP/OOPSLA'90 Workshop on Garbage Collection.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abdullahi, S.E., Miranda, E.E., Ringwood, G.A. (1992). Collection schemes for distributed garbage. In: Bekkers, Y., Cohen, J. (eds) Memory Management. IWMM 1992. Lecture Notes in Computer Science, vol 637. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017183
Download citation
DOI: https://doi.org/10.1007/BFb0017183
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55940-5
Online ISBN: 978-3-540-47315-2
eBook Packages: Springer Book Archive