Garbage Collector Memory Accounting in Language-Based Systems

Authors
David Price
Algis Rudys
Dan S. Wallach

Abstract
Language run-time systems are often called upon to safely execute mutually distrustful tasks within the same runtime, protecting them from other tasks' bugs or otherwise hostile behavior. Well-studied access controls exist in systems such as Java to prevent unauthorized reading or writing of data, but techniques to measure and control resource usage are less prevalent. In particular, most language run-time systems include no facility for accounting for heap memory usage on a per-task basis. In addition, because tasks may very well share references to the same objects, traditional approaches that charge memory to its allocator fail to properly account for this sharing. We present a method for modifying the garbage collector, already present in most modern language run-time systems, to measure the amount of live memory reachable from each task as it performs its regular duties. Our system naturally distinguishes memory shared across tasks from memory reachable from only a single task without requiring incompatible changes to the semantics of the programming language. Our prototype implementation imposes negligible performance overheads on a variety of benchmarks, yet provides enough information for the expression of rich policies to express the limits on a task's memory usage.

Published
Technical Report TR02-407, Department of Computer Science, Rice University

Download
Postscript
Adobe PDF

BibTEX Entry
@TechReport{price2002gcmem:tr,
      author = "David Price and Algis Rudys and Dan S. Wallach",
      title = "Garbage Collector Memory Accounting in Language-Based Systems",
      institution = "Department of Computer Science, Rice University",
      year = "2002",
      month = nov,
      number = "TR02-407",
      address = "Houston, TX"
}

Additional Notes
The Multitasking garbage collector microbenchmark we used in this paper is available at http://www.cs.rice.edu/~arudys/software/tree-bench.tar.gz.

arudys@rice.edu, Department of Computer Science, Rice University
Last modified: Thu Feb 27 17:01:02 CST 2003