|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
ARNOLD, M., FINK, S. J., GROVE, D., HIND, M., AND SWEENEY, P. F. A survey of adaptive optimization in virtual machines. Proceedings of the IEEE 93, 2 (2005). Special issue on Program Generation, Optimization, and Adaptation.
|
 |
2
|
David F. Bacon , Perry Cheng , V. T. Rajan, A real-time garbage collector with low overhead and consistent utilization, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.285-298, January 15-17, 2003, New Orleans, Louisiana, USA
|
 |
3
|
|
| |
4
|
BOLLELLA, G., ET AL. The Real-Time Specification for Java. The Java Series. Addison-Wesley, 2000.
|
 |
5
|
Greg Bollella , Tim Canham , Vanessa Carson , Virgil Champlin , Daniel Dvorak , Brian Giovannoni , Mark Indictor , Kenny Meyer , Alex Murray , Kirk Reinholtz, Programming with non-heap memory in the real time specification for Java, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
[doi> 10.1145/949344.949443]
|
 |
6
|
Chandrasekhar Boyapati , Alexandru Salcianu , William Beebee, Jr. , Martin Rinard, Ownership types for safe region-based memory management in real-time Java, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
 |
7
|
|
 |
8
|
Angelo Corsaro , Ron K. Cytron, Efficient memory-reference checks for real-time java, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
| |
9
|
|
 |
10
|
|
| |
11
|
FINK, S., DOLBY, J., AND COLBY, L. Semi-automatic J2EE transaction configuration. Tech. Rep. RC23326, IBM Thomas J. Watson Research Center, Apr. 2004.
|
 |
12
|
|
 |
13
|
|
| |
14
|
The Haskell 98 foreign function interface. www.cse.unsw.edu.au/-chak/haskell/ffi/.
|
| |
15
|
|
| |
16
|
HIRZEL, M., DIWAN, A., AND HIND, M. Pointer analysis in the pressence of dynamic class loading. In 18th European Conference on Object-Oriented Programming (ECOOP) (June 2004), vol. 3086 of LNCS, pp. 96--122.
|
| |
17
|
High-Res Timer Kernel Patches. i386-hrt-2.6.10.patch and hrt-common-2.6.10.patch at http://easynews.dl.sourceforge.net/-sourceforge/high-res-timers.
|
| |
18
|
|
| |
19
|
|
| |
20
|
PIZLO, F., FOX, J. M., HOLMES, D., AND VITEK, J. Real-time Java scoped memory: Design patterns and semantics. In Proceedings of the 7th IEEE International Symposium on Object-oriented Real-time distributed Computing (May 2004).
|
| |
21
|
QIAN, F., AND HENDREN, L. Towards dynamic interprocedural analysis in JVMs. In 3rd Virtual Machine Research and Technology Symposium (VM) (May 2004), pp. 139--150.
|
 |
22
|
|
 |
23
|
|
| |
24
|
|
CITED BY 14
|
|
|
|
|
|
|
|
Jesper Honig Spring , Filip Pizlo , Rachid Guerraoui , Jan Vitek, Reflexes: abstractions for highly responsive systems, Proceedings of the 3rd international conference on Virtual execution environments, June 13-15, 2007, San Diego, California, USA
|
|
|
Glenn Ammons , Jonathan Appavoo , Maria Butrico , Dilma Da Silva , David Grove , Kiyokuni Kawachiya , Orran Krieger , Bryan Rosenburg , Eric Van Hensbergen , Robert W. Wisniewski, Libra: a library operating system for a jvm in a virtualized execution environment, Proceedings of the 3rd international conference on Virtual execution environments, June 13-15, 2007, San Diego, California, USA
|
|
|
|
|
|
|
|
|
Joshua Auerbach , David F. Bacon , Daniel T. Iercan , Christoph M. Kirsch , V. T. Rajan , Harald Roeck , Rainer Trummer, Java takes flight: time-portable real-time programming with exotasks, ACM SIGPLAN Notices, v.42 n.7, July 2007
|
|
|
|
|
|
Chris Andreae , Yvonne Coady , Celina Gibbs , James Noble , Jan Vitek , Tian Zhao, Scoped types and aspects for real-time Java memory management, Real-Time Systems, v.37 n.1, p.1-44, October 2007
|
|
|
|
|
|
Sven Gestegård Robertz , Roger Henriksson , Klas Nilsson , Anders Blomdell , Ivan Tarasov, Using real-time Java for industrial robot control, Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems, September 26-28, 2007, Vienna, Austria
|
|
|
Joshua Auerbach , David F. Bacon , Bob Blainey , Perry Cheng , Michael Dawson , Mike Fulton , David Grove , Darren Hart , Mark Stoodley, Design and implementation of a comprehensive real-time java virtual machine, Proceedings of the 7th ACM & IEEE international conference on Embedded software, September 30-October 03, 2007, Salzburg, Austria
|
|
|
Filip Pizlo , Daniel Frampton , Erez Petrank , Bjarne Steensgaard, Stopless: a real-time garbage collector for multiprocessors, Proceedings of the 6th international symposium on Memory management, October 21-22, 2007, Montreal, Quebec, Canada
|
|
|
|
|