Concurrent Collection as an Operating System Service for Cross-Runtime Cross-Language Memory Managment

Michal Wegiel and Chandra Krintz

UCSB TR 2001-15, July 2010

PDF

Abstract

We present GC-as-a-Service (GaS), a cross-runtime, cross-language garbage collection (GC) library that can be used to simplify the implementation of runtime systems, and that exploits available multicore technologies. GaS decouples GC from other runtime components and exposes a fine-grain API for use by GC-cooperative runtimes of different programming languages for heap memory management. GaS provides concurrent, on-the-fly GC and avoids moving objects for use as a precise or conservative collector. We integrate GaS within production-quality runtime systems for Python and Java. Our experimental evaluation shows that using GaS as an alternative to tightly integrated GC introduces modest overhead and that GaS reduces pause times significantly for Python and Java programs.