MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Concurrent cycle collection in reference counted systems (2001) [20 citations — 6 self]

Download:
pdf
by David F. Bacon, V. T. Rajan
In European Conference on Object-Oriented Programming
http://www.cs.purdue.edu/homes/hosking/690M/Bacon01Concurrent.pdf
Add To MetaCart

Abstract:

Abstract. Automatic storage reclamation via reference counting has important advantages, but has always suffered from a major weakness due to its inability to reclaim cyclic data structures. We describe a novel cycle collection algorithm that is both concurrent — it is capable of collecting garbage even in the presence of simultaneous mutation — and localized — it never needs to perform a global search of the entire data space. We describe our algorithm in detail and present a proof of correctness. We have implemented our algorithm in the Jalapeño Java virtual machine as part of the Recycler, a concurrent multiprocessor reference counting garbage collector that achieves maximum mutator pause times of only 6 milliseconds. We present measurements of the behavior of the cycle collection algorithm over a set of eight benchmarks that demonstrate the effectiveness of the algorithm at finding garbage cycles, handling concurrent mutation, and eliminating global tracing. 1

Citations

239 Recursive functions of symbolic expressions and their computation by machine, part 1 – McCarthy - 1960
167 Steffens “On−the−fly Garbage Collection: An Exercise in Cooperation – Dijkstra, Lamport, et al. - 1978
136 Real-time concurrent collection on stock multiprocessors – Appel, Ellis, et al. - 1988
101 An efficient, incremental, automatic garbage collector – Deutsch, Bobrow - 1976
99 A concurrent, generational garbage collector for a multithreaded implementation of ML – Doligez, Leroy - 1993
98 A method for overlapping and erasure of lists – Collins - 1960
71 Implementing Jalapeño in Java – Alpern, Attanasio, et al. - 1999
64 Jr.: Multiprocessing Compactifying Garbage Collection – Steele - 1975
47 Garbage Collection – Jones, Lins - 1996
43 Adding Garbage Collection and Runtime Types to a Strongly Typed – Rovner - 1985
36 An efficient parallel garbage collection system and its correctness proof – Kung, Song - 1977
34 Java without the coffee breaks: A nonintrusive multiprocessor garbage collector – Bacon, Attanasio, et al. - 2001
33 A concurrent copying garbage collector for languages that distinguish (im)mutable data – Huelsbergen, Larus - 1993
32 Experience with concurrent garbage collectors for Modula-2 – DeTreville - 1990
28 Managing re-entrant structures using reference counts – BOBROW - 1980
23 Very concurrent mark-&- sweep garbage collection without fine-grain synchronization – Huelsbergen, Winterbottom - 1998
22 Cyclic reference counting with lazy mark-scan – LINS - 1992
21 Garbage collection with multiple processes: an exercise in parallelism – LAMPORT - 1976
19 Cyclic reference counting with local mark-scan – Martinez, Wachenchauzer, et al. - 1990
18 Reference count garbage collection – CHRISTOPHER - 1984
18 Cyclic weighted reference counting without delay – Jones, Lins - 1993
16 A Generational On-the-fly Garbage Collector for Java – Domani, Kolodner, et al. - 2000
12 A multi-processor shared memory architecture for parallel cyclic reference counting – LINS - 1992
10 Real-time garbage collection – NETTLES, O'TOOLE - 1993
10 Cyclic distributed garbage collection with group merger – Rodrigues, Jones - 1998
4 Cyclic reference counting with local mark-scan – INEZ, D, et al. - 1990
3 Strongly-connected component algorithms for concurrent cycle collection – BACON, KOLODNER, et al. - 2001