Parallel Real-Time Garbage Collection

  • Fridtjof Siebert


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 chapter explains the basic concepts for parallel real-time garbage collectors, the major real-time Java virtual machine implementations and their approach to parallel real-time memory management. Two implementations, Metronome-TS and JamaicaVM will be presented in more detail since these two represent two typical instances of the time-based and work-based approaches of running the garbage collector. A discussion at the end of this chapter will compare the fundamental differences in the presented approaches. A final section on related work puts the presented implementations into a wider context on current garbage collection research.


Garbage Collection Allocation Rate Garbage Collector Free List Mark Phase 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 14.
  2. 20.
    C.R. Attanasio, D.F. Bacon, A. Cocchi, and S. 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.CrossRefGoogle Scholar
  3. 21.
    J.S. Auerbach, D.F. Bacon, B. Blainey, P. Cheng, M. Dawson, M. Fulton, D. Grove, D. Hart, and M. G. Stoodley. Design and implementation of a comprehensive real-time Java virtual machine. In C.M. Kirsch and R. Wilhelm, editors, EMSOFT, pages 249–258. ACM, 2007.Google Scholar
  4. 22.
    J.S. Auerbach, D.F. Bacon, P. Cheng, D. Grove, B. Biron, C. Gracie, B. McCloskey, A. Micic, and R. Sciampacone. Tax-and-spend: democratic scheduling for real-time garbage collection. In L. de Alfaro and J. Palsberg, editors, EMSOFT, pages 245–254. ACM, 2008.Google Scholar
  5. 23.
    D.F. Bacon, P. Cheng, and V.T. Rajan. A real-time garbage collector with low overhead and consistent utilization. In POPL’03: Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 285–298, New York, NY, USA, 2003. ACM Press.Google Scholar
  6. 24.
    H.G. Baker. List processing in real time on a serial computer. Commun. ACM, 21(4):280–294, 1978.zbMATHCrossRefGoogle Scholar
  7. 59.
    G.E. Blelloch and P. 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 Scholar
  8. 83.
    R.A. Brooks. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In Guy L. Steele, editor, Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 256–262, Austin, TX, August 1984. ACM Press.Google Scholar
  9. 100.
    P. Cheng and G.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 Scholar
  10. 137.
    E.W. Dijkstra, L. 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 Scholar
  11. 140.
    D. Doligez and G. 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, January 1994. ACM Press.Google Scholar
  12. 141.
    D. Doligez and X. 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, January 1993. ACM Press.Google Scholar
  13. 142.
    T. Domani, E. Kolodner, and E. 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 Scholar
  14. 143.
    T. Domani, E. Kolodner, and E. Petrank. A generational on-the-fly garbage collector for Java. Technical Report 88.385, IBM Haifa Research Laboratory, 2000. Fuller version of [142].Google Scholar
  15. 148.
    T. Endo. A scalable mark-sweep garbage collector on large-scale shared-memory machines. Master’s thesis, University of Tokyo, February 1998.Google Scholar
  16. 149.
    T. Endo, K. Taura, and A. 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 Scholar
  17. 162.
    C. Flood, D. Detlefs, N. Shavit, and C. Zhang. Parallel garbage collection for shared memory multiprocessors. In Usenix Java Virtual Machine Research and Technology Symposium (JVM’01), Monterey, CA, April 2001.Google Scholar
  18. 184.
    R.H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–538, October 1985.zbMATHCrossRefGoogle Scholar
  19. 190.
    R. Henriksson. Scheduling real-time garbage collection. In Proceedings of NWPER’94, Lund, Sweden, 1994.Google Scholar
  20. 212.
    L. Huelsbergen and P. Winterbottom. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. In Jones [230], pages 166–175.Google Scholar
  21. 229.
    M.S. Johnstone and P.R. Wilson. The memory fragmentation problem: solved? In Proceedings of the 1st international symposium on Memory management, ISMM’98, pages 26–36, New York, NY, USA, 1998. ACM.Google Scholar
  22. 290.
    Y. Ossia, O. Ben-Yitzhak, I. Goft, E.K. Kolodner, V. Leikehman, and A. 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 Scholar
  23. 294.
    P.P. Pirinen. Barrier techniques for incremental tracing. In Jones [230], pages 20–25.Google Scholar
  24. 298.
    F. Pizlo, D. Frampton, E. Petrank, and B. 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 Scholar
  25. 299.
    F. Pizlo, E. Petrank, and B. 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 Scholar
  26. 300.
    F. Pizlo, L. Ziarek, P. Maj, A.L. Hosking, E. Blanton, and J. Vitek. Schism: fragmentation-tolerant real-time garbage collection. SIGPLAN Not., 45:146–159, June 2010.CrossRefGoogle Scholar
  27. 350.
    M. 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, Gyeongju, Korea, April 2006. IEEE.Google Scholar
  28. 360.
    M. Schoeberl and W. Puffitsch. Non-blocking real-time garbage collection. ACM Trans. Embedded Comput. Syst., 10(1), 2010.Google Scholar
  29. 368.
    F. Siebert. Guaranteeing non-disruptiveness and real-time deadlines in an incremental garbage collector. In Jones [230], pages 130–137.Google Scholar
  30. 369.
    F. 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 Scholar
  31. 370.
    F. Siebert. Eliminating external fragmentation in a non-moving garbage collector for Java. In Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems (CASES 2000), pages 9–17, New York, NY, USA, 2000. ACM.Google Scholar
  32. 371.
    F. Siebert. Constant-time root scanning for deterministic garbage collection. In Tenth International Conference on Compiler Construction (CC2001), Genoa, April 2001.Google Scholar
  33. 374.
    F. 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 Scholar
  34. 375.
    F. Siebert. Concurrent, parallel, real-time garbage-collection. In Proceedings of the 2010 international symposium on Memory management, ISMM’10, pages 11–20, New York, NY, USA, 2010. ACM.Google Scholar
  35. 384.
    G.L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495–508, September 1975.zbMATHCrossRefGoogle Scholar
  36. 444.
    T. Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181–198, 1990.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.aicas GmbHKarlsruheGermany

Personalised recommendations