skip to main content
10.1145/1133981.1134015acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Eventrons: a safe programming construct for high-frequency hard real-time applications

Published:11 June 2006Publication History

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

  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.Google ScholarGoogle ScholarCross RefCross Ref
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. BOBROW, D. G., AND MURPHY, D. L. Structure of a LISP system using two-level storage. Commun. ACM 10, 3 (1967), 155--159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. BOLLELLA, G., ET AL. The Real-Time Specification for Java. The Java Series. Addison-Wesley, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. CHENEY, C. J. A nonrecursive list compacting algorithm. Commun. ACM 13, 11 (1970), 677--678. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. FINK, S., DOLBY, J., AND COLBY, L. Semi-automatic J2EE transaction configuration. Tech. Rep. RC23326, IBM Thomas J. Watson Research Center, Apr. 2004.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. GROVE, D., AND CHAMBERS, C. A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst. 23, 6 (Nov. 2001), 685--746. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. The Haskell 98 foreign function interface. www.cse.unsw.edu.au/-chak/haskell/ffi/.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  18. LIANG, S. The Java Native Interface: Programmer's Guide and Specification. Addison Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. MILLER, J. S., AND RAGSDALE, S. The Common Language Infrastructure Annotated Standard. Addison Wesley, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Eventrons: a safe programming construct for high-frequency hard real-time applications

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2006
              438 pages
              ISBN:1595933204
              DOI:10.1145/1133981
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 41, Issue 6
                Proceedings of the 2006 PLDI Conference
                June 2006
                426 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1133255
                Issue’s Table of Contents

              Copyright © 2006 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 11 June 2006

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!