Advertisement

Collection schemes for distributed garbage

  • Saleh E. Abdullahi
  • Eliot E. Miranda
  • Graem A. Ringwood
Surveys
Part of the Lecture Notes in Computer Science book series (LNCS, volume 637)

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.

Keywords

Computation Graph Garbage Collection Garbage Collector Reference Counting Past Survivor 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliography

  1. 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–187Google Scholar
  2. Appleby K, Carlsson M, Haridi S, and Sahlin D (1983) Garbage collection for Prolog based on WAM, Comm. ACM 31, 719–741CrossRefGoogle Scholar
  3. Augusteijn L (1987) Garbage collection in a distributed environment, in PARLE'87 — Parallel Architectures and Languages Europe, LNCS 259, Springer-Verlag, 75–93.Google Scholar
  4. 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–342Google Scholar
  5. Baker HG (1978) List Processing in real-time on a serial computer, Comm ACM 21, 280–294CrossRefGoogle Scholar
  6. Baker HG (1992) The treadmill: real-time garbage collection without motion sickness, SIGPLAN NOTICES 27(3), March 1992, 66–70CrossRefGoogle Scholar
  7. Bal H (1990) Programming Distributed Systems, Prentice HallGoogle Scholar
  8. 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–150Google Scholar
  9. Bartlett JF (1990) A generational, compacting garbage collector for C++, ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  10. 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.Google Scholar
  11. Ben-Ari M (1984) Algorithms for on-the-fly garbage collection, ACM Transactions on Programming Languages and Systems 6, 333–44.CrossRefGoogle Scholar
  12. Bennett JK (1987) The design and implementation of distributed Smalltalk, OOPSLA '87, SIGPLAN Notices 22(12), 318–330.Google Scholar
  13. Bengtsson M and Magnusson B (1990) Real-time compacting garbage collection, ECOOP/OOPSLA '90 Workshop on Garbage Collection.Google Scholar
  14. 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.Google Scholar
  15. Bevan DI (1987) Distributed garbage collection using reference counting, in PARLE '87 — Parallel Architectures and Languages Europe, LNCS 259, Springer-Verlag 176–187.Google Scholar
  16. Boehm HJ and Weiser M (1988) Garbage collection in an uncooperative environment, Software Practice and Experience 18(9), 807–820.Google Scholar
  17. Bobrow, DG (1980) Managing reentrant structures using reference counts, TOPLAS 2(3) 269–273.CrossRefGoogle Scholar
  18. 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.Google Scholar
  19. Brownbridge DR (1985) Cyclic reference counting for combinator machines, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer-Verlag, 273–288.Google Scholar
  20. Carlsson S, Mattsson C and Bengtsson M (1990) A fast expected-time compacting garbage collection algorithm., ECOOP/OOPSLA '90 Workshop on Garbage Collection.Google Scholar
  21. 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.Google Scholar
  22. Cohen J and Trilling L (1967) Remarks on Garbage Collection using a two level storage (sic) BIT 7(1), 22–30CrossRefGoogle Scholar
  23. Cohen J (1981) Garbage collection of linked data structures, ACM Computing Surveys 13(3) 341–367.CrossRefGoogle Scholar
  24. Collins GE (1960) A Method for overlapping and erasure of lists, Comm. of the ACM 3(12) 655–657.CrossRefGoogle Scholar
  25. Courts R (1988) Improving locality of reference in a garbage-collecting memory management system, Comm. of the ACM 31(9) 1128–1138.CrossRefGoogle Scholar
  26. 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.Google Scholar
  27. Dellar CNR (1980) Removing backing store administration from the CAP operating system, Operating System Review 14(4) 41–49.CrossRefGoogle Scholar
  28. Detlefs DL (1990a) Concurrent garbage collection for C++, CMU-CS-90-119 School of Computer Science, Carnegie Mellon Univ., Pittsburgh, PA 15213.Google Scholar
  29. Detlefs DL (1990b) Concurrent, atomic garbage collection., ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  30. 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.Google Scholar
  31. 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.Google Scholar
  32. DeTreville J (1990) Experience with garbage collection for Modula-2+ in the Topaz Environment, ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  33. Deutsch LP and Bobrow DG (1976) An efficient, incremental, automatic garbage collector. Comm ACM 19(9) 522–526.CrossRefGoogle Scholar
  34. 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.Google Scholar
  35. 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.CrossRefGoogle Scholar
  36. Edelson D and Pohl I (1990) The case for garbage collector in C++, ECOOP/OOPSLA '90 Workshop on Garbage Collection.Google Scholar
  37. 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.Google Scholar
  38. 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–112Google Scholar
  39. Fenichel RR and Yochelson JC (1969) A LISP garbage-collector for virtualmemory computer systems, Comm ACM 12, 611–612CrossRefGoogle Scholar
  40. Ferreira P (1990) Storage reclamation., ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  41. Field AJ and Harrison PG (1988) Functional Programming, Addison-Wesley.Google Scholar
  42. Fisher DA (1974) Bounded workspace garbage collection in an address-order preserving list processing environment, Info. Processing Letters 3(1), 29–32.CrossRefGoogle Scholar
  43. Foderaro, JK, Fateman, RJ (1981) Characterization of VAX maxsyma in Proceedings of the 1981 ACM Symposium on Symbolic and Algebraic Computation, 14–19.Google Scholar
  44. Friedman DP and Wise DS (1976) Garbage collecting a heap which include a scatter table, Info. Processing Letters 5(6), 161–164.CrossRefGoogle Scholar
  45. Friedman DP and Wise DS (1977) The one-bit reference count, BIT (17), 351–359.CrossRefGoogle Scholar
  46. Friedman DP and Wise DS (1979) Reference counting can manage the circular environments of mutual recursion, Info. Processing Letters 8(1), 41–45.CrossRefGoogle Scholar
  47. 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.Google Scholar
  48. Garnett NH and Needham RM (1980) An Asynchronous garbage collector for the Cambridge file server, Operating System Review 14(4), 36–40.CrossRefGoogle Scholar
  49. Gelernter H, Hansen JR and Gerberrich CL (1960) A FORTRAN-compiled list processing language, JACM 7(2), 87–101.CrossRefGoogle Scholar
  50. Goldberg A and Robson D (1983) Smalltalk-80: The Language and its Implementation, Addison-Wesley, 674–681Google Scholar
  51. Hansen WJ (1969) Compact list representation: definition, garbage collection, and system implementation, Comm ACM 12(9), 499CrossRefGoogle Scholar
  52. Hayes, B (1990) Open systems require conservative garbage collectors, ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  53. Hayes B (1991) Using key object opportunism to collect old objects, OOPSLA'91, SIGPLAN Notices 26(11), ACM, 33–46Google Scholar
  54. Hoare CAR (1974) Optimization of store size for garbage collection, Info. Processing Letters 2(6), 165–166.CrossRefGoogle Scholar
  55. Hudak, P(1982) Object and Task Reclamation in Distributed Applicative Processing Systems, PhD Thesis, University of Utah.Google Scholar
  56. 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.Google Scholar
  57. 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.Google Scholar
  58. Hudson, R and Diwan A(1990) Adaptive garbage collection for Modula-3 and Smalltalk., ECOOP/OOPSLA '90 Workshop on Garbage Collection.Google Scholar
  59. Hughes, J (1984) Reference counting with circular structures in virtual memory, spplicative dystems, TR Programming Research Group, Oxford Univ.Google Scholar
  60. Hughes, J (1985) A distributed garbage collection algorithm, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer-Verlag, 256–272.Google Scholar
  61. 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.Google Scholar
  62. Jones SLP (1987) The Implementation of Functional Programming Languages, Prentice-Hall.Google Scholar
  63. Jonkers HBM (1979) A gast garbage compaction algorithm. Info. Processing Letters 9(1) 26–30.CrossRefGoogle Scholar
  64. Juul NC (1990) Report on the ECOOP/OOPSLA'90 Workshop on Garbage Collection in Object-Oriented Systems.Google Scholar
  65. Kafara D, Washabaugh D and Nelson J (1990) Garbage collection of actors, ECOOP/OOPSLA '90 Proceedings of Workshop on Garbage Collection, 126–34Google Scholar
  66. Kain RY (1969) Block structures, indirect addressing and garbage collection. Comm ACM 12(7)395–398.CrossRefGoogle Scholar
  67. Knuth DE (1973) The Art of Computer Programming; Vol 1: Fundamental Algorithms, Addision-Wesley, Reading, Mass.Google Scholar
  68. 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.Google Scholar
  69. 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.Google Scholar
  70. Krasner G (ed) (1983) Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley.Google Scholar
  71. 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.Google Scholar
  72. 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.Google Scholar
  73. Li K (1988a) Real-time concurrent collection in user mode, ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  74. 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.Google Scholar
  75. Lieberman H and Hewitt C (1983) A real-time garbage collector based on the lifetimes or objects. Comm ACM 26(6), 419–429.CrossRefGoogle Scholar
  76. Lindstrom G (1974) Copying list structures using bounded workspace, Comm ACM 17(4), 198–202.CrossRefGoogle Scholar
  77. 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–39Google Scholar
  78. Martin JJ (1982) An efficient garbage compaction algorithm, Comm ACM 25(8), 571–581.CrossRefGoogle Scholar
  79. McCarthy J (1960) Recursive functions of symbolic expressions and their computation by machine: Part I, Comm ACM 3(4), 184–195.CrossRefGoogle Scholar
  80. McCullough PL (1983) Implementing the Smalltalk-80 system: The Tektronix experience, in Smalltalk-80: Bits of History, Words of Advice, Addison-Wesley, 59–78Google Scholar
  81. 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.Google Scholar
  82. Miranda E (1987) BrouHaHa — a portable Smalltalk interpreter, OOPSLA'87, SIGPLAN Notices 22(12), ACM, 354–365Google Scholar
  83. 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.Google Scholar
  84. Moon D.(1984) Garbage collection in a large lisp system, 1984 ACM Symposium on Lisp and Functional Programming, 235–246.Google Scholar
  85. Morris FL (1978) A time-and Space-efficient garbage compaction algorithm. Comm ACM 21(8), 662–665.CrossRefGoogle Scholar
  86. Morris FL (1979) On a comparison of garbage collection techniques, Comm ACM 22(10), 571.CrossRefGoogle Scholar
  87. Moss JEB (1990) Garbage collecting persistent object stores, ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  88. Newell A and Tonge FM (1960) An introduction to IPL-V, Comm ACM 3, 205–211.CrossRefGoogle Scholar
  89. Newman IA, Stallard RP and Woodward MC (1982) Performance of parallel garbage collection algorithms, Computer Studies 166, Sept 1982.Google Scholar
  90. 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.Google Scholar
  91. Nilsen K (1988) Garbage collection of strings and linked data structures in real time, Software Practice and Experience 18(7), July 1988, 613–640.Google Scholar
  92. 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.Google Scholar
  93. ParcPlace (1991) ObjectworksSmalltalk Release 4 User's Guide, Memory Management 229–237Google Scholar
  94. 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.Google Scholar
  95. Rudalics M, (1986) Distributed copying garbage collection, Proceedings of 1986 ACM Conference on Lisp and Functional Programming, Massachusetts Institute of Technology, 364–372.Google Scholar
  96. Schelvis M and Bledoeg E (1988) The implementation of a distributed Smalltalk, ECOOP Proceedings, August 1988 LNCS 322.Google Scholar
  97. Schelvis M (1989) Incremental distribution of timestamp packets: a new approach to distributed garbage collection, OOPSLA'89, SIGPLAN Notices 24(10), ACM, 37–48.Google Scholar
  98. Schorr H and Waite WM (1967) An efficient machine-independent procedure for garbage collection in various list structures, Comm ACM 10(8), 501–506.CrossRefGoogle Scholar
  99. Sharma R and Soffa M L (1991) Parallel generational garbage collection, OOPSLA 91, SIGPLAN Notices 26(11), ACM, 16–32Google Scholar
  100. 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.Google Scholar
  101. Standish TA (1980) Data Structures Techniques, Addison-Wesley, Reading, Mass., 1980.Google Scholar
  102. Steele GL (1975) Multiprocessing compactifying garbage collection. Comm ACM 18(9), 495–508.CrossRefGoogle Scholar
  103. Thomas RE, (1981) A dataflow computer with improved asymptotic performance, MIT Laboratory for computer science report MIT/LCS/TR-265Google Scholar
  104. Terashima M and Goto E (1978) Genetic order and compactifying garbage collector, Info. Processing Letters 7(1), 27–32.CrossRefGoogle Scholar
  105. 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.Google Scholar
  106. 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.Google Scholar
  107. Ungar D and Jackson F (1988) Tenuring policies for generation-based storage reclamation, OOPSLA'88, SIGPLAN Notices 23(11), ACM, 1–17.Google Scholar
  108. Ungar D and Jackson F (1992) An adaptive tenuring policy for generation scavengers, TOPLAS 14(1), 1–27.CrossRefGoogle Scholar
  109. 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.Google Scholar
  110. Wadler PL (1976) Analysis of an algorithm for real-time garbage collection, Comm ACM 19(9), 491–500.CrossRefGoogle Scholar
  111. Watson I (1986) An analysis of garbage collection for distributed Systems, TR Dept Comp. Sc., U. Manchester.Google Scholar
  112. 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.Google Scholar
  113. Wegbreit B (1972) A generalised compacting garbage collector, Computer Journal 15(3) 204–208.CrossRefGoogle Scholar
  114. Weizenbaum J (1962) Knotted list structures, Comm ACM 5(3), 161–165.CrossRefGoogle Scholar
  115. Weizenbaum J (1963) Symmetric list processor, Comm ACM 6(9), 524–544.CrossRefGoogle Scholar
  116. White JL (1980) Address/memory management for a gigantic Lisp environment, or GC considered harmful, Conference Record of the 1980 Lisp Conference, 119–127.Google Scholar
  117. Wilson PR and Moher TG (1989) Design of the opportunistic garbage collector, OOPSLA'89, SIGPLAN Notices 24(10), ACM, 23–35.Google Scholar
  118. Wilson PR (1990) Some issues and strategies in heap management and memory Hierarchies, ECOOP/OOPSLA'90 Workshop on Garbage CollectionGoogle Scholar
  119. 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.Google Scholar
  120. Wilson P R (1992) Comp.compiler Usenet discussion, February 1992Google Scholar
  121. 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.Google Scholar
  122. Wolczko M and Williams I (1990) Garbage collection in high-performance system, ECOOP/OOPSLA'90 Workshop on Garbage Collection. October 1990.Google Scholar
  123. Woodward MC (1981) Multiprocessor garbage collection — a new solution, Computer Studies 115 Google Scholar
  124. Zave DA (1975) A fast compacting garbage collector, Info Processing Letters 3, 167–169.CrossRefGoogle Scholar
  125. Zorn B (1989) Comparative performance evaluation of garbage collection Algorithms, PhD Thesis, EECS Dept, UC Berkeley.Google Scholar
  126. Zorn, B (1990) Designing systems for evaluation: A case study of garbage collection., ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Saleh E. Abdullahi
    • 1
  • Eliot E. Miranda
    • 1
  • Graem A. Ringwood
    • 1
  1. 1.Department of Computer Science Queen Mary and Westfield CollegeUniversity of LondonLondon

Personalised recommendations