Summary: Realtime Concurrent Collection
on Stock Multiprocessors
Andrew W. Appel 1
John R. Ellis 2
Kai Li 1
We have designed and implemented a copying garbagecollection algorithm that is
efficient, realtime, concurrent, runs on commerial uniprocessors and sharedmemory
multiprocessors, and requires no change to compilers. The algorithm uses standard
virtualmemory hardware to detect references to ``from space'' objects and to syn
chronize the collector and mutator threads. We have implemented and measured a
prototype running on SRC's 5processor Firefly. It will be straightforward to merge
our techniques with generational collection. An incremental, nonconcurrent version
could be implemented easily on many versions of Unix.
This paper presents the first copying garbagecollection algorithm that is efficient,
realtime, concurrent, runs on stock commercial uniprocessors and multiprocessors,
and requires no change to compilers.
A collection algorithm is efficient if the amortized cost to allocate, access, and
collect an object is small compared to the cost of initializing the object.