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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Toshio Endo. A scalable mark-sweep garbage collector on large-scale shared-memory machines. Master's thesis, University of Tokyo, February 1998.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Robert H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501--538, October 1985. Google Scholar
Digital Library
- Roger Henriksson. Scheduling real-time garbage collection. In Proceedings of NWPER'94, Lund, Sweden, 1994.Google Scholar
- Lorenz Huelsbergen and Phil Winterbottom. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. In Jones {17}, pages 166--175.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Pekka P. Pirinen. Barrier techniques for incremental tracing. In Jones {17}, pages 20--25.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Martin Schoeberl and Wolfgang Puffitsch. Non-blocking real-time garbage collection. Trans. on Embedded Computing Sys., accepted for publication, 2010. Google Scholar
Digital Library
- Fridtjof Siebert. Guaranteeing non-disruptiveness and real-time deadlines in an incremental garbage collector. In Jones {17}, pages 130--137.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Fridtjof Siebert. Constant-time root scanning for deterministic garbage collection. In Tenth International Conference on Compiler Construction (CC2001), Genoa, April 2001. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Standard Performance Evaluation Corporation (SPEC). SPECjvm98 Benchmarks. http://www.specbench.org/osg/jvm98/.Google Scholar
- Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975. Google Scholar
Digital Library
- Taichi Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181--198, 1990. Google Scholar
Digital Library
Index Terms
Concurrent, parallel, real-time garbage-collection
Recommendations
Concurrent, parallel, real-time garbage-collection
ISMM '10: Proceedings of the 2010 international symposium on Memory managementWith 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 ...
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 ...
Limits of parallel marking garbage collection
ISMM '08: Proceedings of the 7th international symposium on Memory managementMore and more, parallel multicore systems will be used even in low-end devices such as embedded controllers that require realtime guarantees. When garbage collection is used in these systems, parallel or concurrent garbage collection brings important ...







Comments