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.
Preview
Unable to display preview. Download preview PDF.
References
Joe Armstrong, Robert Virding, and Mike Williams. Concurrent Programming in ERLANG. Prentice Hall, 1993.
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.
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.
David A. Fisher. Bounded workspace garbage collection in an address-order preserving list processing environment. Information Processing Letters, 3(1):29–32, July 1974.
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.
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.
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.
Guy L. Steele Jr. Data representation in PDP-10 MACLISP. MIT AI Memo 421, Massachusetts Institute of Technology, 1977.
Motoaki Terashima and Eiichi Goto. Genetic order and compactifying garbage collectors. Information processing Letters, 7(1):27–32, January 1978.
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.
Robert Virding. A garbage collector for the real-time concurrent language Erlang. In this IWMM'95 Proceedings.
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.
Author information
Authors and Affiliations
Editor information
Rights 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