Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Design of the opportunistic garbage collector

Published: 01 September 1989 Publication History

Abstract

The Opportunistic Garbage Collector (OGC) is a generational garbage collector for stock hardware and operating systems. While incorporating important features of previous systems, the OGC includes several innovations. A new bucket brigade heap organization supports advancement thresholds between one and two scavenges, using only two or three spaces per generation, and without requiring per-object counts. Opportunistic scavenging decouples scavenging from the filling of available memory, in order to hide potentially disruptive scavenge pauses and improve efficiency. Card marking efficiently records which small areas of the heap may contain pointers into younger generations, and is supported by a refinement of the crossing map technique, to enable scanning of arbitrary cards.

References

[1]
Appel, Andrew W., Ellis, John R., and Kai Li, "Realtime concurrent collection on stock multiprocessors," SIGPLAN "88 Conference on Progranvning Language Design and Implememation, Atlanta, Georgia, June 22-24, 1988, pp. 11-20.
[2]
Blau, Ricki, "Paging on an object-oriented personal computer for Smalltalk," Proceedings of the ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems, Minneapolis, MN, August 1983.
[3]
Caudill, Patrick J., and Allen Wirfs-Brock, "A thirdgeneration Smalltalk implementation," OOPSLA "86 Conference Proceedings, Portland OR, 1986, pp. 119-130. (Also published as ACM SIGPLAN Notices 21, 11, Nov. 1986.)
[4]
Caudill, Patrick J. Personal communication.
[5]
Clinger, Will, Anne Hartheimer, and Eric Ost, "Implementation Strategies for Continuations," Proc. 1988 ACM Conference on Lisp and Functional Programming, Snowbird, Utah, July 25-27, 1988.
[6]
Courts, Robert, "Improving Locality of Reference in a Garbage-Collecting Memory Management System," Communications of the ACM, Vol. 31, 9 (September 1988), pp.1128-1138.
[7]
Deutsch, L. Peter, and A.M. Schiffman, "Efficient Implementation of the Smalltalk-80 System," Proc. of the 111h Annual ACM Symposium on Principles of Programming Languages, pp. 297-302, Salt Lake City, Utah, January, 1984.
[8]
Lee, Elgin Hoe-Sing, Object storage and inheritance for Self, a prototype-based object-oriented programming language, Engineer's thesis, Stanford University, December 1988.
[9]
Lieberman, Henry, and Carl Hewitt, "A real-time garbage collector based on the lifetimes of objects," Commun&ations of the ACM, Vol. 26, 6 (June 1983), pp. 419- 429.
[10]
Moher, Thomas G. "PROVIDEmA Process Visualization and Debugging Environment," IEEE Trans. Software Engineering 14, 6 (June 1988), pp. 849-857.
[11]
Moon, David, "Garbage collection in a large Lisp system," ACM Symposium on Lisp and Functional Programming, Austin, Texas, 1984, pp. 235-246.
[12]
Shaw, Robert A. Emph, ical analysis of a Lisp system. Ph.D. dissertation, Tech. Report CSL-TR-88-351, Stanford University, February 1988.
[13]
Sobalvalro, Patrick G., "A lifetime-based garbage collector for LISP systems on general-purpose computers," B.S. thesis, MIT EECS Dept. 1988.
[14]
Stamos, James W., "Static grouping of small objects to enhance performance of a paged virtual memory," A CM Transactions on Computer Systems, vol. 2, no. 2, May 1984, pp.155-180.
[15]
Steenkiste, Peter, Lisp on a reduced-instruction-set processor: characterization and optimization. Ph.D. Dissertation, Stanford University, March 1987. Technical report CSL-TR-87- 324.
[16]
Hill, Mark, et al., "Design Decisions in Spur," IEEE Computer, vol. 19, 11 (November 1986), pp. 8-22.
[17]
Steele, Guy L., and Sussman, Gerald J., "Scheme: an interpreter for the extended lambda calculus," Memo 349, MIT Artificial Intelligence Laboratory, 1975.
[18]
Ungar, David, "Generation Scavenging: A nondisruptive high-performance storage reclamation algorithm," ACM SIGPLAN Notices, Vol. 19, 5 (May 1984), pp.157-167.
[19]
Ungar, D. Design and evaluation of a highperformance Smalltalk system. MIT Press, Cambridge Mass., 1986.
[20]
Ungar, David, and Frank Jackson, "Tenuring policies for generation-based storage reclamation," OOPSLA "88 Conference Proceedings, San Diego, California, 1988, pp. 1-17. (Also published as ACM SIGPLAN Notices 23, 11, November, 1988.)
[21]
Wilson, Paul R, "Opportunistic garbage collection," SIGPLANNotices vol. 23, 12 (December 1988), pp. 98-102.
[22]
Wilson, Paul R, "Two comprehensive virtual copy mechanisms," M.S. thesis, University of Illinois at Chicago EECS Dept., 1988.
[23]
Wilson, Paul R. and Thomas G. Moher, "Scavenging algorithms for improved locality," working paper, University of Illinois at Chicago EECS Department.
[24]
Wilson, Paul R. and Thomas G. Moher, "Demonic memory for process histories," Proceedings of the ACM SIGPLAN "89 Conference on Programming Language Design and Implementation, Portland, Oregon, June 21-23, 1989, pp. 330- 343.
[25]
Wilson, Paul R. and Thomas G. Moher, "Heap management and hierarchical memories," forthcoming in SIGPLAN Notices.

