skip to main content
article

Reducing pause time of conservative collectors

Published:20 June 2002Publication History
Skip Abstract Section

Abstract

This paper describes an incremental conservative garbage collector that significantly reduces pause time of an existing collector by Boehm et al. Like their collector, it is a true conservative collector that does not require compiler cooperation but uses virtual memory primitives (page protection) of operating systems for write barriers. While much successful work has been done on incremental collectors in general, achieving small pause time of the order of a few milliseconds in such uncooperative settings has been challenging. Our collector combines several ideas that bound pause times without introducing significant overheads. They include: (1) bounding the number of dirty (writable) pages during concurrent marking, (2) adaptive repetition of concurrent marking phases, and (3) allocating objects in black (marked) in later stages of a collection. With these techniques, we have achieved the maximum pause time of 2.6--4.5ms for five application benchmarks on 400MHz UltraSPARC processors. They are up to forty times shorter than the basic incremental collector similar to Boehm et al.'s. The overhead (total work time) of our collector is 1.2--53% to the stop-the-world collector and 9% or less to the basic incremental collector.

References

  1. A. W. Appel and K. Li. Virtual memory primitives for user programs. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 96--107, 1991 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andrew W. Appel, John R. Ellis, and Kai Li. Real-time concurrent garbage collection on stock multiprocessors. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 11--20, 1988 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. (MATH) Josh Barnes and Piet Hut. A hierarchical $O(N \log N)$ force-calculation algorithm. Nature, 324:446--449, 1986Google ScholarGoogle Scholar
  4. Hans-J. Boehm. A garbage collector for C and C++. http://www.hpl.hp.com/personal/Hans_Boehm/gc/Google ScholarGoogle Scholar
  5. Hans-J. Boehm. Bounding space usage of conservative garbage collectors. In Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages, pages 93--100, 2002 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Hans-J. Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 157--164, 1991 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Hans-Juergen Boehm. Space efficient conservative garbage collection. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 197--206, June 1993 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Software Practice and Experience, 18(9):807--820, 1988 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Perry Cheng and Guy E. Blelloch. A parallel, real-time garbage collector. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 125--136, 2001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. David Detlefs, Al Dosser, and Benjamin Zorn. Memory allocation costs in large C and C++ programs. Technical Report CU-CS-665-93, University of Colorado at Boulder, August 1993Google ScholarGoogle Scholar
  11. Edsger W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):966--975, November 1978 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 70--83, 1994 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multithreaded implementation of ML. In Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 113--123, January 1993 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Toshio Endo. Scalable Dynamic Memory Management Module on Shared Memory Multiprocessors. PhD thesis, Department of Information Science, The University of Tokyo, September 2001Google ScholarGoogle Scholar
  15. Toshio Endo, Kenjiro Taura, and Akinori Yonezawa. A scalable mark-sweep garbage collector on large-scale shared-memory machines. In Proceedings of ACM/IEEE Conference on High Performance Networking and Computing (SC97), November 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Bjorn N. Freeman-Benson, John Maloney, and Alan Borning. An incremental constraint solver. Communications of the ACM, 33(1):54--63, January 1990 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Guy L. Steele Jr. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Robert H. Halstead, Jr. Multilisp: A language for concurrent symbolic computation. ACM Transaction on Programming Languages and Systems, 7(4):501--538, 1985 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Richard Jones and Rafael Lins. Garbage Collection, Algorithms for Automatic Dynamic Memory Management. Wiley & Sones, 1996. ISBN 0-471-94148-4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. Kasami. An efficient recognition and syntax algorithm for context-free languages. Technical report, Air Force Cambridge Research Lab, 1965Google ScholarGoogle Scholar
  21. Yonezawa Laboratory. Parallel/distributed garbage collectors home page. http://web.yl.is.s.u-tokyo.ac.jp/gc/Google ScholarGoogle Scholar
  22. Shogo Matsui, Yoshio Tanaka, and Masakazu Nakanishi. Complementary garbage collector. In Proceedings of the 1995 SIGPLAN International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, pages 163--178, 1995 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Satoshi Matsuoka, Shin'ichi Furuso, and Akinori Yonezawa. A fast parallel conservative garbage collector for concurrent object-oriented systems. In Proceedings of IEEE International Workshop on Object Orientation in Operating Systems, pages 87--93, October 1991Google ScholarGoogle ScholarCross RefCross Ref
  24. Tony Printezis and David Detlefs. A generational mostly-concurrent garbage collection. In Proceedings of ACM SIGPLAN International Symposium on Memory Management (ISMM), pages 143--154, October 2000 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Kenjiro Taura, Kunio Tabata, and Akinori Yonezawa. StackThreads/MP: Integrating futures into calling standards. In Proceedings of ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 60--71, May 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Paul R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the 1992 SIGPLAN International Workshop on Memory Management, volume 637 of Lecture Notes in Computer Science, 1992 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Taichi Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181--198, 1990 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Reducing pause time of conservative collectors

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 38, Issue 2 supplement
      MSP 2002 and ISMM 2002
      February 2003
      291 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/773039
      Issue’s Table of Contents
      • cover image ACM Conferences
        ISMM '02: Proceedings of the 3rd international symposium on Memory management
        June 2002
        192 pages
        ISBN:1581135394
        DOI:10.1145/512429

      Copyright © 2002 ACM

      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: 20 June 2002

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader