Stopless: A Real-Time Garbage Collector for Modern Platforms
Filip Pizlo, Daniel Frampton, Erez Petrank and Bjarne Steensgaard
The 2007 International
Symposium on Memory Management (ISMM 2007) Montreal, Canada, 21-22
October, 2007
Abstract
We present STOPLESS: a concurrent real-time garbage collector
suitable for modern multiprocessors running parallel multithreaded applications.
Creating a garbage-collected environment that supports real-time on modern
platforms is notoriously hard, especially if real-time implies lock-freedom.
Known real-time collectors either restrict the real-time guarantees to
uniprocessors only, rely on special hardware, or just give up supporting atomic
operations (which are crucial for lock-free software). STOPLESS is the first
collector that supports it all: real-time responsiveness is provided, atomic
operations are supported, lock-freedom is preserved, fragmentation is controlled
by compaction, and modern parallel platforms are supported. STOPLESS is adequate
for modern languages such as C# or Java. It was implemented on top of the Bartok
compiler and runtime for C# and measurements demonstrate high responsiveness (a
factor of a 100 better than previously published systems), virtually no pause
times, good mutator utilization, and acceptable overheads.