Cited By

View all
  • (2019)Learning when to garbage collect with random forestsProceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management10.1145/3315573.3329983(53-63)Online publication date: 23-Jun-2019
  • (2017)Improving garbage collection-time string deduplicationProceedings of the 27th Annual International Conference on Computer Science and Software Engineering10.5555/3172795.3172809(113-119)Online publication date: 6-Nov-2017
  • (2016)ALMAProceedings of the 17th International Middleware Conference10.1145/2988336.2988341(1-14)Online publication date: 28-Nov-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 24, Issue 10
Special issue: Proceedings of the 1989 ACM OOPSLA conference on object-oriented programming
Oct. 1989
446 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/74878
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '89: Conference proceedings on Object-oriented programming systems, languages and applications
    September 1989
    528 pages
    ISBN:0897913337
    DOI:10.1145/74877
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1989
Published in SIGPLAN Volume 24, Issue 10

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)69
  • Downloads (Last 6 weeks)14
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Learning when to garbage collect with random forestsProceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management10.1145/3315573.3329983(53-63)Online publication date: 23-Jun-2019
  • (2017)Improving garbage collection-time string deduplicationProceedings of the 27th Annual International Conference on Computer Science and Software Engineering10.5555/3172795.3172809(113-119)Online publication date: 6-Nov-2017
  • (2016)ALMAProceedings of the 17th International Middleware Conference10.1145/2988336.2988341(1-14)Online publication date: 28-Nov-2016
  • (2015)A partial read barrier for efficient support of live object-oriented programmingACM SIGPLAN Notices10.1145/2887746.275418650:11(93-104)Online publication date: 14-Jun-2015
  • (2015)A partial read barrier for efficient support of live object-oriented programmingProceedings of the 2015 International Symposium on Memory Management10.1145/2754169.2754186(93-104)Online publication date: 14-Jun-2015
  • (2010)Headroom-based pretenuringProceedings of the 8th International Conference on the Principles and Practice of Programming in Java10.1145/1852761.1852767(29-38)Online publication date: 15-Sep-2010
  • (2009)A Phase-Adaptive Garbage Collector Using Dynamic Heap Partitioning and Opportunistic CollectionIEICE Transactions on Information and Systems10.1587/transinf.E92.D.2053E92-D:10(2053-2063)Online publication date: 2009
  • (2009)Garbage Collection TechniquesThe Compiler Design Handbook10.1201/9781420043839.ch6(6-1-6-35)Online publication date: 7-Dec-2009
  • (2007)MicrophaseACM SIGPLAN Notices10.1145/1297105.129703442:10(77-96)Online publication date: 21-Oct-2007
  • (2007)MicrophaseProceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications10.1145/1297027.1297034(77-96)Online publication date: 21-Oct-2007
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media