ABSTRACT
Concurrent 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 also offer much better scalability over incremental collectors. The main problem with concurrent real-time collectors is their complexity. The first concurrent real-time garbage collector that can support fine synchronization, STOPLESS, has recently been presented by Pizlo et al. In this paper, we propose two additional (and different) algorithms for concurrent real-time garbage collection: CLOVER and CHICKEN. Both collectors obtain reduced complexity over the first collector STOPLESS, but need to trade a benefit for it. We study the algorithmic strengths and weaknesses of CLOVER and CHICKEN and compare them to STOPLESS. Finally, we have implemented all three collectors on the Bartok compiler and runtime for C# and we present measurements to compare their efficiency and responsiveness.
- Hezi Azatchi, Yossi Levanoni, Harel Paz, and Erez Petrank. An on-the-fly mark and sweep garbage collector based on sliding view. OOPSLA 2003. Google ScholarDigital Library
- David F. Bacon, Perry Cheng, and V.T. Rajan. A real-time garbage collecor with low overhead and consistent utilization. In POPL 2003. Google ScholarDigital Library
- Henry G. Baker. List processing in real-time on a serial computer. CACM, 21(4):280--94, 1978. Google ScholarDigital Library
- Katherine Barabash, Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, Yoav Ossia, Avi Owshanko, and Erez Petrank. A parallel, incremental, mostly concurrent garbage collector for servers. TOPLAS 27(6):1097--1146, November 2005. Google ScholarDigital Library
- Guy E. Blelloch and Perry Cheng. On bounding time and space for multiprocessor garbage collection. PLDI , 1999. Google ScholarDigital Library
- Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991. Google ScholarDigital Library
- Rodney A. Brooks. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. the 1984 Symposium on Lisp and Functional Programming, 1984. Google ScholarDigital Library
- Perry Cheng and Guy Blelloch. A parallel, real-time garbage collector. In PLDI, 2001. Google ScholarDigital Library
- Cliff Click, Gil Tene, and Michael Wolf. The pauseless GC algorithm. VEE, 2005. Google ScholarDigital 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. CACM, 21(11):965--975, 1978. Google ScholarDigital Library
- Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In POPL 1994. Google ScholarDigital Library
- Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. POPL 1993. Google ScholarDigital Library
- Tamar Domani, Elliot Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for Java. PLDI 2000. Google ScholarDigital Library
- Tamar Domani, Elliot K. Kolodner, Ethan Lewis, Elliot E. Salant, Katherine Barabash, Itai Lahan, Erez Petrank, Igor Yanover, and Yossi Levanoni. Implementing an on-the-fly garbage collector for Java. ISMM 2000. Google ScholarDigital Library
- ECMA. Standard ECMA-335, Common Language Infrastructure (CLI), 4th edition edition, June 2006. http://www.ecmainternational. org/.Google Scholar
- Roger Henriksson. Scheduling Garbage Collection in Embedded Systems. PhD thesis, Lund Institute of Technology, 1998.Google Scholar
- Maurice Herlihy and J. Eliot B Moss. Lock-free garbage collection for multiprocessors. IEEE Tran. Paral. & Dist. Sys., 3(3), May 1992. Google ScholarDigital Library
- Richard L. Hudson and J. Eliot B. Moss. Sapphire: Copying GC without stopping the world. In Joint ACM Java Grande - ISCOPE 2001 Conference, 2001. Google ScholarDigital Library
- Richard E. Jones and Rafael Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, Chichester, 1996. Google ScholarDigital Library
- Haim Kermany and Erez Petrank. The Compressor: Concurrent, incremental and parallel compaction. PLDI 2006. Google ScholarDigital Library
- Yossi Levanoni and Erez Petrank. An on-the-fly reference counting garbage collector for Java. OOPSLA 2001. Google ScholarDigital Library
- Yossi Levanoni and Erez Petrank. An on-the-fly reference counting garbage collector for Java. TOPLAS, 28(1), 2006. Google ScholarDigital Library
- Matthias Meyer. A true hardware read barrier. ISMM 2006. Google ScholarDigital Library
- Yoav Ossia, Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, and Avi Owshanko. A parallel, incremental and concurrent GC for servers. PLDI 2002. Google ScholarDigital Library
- Filip Pizlo, Daniel Frampton, Erez Petrank, and Bjarne Steensgaard. Stopless: A real-time garbage collector for modern platforms. ISMM 2007. Google ScholarDigital Library
- Tony Printezis and David Detlefs. A generational mostly-concurrent garbage collector. ISMM 2000. Google ScholarDigital Library
- Sven Gestegård Robertz and Roger Henriksson. Time-triggered garbage collection - robust and adaptive real-time GC scheduling for embedded systems. LCTES 2003.Google Scholar
- Daniel Spoonhower, Joshua Auerbach, David F. Bacon, Perry Cheng, and David Grove. Eventrons: A safe programming construct for high-frequency hard real-time applications. PLDI 2006. Google ScholarDigital Library
- Guy L. Steele. Multiprocessing compactifying garbage collection. CACM, 18(9):495--508, September 1975. Google ScholarDigital Library
Index Terms
- A study of concurrent real-time garbage collectors
Recommendations
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 ...
An on-the-fly mark and sweep garbage collector based on sliding views
Special Issue: Proceedings of the OOPSLA '03 conferenceWith concurrent and garbage collected languages like Java and C# becoming popular, the need for a suitable non-intrusive, efficient, and concurrent multiprocessor garbage collector has become acute. We propose a novel mark and sweep on-the-fly algorithm ...
Reducing pause time of conservative collectors
MSP 2002 and ISMM 2002This 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 ...
Comments