Scheduling Real-Time Garbage Collection on Uniprocessors

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 article comprehensively compares leading approaches to hard real-time garbage collection. There are many design decisions involved in selecting a real-time garbage collection algorithm. For time-based garbage collectors on uniprocessors one must choose whether to use periodic, slack-based or hybrid scheduling. A significant impediment to valid experimental comparison of such choices is that commercial implementations use completely different proprietary infrastructures. 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 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 Real-Time Garbage Collection on Uniprocessors},
  journal = {ACM Transactions on Computer Systems},
  year = {2011},
  volume = {29},
  number = {3},
  pages = {8:1--29},
  month = {August},
  doi = {10.1145/2003690.2003692},
  acm = {},
  gscholar = {9}