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.
This project is supported by National Science Foundation Grant CCR-8658074 and by Digital Equipment Corporation and Apple Computer.
Preview
Unable to display preview. Download preview PDF.
References
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.
H. G. Baker. List processing in real time on a serial computer. Communications of the ACM 21,4 (April 1978), 280–294.
Peter B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA, May 1977.
Hans-J. Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. In [OOPSLA, 1991], pp. 157–164.
C. J. Cheney. A nonrecursive list compacting algorithm. Communications of the ACM 13,11 (November 1970), 677–678.
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.
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.
Barry Hayes. Using key object opportunism to collect old objects. In [OOPSLA, 1991], pp. 33–46.
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.
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.
Douglas W. Jones. An empirical comparison of priority-queue and event-set implementations. Communications of the ACM 29, 4 (April 1986), 300–311.
Bernard Lang and Francis Dupont Incremental incrementally compacting garbage collection. SIGPLAN '87-Symposium on Interpreters and Interpretive Techniques (1987), 253–263.
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.
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.
Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (Phoenix, Arizona, October 1991), ACM SIGPLAN Not. 26,11 (November 1991).
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.
Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary search frees. Journal of the ACM 32,3 (July 1985).
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.
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.
Daniel Weinreb and David Moon. Lisp Machine Manual, third ed. Massachusetts Institute of Technology, 1981.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hudson, R.L., Moss, J.E.B. (1992). Incremental collection of mature objects. 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/BFb0017203
Download citation
DOI: https://doi.org/10.1007/BFb0017203
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