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
|