skip to main content
research-article

Concurrent, parallel, real-time garbage-collection

Published:05 June 2010Publication History
Skip Abstract Section

Abstract

With the current developments in CPU implementations, it becomes obvious that ever more parallel multicore systems will be used even in embedded controllers that require real-time guarantees. When garbage collection is used in these systems, parallel and concurrent garbage collection brings important performance advantages in the average case. In a real-time system, however, guarantees on the GC's performance in the worst case are required.

This paper explains how the single-CPU real-time GC of the Java implementation JamaicaVM was changed to make it a hard real-time garbage collector that is parallel and concurrent. Parallel means that an arbitrary number of CPUs may perform GC work in parallel, while concurrent means that the GC work can be performed concurrently to the application code without pre-empting the application. In addition, the single units of work that this garbage collector has to perform are very small and uniform and the total amount of GC work is bounded by a function of the heap size, such that it becomes possible for any application that has a bounded amount of reachable memory to run the GC work such that sufficient GC progress can be ensured for the application never to run out of heap space.

References

  1. Clement R. Attanasio, David F. Bacon, Anthony Cocchi, and Stephen Smith. A comparative evaluation of parallel garbage collectors. In H. G. Dietz, editor, Proceedings of the Fourteenth Annual Workshop on Languages and Compilers for Parallel Computing, volume 2624 of Lecture Notes in Computer Science, pages 177--192, Cumberland Falls, Kentucky, August 2001. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. David F. Bacon, Perry Cheng, and V. T. Rajan. A real-time garbage collecor with low overhead and consistent utilization. In Conference Record of the Thirtieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, New Orleans, LA, January 2003. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Henry G. Baker. List processing in real-time on a serial computer. Communications of the ACM, 21(4):280--94, 1978. Also AI Laboratory Working Paper 139, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Guy E. Blelloch and Perry Cheng. On bounding time and space for multiprocessor garbage collection. In Proceedings of SIGPLAN'99 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, pages 104--117, Atlanta, May 1999. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Perry Cheng and Guy E. Blelloch. A parallel, real-time garbage collector. In PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, pages 125--136, New York, NY, USA, 2001. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. In Lecture Notes in Computer Science, No. 46. Springer-Verlag, New York, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Conference Record of the Twenty-first Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices. ACM Press, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. In Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, pages 113--123. ACM Press, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Tamar Domani, Elliot Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for Java. In Proceedings of SIGPLAN 2000 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, Vancouver, June 2000. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Tamar Domani, Elliot Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for Java. Technical Report 88.385, IBM Haifa Research Laboratory, 2000. Fuller version of {9}.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Toshio Endo. A scalable mark-sweep garbage collector on large-scale shared-memory machines. Master's thesis, University of Tokyo, February 1998.Google ScholarGoogle Scholar
  12. Toshio Endo, Kenjiro Taura, and Akinori Yonezawa. Predicting scalability of parallel garbage collectors on shared memory multiprocessors. In Proceedings of the 15th International Parallel & Distributed Processing Symposium (IPDPS-01), San Francisco, CA, pages 43--43. IEEE Computer Society, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Christine Flood, Dave Detlefs, Nir Shavit, and Catherine Zhang. Parallel garbage collection for shared memory multiprocessors. In Usenix Java Virtual Machine Research and Technology Symposium (JVM '01), Monterey, CA, April 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Robert H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501--538, October 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Roger Henriksson. Scheduling real-time garbage collection. In Proceedings of NWPER'94, Lund, Sweden, 1994.Google ScholarGoogle Scholar
  16. Lorenz Huelsbergen and Phil Winterbottom. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. In Jones {17}, pages 166--175.Google ScholarGoogle Scholar
  17. Richard Jones, editor. ISMM'98 Proceedings of the First International Symposium on Memory Management, volume 34(3) of ACM SIGPLAN Notices, Vancouver, October 1998. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Yoav Ossia, Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, and Avi Owshanko. A parallel, incremental and concurrent GC for servers. In Proceedings of SIGPLAN 2002 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, pages 129--140, Berlin, June 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Pekka P. Pirinen. Barrier techniques for incremental tracing. In Jones {17}, pages 20--25.Google ScholarGoogle Scholar
  20. Filip Pizlo, Daniel Frampton, Erez Petrank, and Bjarne Steensgaard. Stopless: a real-time garbage collector for multiprocessors. In ISMM '07: Proceedings of the 6th international symposium on Memory management, pages 159--172, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Filip Pizlo, Erez Petrank, and Bjarne Steensgaard. A study of concurrent real-time garbage collectors. In PLDI '08: Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation, pages 33--44, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Martin Schoeberl. Real-Time Garbage Collection for Java. In Proceedings of the 9th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC 2006), pages 424-432. IEEE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Martin Schoeberl and Wolfgang Puffitsch. Non-blocking real-time garbage collection. Trans. on Embedded Computing Sys., accepted for publication, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Fridtjof Siebert. Guaranteeing non-disruptiveness and real-time deadlines in an incremental garbage collector. In Jones {17}, pages 130--137.Google ScholarGoogle Scholar
  25. Fridtjof Siebert. Hard real-time garbage collection in the Jamaica Virtual Machine. In Sixth International Conference on Real-Time Computing Systems and Applications (RTCSA'99), Hong Kong, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Fridtjof Siebert. Eliminating external fragmentation in a non-moving garbage collector for Java. In Compilers, Architectures and Synthesis for Embedded Systems (CASES2000), San Jose, November 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Fridtjof Siebert. Constant-time root scanning for deterministic garbage collection. In Tenth International Conference on Compiler Construction (CC2001), Genoa, April 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Fridtjof Siebert. Limits of parallel marking garbage collection. In ISMM '08: Proceedings of the 7th international symposium on Memory management, pages 21--29, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Standard Performance Evaluation Corporation (SPEC). SPECjvm98 Benchmarks. http://www.specbench.org/osg/jvm98/.Google ScholarGoogle Scholar
  30. Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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. Concurrent, parallel, real-time garbage-collection

          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 45, Issue 8
            ISMM '10
            August 2010
            129 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1837855
            Issue’s Table of Contents
            • cover image ACM Conferences
              ISMM '10: Proceedings of the 2010 international symposium on Memory management
              June 2010
              140 pages
              ISBN:9781450300544
              DOI:10.1145/1806651
              • General Chair:
              • Jan Vitek,
              • Program Chair:
              • Doug Lea

            Copyright © 2010 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 5 June 2010

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!