Advertisement

Incremental collection of mature objects

  • Richard L. Hudson
  • J. Eliot B. Moss
Incremental
Part of the Lecture Notes in Computer Science book series (LNCS, volume 637)

Abstract

We present a garbage collection algorithm that extends generational scavenging to collect large older generations (mature objects) non-disruptively. The algorithm's approach is to process bounded-size pieces of mature object space at each collection; the subtleties lie in guaranteeing that it eventually collects any and all garbage. The algorithm does not assume any special hardware or operating system support, e.g., for forwarding pointers or protection traps. The algorithm copies objects, so it naturally supports compaction and reclustering.

Keywords

clustering compaction copying collection garbage collection garbage collector toolkits generation scavenging incremental collection mature objects non-disruptive collection 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Appel et al., 1988]
    Andrew W. Appel, John R. Ellis, and Kai Li Realtime concurrent collection on stock multiprocessors. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation (Atlanta, Georgia, June 1988), ACM SIGPLAN Not. 23,7 (July 1988), pp. 11–20.Google Scholar
  2. [Baker, 1978]
    H. G. Baker. List processing in real time on a serial computer. Communications of the ACM 21,4 (April 1978), 280–294.CrossRefGoogle Scholar
  3. [Bishop, 1977]
    Peter B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA, May 1977.Google Scholar
  4. [Boehm et al., 1991]
    Hans-J. Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. In [OOPSLA, 1991], pp. 157–164.Google Scholar
  5. [Cheney, 1970]
    C. J. Cheney. A nonrecursive list compacting algorithm. Communications of the ACM 13,11 (November 1970), 677–678.CrossRefGoogle Scholar
  6. [Diwan et al., 1992]
    Amer Diwan, J. Eliot B. Moss, and Richard L. Hudson. Compiler support for garbage collection in a statically typed language. In Conference on Programming Language Design and Implementation (San Francisco, California, June 1992), SIGPLAN, ACM Press, pp. 273–282.Google Scholar
  7. [Fenichel and Yochelson, 1969]
    Robert R. Fenichel and Jerome C. Yochelson. A LISP garbage-collector for virtual-memory computer systems. Communications of the ACM 12,11 (November 1969), 611–612.CrossRefGoogle Scholar
  8. [Hayes, 1991]
    Barry Hayes. Using key object opportunism to collect old objects. In [OOPSLA, 1991], pp. 33–46.Google Scholar
  9. [Hosking et al., 1992]
    Antony L. Hosking, J. Eliot B. Moss, and Darko Stefanović. A comparative performance evaluation of write barrier implementations. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (Vancouver, Canada, October 1992). To appear.Google Scholar
  10. [Hudson et al., 1991]
    Richard L. Hudson, J. Eliot B. Moss, Amer Diwan, and Christopher F. Weight A language-independent garbage collector toolkit COINS Technical Report 91–47, University of Massachusetts, Amherst September 1991. Submitted for publication.Google Scholar
  11. [Jones, 1986]
    Douglas W. Jones. An empirical comparison of priority-queue and event-set implementations. Communications of the ACM 29, 4 (April 1986), 300–311.CrossRefGoogle Scholar
  12. [Lang and Dupont, 1987]
    Bernard Lang and Francis Dupont Incremental incrementally compacting garbage collection. SIGPLAN '87-Symposium on Interpreters and Interpretive Techniques (1987), 253–263.Google Scholar
  13. [Lieberman and Hewitt, 1983]
    Henry Lieberman and Carl Hewitt. A real-time garbage collection based on the lifetimes of objects. Communications of the ACM 26, 6 (June 1983), 419–429.CrossRefGoogle Scholar
  14. [Moon, 1984]
    David Moon. Garbage collection in a large Lisp system. In Proceedings of the ACM Symposium on Lisp and Functional Programming (Austin, TX, August 1984), pp. 235–246.Google Scholar
  15. [OOPSLA, 1991]
    Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (Phoenix, Arizona, October 1991), ACM SIGPLAN Not. 26,11 (November 1991).Google Scholar
  16. [Sleator and Tarjan, 1983]
    Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary search trees. In Proceedings of the ACM SIGACT Symposium on Theory (Boston, Massachusetts, April 1983), pp. 235–245.Google Scholar
  17. [Sleator and Tarjan, 1985]
    Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary search frees. Journal of the ACM 32,3 (July 1985).Google Scholar
  18. [Ungar, 1984]
    David Ungar. 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 (Pittsburgh, Pennsylvania, April 1984), ACM SIGPLAN Not. 19,5 (May 1984), pp. 157–167.Google Scholar
  19. [Ungar and Jackson, 1988]
    David Ungar and Frank Jackson. Tenuring policies for generation-based storage reclamation. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (San Diego, California, September 1988), ACM SIGPLAN Not. 23, 11 (November 1988), pp. 1–17.Google Scholar
  20. [Weinreb and Moon, 1981]
    Daniel Weinreb and David Moon. Lisp Machine Manual, third ed. Massachusetts Institute of Technology, 1981.Google Scholar
  21. [White, 1980]
    Jon L. White. Address/memory management for a gigantic Lisp environment or, GC considered harmful. In Proceedings of the ACM Symposium on Lisp and Functional Programming (Stanford, California, August 1980), ACM, pp. 119–127.Google Scholar
  22. [Wilson et al., 1991]
    Paul R. Wilson, Michael S. Lam, and Thomas G. Moher. Effective “static-graph” reorganization to improve locality in garbage-collected systems. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation (Toronto, Canada, June 1991), ACM SIGPLAN Not. 26, 6 (June 1991), pp. 177–191.Google Scholar
  23. [Wilson and Moher, 1989]
    Paul R. Wilson and Thomas G. Moher. Design of the Opportunistic Garbage Collector. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (New Orleans, Louisiana, October 1989), ACM SIGPLAN Not. 24, 10 (October 1989), pp. 23–35.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Richard L. Hudson
    • 1
  • J. Eliot B. Moss
    • 2
  1. 1.University Computing ServicesUniversity of MassachusettsAmherstUSA
  2. 2.Object Systems Laboratory, Department of Computer ScienceUniversity of MassachusettsAmherstUSA

Personalised recommendations