Mark DURING sweep rather than mark THEN sweep

  • Christian Queinnec
  • Barbara Beaudoing
  • Jean-Pierre Queille
Submitted Presentations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 365)


Garbage Collection frees the programmer from the burden of explicitly deallocating unused data. This facility induces a considerable overhead but also causes some delays that may affect real-time applications. Guaranteed throughput (with at most short and predictable delays) is needed in many applications such as plane or plant control and requires at least a worst case analysis to identify the performances of the whole system. Traditional GC are made of two phases : the marker which identifies all useful data, followed by the sweeper which reclaims all useless data. On-the-fly GC schemes were introduced to permit an application and a collector to run concurrently. That concurrency may lessen the GC penalty incurred by the application.

We present here a new algorithm where the application, the marker and the sweeper are concurrent. The benefit is to tightly adjust collection rate to application consumption and have an allocation time bounded by a small constant. Moreover our algorithm does not waste memory and appears to be well suited for embedded systems.

This “mark DURING sweep” algorithm is completely presented. An interesting single-processor and incremental realisation is also analysed and followed by some implementation variations.


Garbage Collection Garbage Collector Grey Cell Black Cell Guarantee Throughput 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Appel 87]
    Andrew W. Appel, Garbage Collection can be Faster than Stack Allocation, Information Processing Letters 25 (1987) 275–279.CrossRefGoogle Scholar
  2. [Appel & Ellis & Li 88]
    Andrew W. Appel, John R. Ellis, Kai Li, Real-time Concurrent Collection on Stock Multiprocessors, Proceedings of the SIGPLAN'88 Conference on Programming Language Design and Implementation, Atlanta, Georgia, June 22–24, 1988, pp 11–20.Google Scholar
  3. [Baker 78]
    H.G. Baker, List Processing in Real Time on a Serial Computer, Communications of ACM, Vol. 21, No 4, April 1978, pp 280–294.CrossRefGoogle Scholar
  4. [Ben-Ari 84]
    Mordechai Ben-Ari, Algorithms for On-the-fly Garbage Collection, ACM Transactions on Programming Languages and Systems, Volume 6, Number 3, July 1984, pp 333–344.CrossRefGoogle Scholar
  5. [Bobrow 79]
    Daniel G. Bobrow, Douglas W. Clark, Compact Encodings of List Structure, ACM transactions on Programming Languages and Systems, Vol. 1, No. 2, October 1979, pp 266–286.CrossRefGoogle Scholar
  6. [Brinch Hansen 73]
    Brinch Hansen, Operating System Principles, Prentice-Hall, Englewood Cliffs, New Jersey, 1973.Google Scholar
  7. [Cohen 81]
    Jacques Cohen, Garbage Collection of Linked Data Structures, Computing Surveys, Volume 13, Number 3, September 1981, pp 341–367.CrossRefGoogle Scholar
  8. [Derbyshire 88]
    Margaret H. Derbyshire, Mark Scan Garbage Collection On A Distributed Architecture submitted to Lisp And Symbolic Computation.Google Scholar
  9. [Dijkstra 78]
    Edsger W. Dijkstra, Leslie Lamport, A.J. Martin, C.S. Scholten and E.F.M. Steffens, On-the-Fly Garbage Collection: An Exercise in Cooperation, Communications of the ACM, Volume 21, Number 11, Novembre 1978, pp 966–975.CrossRefGoogle Scholar
  10. [Fenichel & Yochelson 69]
    R.R. Fenichel, J.C. Yochelson, A Lisp Garbage Collector for Virtual-Memory Computer Systems, Communications of ACM, Vol. 12, No 11, November 1969.Google Scholar
  11. [Goldberg 83]
    Adele Goldberg and David Robson, Smalltalk-80 The Language and its Implementation, Addison-Wesley, 1983.Google Scholar
  12. [Hudak & Keller 82]
    P. Hudak and R. Keller, Garbage Collection and Task Deletion in Distributed Applicative Processing Systems, ACM Symposium on Lisp and Functional Programming, August 1982.Google Scholar
  13. [Hughes 85]
    John Hughes, A Distributed Garbage Collection, Lecture Notes on Computer Science, Vol. 201, Springer-Verlag, Functional and Programming Languages and Computer Architecture, Nancy, France, September 1985.Google Scholar
  14. [Knuth 68]
    Donald E. Knuth, The Art of Computer Programming, Fundamental Algorithms, Addison-Wesley, 1968.Google Scholar
  15. [Kung & Song 77]
    H.T. Kung and S.W. Song, An Efficient Garbage Collection System and its Correctness Proof, Proceedings of IEEE 18th Symposium on Foundations of Computer Science, October 1977, pp 120–131.Google Scholar
  16. [Lang 87]
    Bernard Lang, Francis Dupont, Incremental Incrementally Compacting Garbage Collection, SIGPLAN'87 Symposium on Interpreters and Interpretive Techniques, Saint Paul, MA, pp 253–263.Google Scholar
  17. [Lieberman 83]
    Henry Lieberman and Carl Hewitt, A Real-time Garbage Collector based on the Lifetimes of Objects, Communications of the ACM, 23(6), 1983), pp 419–429.CrossRefGoogle Scholar
  18. [McCarthy 60]
    John McCarthy, Recursive Functions of Symbolic Expressions and their Computation by Machine-Part I, Communications of ACM, Vol 3, N 1, 1960, pp 184–195.CrossRefGoogle Scholar
  19. [Milner 84]
    Robin Milner, A Proposal for Standard ML, ACM Symposium on Program and Functional Programming, 1984, pp 184–197.Google Scholar
  20. [Moon 84]
    David A. Moon, Garbage Collection in a Large program System, 1984 ACM Symposium on Program and Functional Programming, Austin, Texas, pp 235–246.Google Scholar
  21. [Queinnec 88]
    Christian Queinnec, Dynamic Extent Objects, Lisp Pointers, Vol. 2, No 1, 1988.Google Scholar
  22. [Rees 84]
    Jonathan A. Rees, Norman I. Adams, James R. Meehan, The T Manual, Fourth Edition, 10 January 1984, Computer Science Department, Yale University, New Haven CT.Google Scholar
  23. [Van de Snepscheut 87]
    Jan L.A. Van de Snepscheut, “Algorithms for On-the-fly Garbage Collection” revisited, Information Processing Letters 24, 1987, pp 211–216.CrossRefGoogle Scholar
  24. [Steele 75]
    Guy L. Steele Jr., Multiprocessing Compactifying Garbage Collection, Communications of the ACM, Volume 18, Number 9, September 1975, pp 495–508.CrossRefGoogle Scholar
  25. [Symbolics Reference Manual]
    Symbolics Reference Manual, Symbolics.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Christian Queinnec
    • 1
  • Barbara Beaudoing
    • 2
  • Jean-Pierre Queille
    • 3
  1. 1.LIX École PolytechniquePalaiseau cedexFrance
  2. 2.LIX et SAGEMFrance
  3. 3.SAGEM Chauss%ee Jules CésarOsnyFrance

Personalised recommendations