Dynamic selection of application-specific garbage collectors
Sunil Soman, Chandra Krintz, et al.
ISMM 2004
While real-time garbage collection has achieved worst-case latencies on the order of a millisecond, this technology is approaching its practical limits. For tasks requiring extremely low latency, and especially periodic tasks with frequencies above 1 KHz, Java programmers must currently resort to the NoHeapRealtimeThread construct of the Real-Time Specification for Java. This technique requires expensive run-time checks, can result in unpredictable low-level exceptions, and inhibits communication with the rest of the garbage-collected application. We present Eventrons, a programming construct that can arbitrarily preempt the garbage collector, yet guarantees safety and allows its data to be visible to the garbage-collected heap. Eventrons are a strict subset of Java, and require no run-time memory access checks. Safety is enforced using a data-sensitive analysis and simple run-time support with extremely low overhead. We have implemented Eventrons in IBM's J9 Java virtual machine, and present experimental results in which we ran Eventrons at frequencies up to 22 KHz (a 45 μs period). Across 10 million periods, 99.997% of the executions ran within 10 μs of their deadline, compared to 99.999% of the executions of the equivalent program written in C. Copyright © 2006 ACM.
Sunil Soman, Chandra Krintz, et al.
ISMM 2004
Bowen Alpern, Joshua Auerbach, et al.
VEe 2005
David F. Bacon, Clement R. Attanasio, et al.
SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
David F. Bacon, Yiling Chen, et al.
OOPSLA 2009