Affiliation:
1. Carnegie Mellon University
2. IBM Research
Abstract
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
μ
ss of their deadline, compared to 99.999% of the executions of the equivalent program written in C.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Block-free concurrent GC: stack scanning and copying;ACM SIGPLAN Notices;2018-07-19
2. Concurrent compaction using a field pinning protocol;Proceedings of the 2015 International Symposium on Memory Management;2015-06-14
3. Tailor-made JVMs for statically configured embedded systems;Concurrency and Computation: Practice and Experience;2011-05-12
4. Reflexes;ACM Transactions on Embedded Computing Systems;2010-08
5. Simplifying the Dualized Threading Model of RTSJ;2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC);2008-05