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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- (MATH) Josh Barnes and Piet Hut. A hierarchical $O(N \log N)$ force-calculation algorithm. Nature, 324:446--449, 1986Google Scholar
- Hans-J. Boehm. A garbage collector for C and C++. http://www.hpl.hp.com/personal/Hans_Boehm/gc/Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Software Practice and Experience, 18(9):807--820, 1988 Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Toshio Endo. Scalable Dynamic Memory Management Module on Shared Memory Multiprocessors. PhD thesis, Department of Information Science, The University of Tokyo, September 2001Google Scholar
- 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 ScholarDigital Library
- Bjorn N. Freeman-Benson, John Maloney, and Alan Borning. An incremental constraint solver. Communications of the ACM, 33(1):54--63, January 1990 Google ScholarDigital Library
- Guy L. Steele Jr. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975 Google ScholarDigital Library
- Robert H. Halstead, Jr. Multilisp: A language for concurrent symbolic computation. ACM Transaction on Programming Languages and Systems, 7(4):501--538, 1985 Google ScholarDigital Library
- Richard Jones and Rafael Lins. Garbage Collection, Algorithms for Automatic Dynamic Memory Management. Wiley & Sones, 1996. ISBN 0-471-94148-4 Google ScholarDigital Library
- T. Kasami. An efficient recognition and syntax algorithm for context-free languages. Technical report, Air Force Cambridge Research Lab, 1965Google Scholar
- Yonezawa Laboratory. Parallel/distributed garbage collectors home page. http://web.yl.is.s.u-tokyo.ac.jp/gc/Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Taichi Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181--198, 1990 Google ScholarDigital Library
Index Terms
- Reducing pause time of conservative collectors
Recommendations
Reducing pause time of conservative collectors
ISMM '02: Proceedings of the 3rd international symposium on Memory managementThis 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 ...
A study of concurrent real-time garbage collectors
PLDI '08Concurrent garbage collection is highly attractive for real-time systems, because offloading the collection effort from the executing threads allows faster response, allowing for extremely short deadlines at the microseconds level. Concurrent collectors ...
A study of concurrent real-time garbage collectors
PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and ImplementationConcurrent garbage collection is highly attractive for real-time systems, because offloading the collection effort from the executing threads allows faster response, allowing for extremely short deadlines at the microseconds level. Concurrent collectors ...
Comments