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.
- 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.Google Scholar
Cross Ref
- BACON, D. F., CHENG, P., AND RAJAN, V. T. A real-time garbage collector with low overhead and consistent utilization. In Proceedings of the 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (New Orleans, Louisiana, Jan. 2003). SIGPLAN Notices, 38, 1, 285--298. Google Scholar
Digital Library
- BOBROW, D. G., AND MURPHY, D. L. Structure of a LISP system using two-level storage. Commun. ACM 10, 3 (1967), 155--159. Google Scholar
Digital Library
- BOLLELLA, G., ET AL. The Real-Time Specification for Java. The Java Series. Addison-Wesley, 2000. Google Scholar
Digital Library
- BOLLELLA, G., ET AL. Programming with non-heap memory in the real time specification for Java. In Companion Papers the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (New York, NY, USA, 2003), pp. 361--369. Google Scholar
Digital Library
- BOYAPATI, C., SALCIANU, A., BEEBEE, JR., W., AND RINARD, M. Ownership types for safe region-based memory management in real-time Java. In Proc. of the ACM SIGPLAN Conference on Programming Language Design and Implementation (San Diego, California, 2003), pp. 324--337. Google Scholar
Digital Library
- CHENEY, C. J. A nonrecursive list compacting algorithm. Commun. ACM 13, 11 (1970), 677--678. Google Scholar
Digital Library
- CORSARO, A., AND CYTRON, R. K. Efficient memory-reference checks for real-time Java. In Proceedings of the 2003 ACM SIGPLAN conference on Languages, compilers, and Tools for Embedded Systems (New York, NY, USA, 2003), pp. 51--58. Google Scholar
Digital Library
- CORSARO, A., AND SCHMIDT, D. C. Evaluating real-time Java features and performance for real-time embedded systems. In Proceedings of the Eight IEEE Real-Time and Embedded Technology and Applications Symposium (2002). Google Scholar
Digital Library
- DETERS, M., AND CYTRON, R. K. Automated discovery of scoped memory regions for real-time Java. In Proc. of the Third International Symposium on Memory Management (Berlin, Germany, June 2002). SIGPLAN Notices, 38, 2 Supplement, 25--35. Google Scholar
Digital Library
- FINK, S., DOLBY, J., AND COLBY, L. Semi-automatic J2EE transaction configuration. Tech. Rep. RC23326, IBM Thomas J. Watson Research Center, Apr. 2004.Google Scholar
- GROSSMAN, D., MORRISETT, G., JIM, T., HICKS, M., WANG, Y., AND CHENEY, J. Region-based memory management in Cyclone. SIGPLAN Notices 37, 5 (May 2002), 282--293. In Conference on Programming Language Design and Implementation (PLDI). Google Scholar
Digital Library
- GROVE, D., AND CHAMBERS, C. A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst. 23, 6 (Nov. 2001), 685--746. Google Scholar
Digital Library
- The Haskell 98 foreign function interface. www.cse.unsw.edu.au/-chak/haskell/ffi/.Google Scholar
- HIGUERA-TOLEDANO, M. T., AND ISSARNY, V. Analyzing the performance of memory management in RTSJ. In Proceedings of the 5th IEEE International Symposium on Object-oriented Real-time distributed Computing (2002). Google Scholar
Digital Library
- 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.Google Scholar
- 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.Google Scholar
- LIANG, S. The Java Native Interface: Programmer's Guide and Specification. Addison Wesley, 1999. Google Scholar
Digital Library
- MILLER, J. S., AND RAGSDALE, S. The Common Language Infrastructure Annotated Standard. Addison Wesley, 2004. Google Scholar
Digital Library
- 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).Google Scholar
Cross Ref
- 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. Google Scholar
Digital Library
- TOFTE, M., AND TALPIN, J.-P. Implementation of the typed call-byvalue ?-calculus using a stack of regions. In Proc. of the Twenty-first ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Portland, Oregon, 1994), pp. 188--201. Google Scholar
Digital Library
- UNGAR, D. M. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (Pittsburgh, Pennsylvania, 1984), P. Henderson, Ed. SIGPLAN Notices, 19, 5, 157--167. Google Scholar
Digital Library
- ZHAO, T., NOBLE, J., AND VITEK, J. Scoped types for real-time Java. In Proc. of the Twenty-fifth IEEE International Real-Time Systems Symposium (2004), pp. 241--251. Google Scholar
Digital Library
Index Terms
Eventrons: a safe programming construct for high-frequency hard real-time applications
Recommendations
Eventrons: a safe programming construct for high-frequency hard real-time applications
Proceedings of the 2006 PLDI ConferenceWhile 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 ...
Syncopation: generational real-time garbage collection in the metronome
Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsReal-time garbage collection has been shown to be feasible, but for programs with high allocation rates, the utilization achievable is not sufficient for some systems.Since a high allocation rate is often correlated with a more high-level, abstract ...
Syncopation: generational real-time garbage collection in the metronome
LCTES '05: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsReal-time garbage collection has been shown to be feasible, but for programs with high allocation rates, the utilization achievable is not sufficient for some systems.Since a high allocation rate is often correlated with a more high-level, abstract ...







Comments