Scheduling Hard Real-Time Garbage Collection

Kalibera, Tomas and Pizlo, Filip and Hosking, Antony L. and Vitek, Jan


Managed languages such as Java and C# are increasingly being considered for hard real-time applications because of their productivity and software engineering advantages. Automatic memory management, or garbage collection, is a key enabler for robust, reusable libraries, yet remains a challenge for analysis and implementation of real-time execution environments. This paper comprehensively compares the two leading approaches to hard real-time garbage col- lection. While there are many design decisions involved in selecting a real-time garbage collection algorithm, for time-based garbage collectors researchers and practitioners remain undecided as to whether to choose periodic scheduling or slack-based scheduling. A significant impediment to valid experimental comparison is that the commercial implementations use completely different proprietary infrastructures. Here, we present Minuteman, a framework for experimenting with real-time collection algorithms in the context of a high-performance execution environment for real-time Java. We provide the first comparison of the two approaches, both experimentally using realistic workloads, and analytically in terms of schedulability.

  author = {Kalibera, Tomas and Pizlo, Filip and Hosking, Antony L. and Vitek, Jan},
  title = {Scheduling Hard Real-Time Garbage Collection},
  booktitle = {IEEE Real-Time Systems Symposium},
  series = {RTSS},
  year = {2009},
  pages = {81--92},
  month = {December},
  address = {Washington, DC},
  doi = {10.1109/RTSS.2009.40},
  gscholar = {19}