skip to main content
10.1145/1296907.1296927acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
Article

Stopless: a real-time garbage collector for multiprocessors

Published:21 October 2007Publication History

ABSTRACT

We present Stopless: a concurrent real-time garbage collector suitable for modern multiprocessors running parallel multithreaded applications. Creating a garbage-collected environment that supports real-time on modern platforms is notoriously hard,especially if real-time implies lock-freedom. Known real-time collectors either restrict the real-time guarantees to uniprocessors only, rely on special hardware, or just give up supporting atomic operations (which are crucial for lock-free software). Stopless is the first collector that provides real-time responsiveness while preserving lock-freedom, supporting atomic operations, controlling fragmentation by compaction, and supporting modern parallel platforms. Stopless is adequate for modern languages such as C# or Java. It was implemented on top of the Bartok compiler and runtime for C# and measurements demonstrate high responsiveness (a factor of a 100 better than previously published systems), virtually no pause times, good mutator utilization, and acceptable overheads.

References

  1. Diab Abuaiadh, Yoav Ossia, Erez Petrank, and Uri Silbershtein. An efficient parallel heap compaction algorithm. In OOPSLA 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Matthew Arnold and Barbara G. Ryder. A framework for reducing the cost of instrumented code. In PLDI 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. David F. Bacon, Perry Cheng, and V.T. Rajan. A real--time garbage collecor with low overhead and consistent utilization. In POPL 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Henry G. Baker. List processing in real--time on a serial computer. CACM, 21(4):280--94, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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. ACM TOPLAS,27(6):1097--1146, November 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Stephen M. Blackburn and Tony Hosking. Barriers: Friend or foe? In ISMM 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Guy E. Blelloch and Perry Cheng. On bounding time and space for multiprocessor garbage collection. In PLDI 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Hans--Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Rodney A. Brooks. Trading data space for reduced time and code space in real--time garbage collection on stock hardware. In LFP 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Perry Cheng and Guy Blelloch. A parallel, real--time garbage collector. In PLDI, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cliff Click, Gil Tene, and Michael Wolf. The pauseless GC algorithm. In VEE 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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, November 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In POPL 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi--threaded implementation of ML. In POPL 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Tamar Domani, Elliot Kolodner, and Erez Petrank. A generational on--the--fly garbage collector for Java. In PLDI 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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. In ISMM 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Timothy L. Harris, Keir Fraser, and Ian A. Pratt. A practical multi--word compare--and--swap operation. In DISC 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Roger Henriksson. Predictable automatic memory management for embedded systems. In OOPSLA '97 Workshop on Garbage Collection and Memory Management.Google ScholarGoogle Scholar
  19. Roger Henriksson. Scheduling Garbage Collection in Embedded Systems. PhD thesis, Lund Institute of Technology, July 1998.Google ScholarGoogle Scholar
  20. Maurice Herlihy and J. Eliot B Moss. Lock--free garbage collection for multiprocessors. IEEE Transactions on Parallel and Distributed Systems, 3(3), May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Richard L. Hudson and J. Eliot B. Moss. Sapphire: Copying GC without stopping the world. In Joint ACM Java Grande -- ISCOPE 2001 Conference, CA, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, Chichester, July 1996. With a chapter on Distributed Garbage Collection by R. Lins.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Haim Kermany and Erez Petrank. The Compressor: Concurrent, incremental and parallel compaction. In PLDI 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Yossi Levanoni and Erez Petrank. An on--the--fly reference counting garbage collector for Java. In OOPSLA 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Henry Massalin and Calton Pu. A lock--free multiprocessor os kernel. SIGOPS Oper. Syst. Rev., 26(2):8, 1992. Google ScholarGoogle ScholarCross RefCross Ref
  26. Matthias Meyer. A true hardware read barrier. In J. Eliot B. Moss, editor, ISMM'06 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Scott M. Nettles and James W. O'Toole. Real--time replication--based garbage collection. In PLDI 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Yoav Ossia, Ori Ben--Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, and Avi Owshanko. A parallel, incremental and concurrent GC for servers. In PLDI 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Tony Printezis and David Detlefs. A generational mostly--concurrent garbage collector. In ISMM 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Sven Robertz. Applying priorities to memory allocation. In ISMM 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Sven Gestegård Robertz and Roger Henriksson. Time--triggered garbage collection -- robust and adaptive real--time GC scheduling for embedded systems. In LCTES 2003.Google ScholarGoogle Scholar
  32. Daniel Spoonhower, Joshua Auerbach, David F. Bacon, Perry Cheng, and David Grove. Eventrons: A safe programming construct for high--frequency hard real--time applications. In PLDI 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Guy L. Steele. Multiprocessing compactifying garbage collection. CACM, 18(9):495--508, September 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Stopless: a real-time garbage collector for multiprocessors

    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
    • Published in

      cover image ACM Conferences
      ISMM '07: Proceedings of the 6th international symposium on Memory management
      October 2007
      192 pages
      ISBN:9781595938930
      DOI:10.1145/1296907

      Copyright © 2007 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 21 October 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate72of156submissions,46%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader