Skip to main content

One pass real-time generational mark-sweep garbage collection

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 986))

Abstract

Traditional mark-sweep garbage collection algorithms do not allow reclamation of data until the mark phase of the algorithm has terminated.

For the class of languages in which destructive operations are not allowed we can arrange that all pointers in the heap always point backwards towards “older” data. In this paper we present a simple scheme for reclaiming data for such language classes with a single pass mark-sweep collector.

We also show how the simple scheme can be modified so that the collection can be done in an incremental manner (making it suitable for real-time collection). Following this we show how the collector can be modified for generational garbage collection, and finally how the scheme can be used for a language with concurrent processes.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Joe Armstrong, Robert Virding, and Mike Williams. Concurrent Programming in ERLANG. Prentice Hall, 1993.

    Google Scholar 

  2. Lennart Augustsson. A compiler for lazy ML. In Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, pages 218–227, Austin, Texas, August 1984. ACM Press.

    Google Scholar 

  3. Henry G. Baker, Jr. List processing in real time on a serial computer. Communications of the ACM, 21(4):280–294, April 1978. Originally appeared as MIT Artificial Intelligence Laboratory Working Paper No. 39, February 1977.

    Google Scholar 

  4. David A. Fisher. Bounded workspace garbage collection in an address-order preserving list processing environment. Information Processing Letters, 3(1):29–32, July 1974.

    Google Scholar 

  5. T. Johnsson. Efficient compilation of lazy evaluation. In M. Van Deusen, editor, Compiler construction: Proceedings of the ACM SIGPLAN '84 symposium (Montreal, Canada, June 17–22, 1984), ACM SIGPLAN Notices, vol. 19, no. 6, June, 1984, pages 58–69, New York, NY, USA, 1984. ACM Press.

    Google Scholar 

  6. Henry Lieberman and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419–429, June 1983.

    Google Scholar 

  7. H. Schorr and W. M. Waite. An efficient machine-independent procedure for garbage collection in various list structures. Communications of the ACM, 10(8):501–506, 1967.

    Google Scholar 

  8. Guy L. Steele Jr. Data representation in PDP-10 MACLISP. MIT AI Memo 421, Massachusetts Institute of Technology, 1977.

    Google Scholar 

  9. Motoaki Terashima and Eiichi Goto. Genetic order and compactifying garbage collectors. Information processing Letters, 7(1):27–32, January 1978.

    Google Scholar 

  10. David Ungar and Frank Jackson. Tenuring policies for generation-based storage reclamation. In Proceedings OOPSLA '88, ACM SIGPLAN Notices, pages 1–17, November 1988. Published as Proceedings OOPSLA '88, ACM SIGPLAN Notices, volume 23, number 11.

    Google Scholar 

  11. Robert Virding. A garbage collector for the real-time concurrent language Erlang. In this IWMM'95 Proceedings.

    Google Scholar 

  12. Paul R. Wilson. Uniprocessor garbage collection techniques. In Yves Bekkers and Jacques Cohen, editors, International Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, pages 1–42, St. Malo, France, September 1992. Springer-Verlag.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Henry G. Baler

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag

About this paper

Cite this paper

Armstrong, J., Virding, R. (1995). One pass real-time generational mark-sweep garbage collection. In: Baler, H.G. (eds) Memory Management. IWMM 1995. Lecture Notes in Computer Science, vol 986. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60368-9_31

Download citation

  • DOI: https://doi.org/10.1007/3-540-60368-9_31

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60368-9

  • Online ISBN: 978-3-540-45511-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics