Abstract
This paper presents a new concurrent garbage collection algorithm based on two types of reference, strong and weak, to link the graph of objects. Strong references connect the roots to all the nodes in the graph but do not contain cycles.Weak references may, however, contain cycles. Advantages of this system include: (1) reduced processing, nontrivial garbage collection work is only required when the last strong reference is lost; (2) fewer memory traces to delete objects, a garbage cycle only needs to be traversed twice to be deleted; (3) fewer memory traces to retain objects, since the collector can often prove objects are reachable without fully tracing support cycles to which the objects belong; (4) concurrency, it can run in parallel with a live system without "stopping the world;" (5) parallel, because collection operations in different parts of the memory can proceed at the same time. Previous variants of this technique required exponential cleanup time [27, 31], but our algorithm is linear in total time, i.e. any changes in the graph take only O(N) time steps, where N is the number of edges in the affected subgraph (e.g. the subgraph whose strong support is affected by the operations).
Original language | English (US) |
---|---|
Pages (from-to) | 47-58 |
Number of pages | 12 |
Journal | International Symposium on Memory Management, ISMM |
Volume | 49 |
Issue number | 11 |
DOIs | |
State | Published - Jun 12 2014 |
Externally published | Yes |
Event | 2014 ACM SIGPLAN International Symposium on Memory Management, ISMM 2014 - Edinburgh, United Kingdom Duration: Jun 12 2014 → … |
Keywords
- Compilers and runtime systems
- Concurrent data structures
- Garbage Collection
- Parallel algorithms
- Parallel programming theory and models
- Software for productivity parallel programming
ASJC Scopus subject areas
- General Computer Science