Abstract
We introduce a new replicationbased copying garbage collection technique. We have implemented one simple variation of this method to provide incremental garbage collection on stock hardware with no special operating system or virtual memory support. The performance of the prototype implementation is excellent: major garbage collection pauses are completely eliminated with only a slight increase in minor collection pause times.
Unlike the standard copying algorithm, the replication-based method does not destroy the original replica when a copy is created. Instead, multiple copies may exist, and various standard strategies for maintaining consistency may be applied. In our implementation for Standard ML of New Jersey, the mutator continues to use the from-space replicas until the collector has achieved a consistent replica of all live data in to-space.
We present a design for a concurrent garbage collector using the replication-based technique. We also expect replication-based gc methods to be useful in providing services for persistence and distribution, and briefly discuss these possibilities.
This research was sponsored by the Avionics Lab, Wright Research and Development Center, Aeronautical Systems Division (AFSC), U. S. Air Force, Wright-Patterson AFB, OH 45433-6543 under Contract F33615-90-C-1465, Arpa Order No. 7597 and by the Air Force Systems Command and the Defense Advanced Research Projects Agency (DARPA) under Contract F19628-91-C-0128.
The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the U.S. Government.
Preview
Unable to display preview. Download preview PDF.
References
A. Appel. Simple generational garbage collection and fast allocation. SoftwarePractice and Experience, 19(2):171–183, February 1989.
Andrew W. Appel, John R. Ellis, and Kai Li. Real-time concurrent garbage collection on stock multiprocessors. In SIGPLAN Symposium on Programming Language Design and Implementation, pages 11–20, 1988.
H. G. Baker. List processing in real time on a serial computer. Communications of the ACM, 21(4):280–294, 1978.
Rodney A. Brooks. Trading data space for reduced time and code space in real-time garbage collection. In SIGPLAN Symposium on LISP and Functional Programming, pages 256–262, 1984.
Robert H. Halstead, Jr. Implementation of multilisp: LISP on a multiprocessor. In ACM Symposium on LISP and Functional Programming, pages 9–17, 1984.
David A. Moon. Garbage collection in a large lisp system. In Proceedings of the 1984 ACM Symposium on Lisp and Functional Programming, pages 235–246. ACM, August 1984.
Scott M. Nettles and J.M. Wing. Persistence + Undoability=Transactions. Technical Report CMU-CS-91-173, Carnegie Mellon University, August 1991.
S. C. North and J.H. Reppy. Concurrent garbage collection on stock hardware. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 274), Pages 113–133. Springer-Verlag, 1987.
Paul R. Wilson and Thomas G. Moher. Design of the opportunistic garbage collector. In Proceedings of ACM SIGPLAN 1989 Conference on Object-Oriented Programming: Systems, Languages, and Applications, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nettles, S., O'Toole, J., Pierce, D., Haines, N. (1992). Replication-based incremental copying collection. 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/BFb0017201
Download citation
DOI: https://doi.org/10.1007/BFb0017201
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