Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1289927.1289967acmconferencesArticle/Chapter ViewAbstractPublication PagesesweekConference Proceedingsconference-collections
Article

Design and implementation of a comprehensive real-time java virtual machine

Published: 30 September 2007 Publication History

Abstract

The emergence of standards for programming real-time systems in Java has encouraged many developers to consider its use for systems previously only built using C, Ada, or assembly language. However, the RTSJ standard in isolation leaves many important problems unaddressed, and suffers from some serious problems in usability and safety.
As a result, the use of Java for real-time programming has continued to be viewed as risky and adoption has been slow.
In this paper we provide a description of IBM's new real-time Java virtual machine product, which combines Metronome real-time garbage collection, ahead-of-time compilation, and a complete implementation of the RTSJ standard, running on top of a custom real-time multiprocessor Linux kernel.
We will describe the implementation of each of these components, including how they interacted both positively and negatively, and the extensions to previous work required to move it from research prototype to a system implementing the complete semantics of the Java language. The system has been adopted for hard real-time development of naval weapons systems and soft real-time telecommunications servers. We present measurements showing that the system is able to provide sub-millisecond worst-case garbage collection latencies, 50 microsecond Linux scheduling accuracy, and eliminate non-determinism due to JIT compilation.

References

[1]
Alpern, B., et al. The Jalapeño virtual machine. IBM Syst J. 39, 1 (Feb. 2000), 211--238.
[2]
Andreae, C., Coady, Y., Gibbs, C., Noble, J., Vitek, J., and Zhao, T. Scoped Types and Aspects for Real-Time Java. In Proc. European Conference on Object-Oriented Programming (Nantes, France, July 2006), Springer-Verlag, pp. 124--147.
[3]
Appel, A. W., Ellis, J. R., and Li, K. Real-time concurrent collection on stock multiprocessors. In Proc. Conference on Programming Language Design and Implementation (Atlanta, Georgia, June 1988). SIGPLAN Notices, 23, 7 (July), 11--20.
[4]
Armbuster, A., et al. A Real-time Java virtual machine with applications in avionics. ACM Transactions in Embedded Computing Systems (2006).
[5]
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.
[6]
Baker, H. G. List processing in real-time on a serial computer. Commun. ACM 21, 4 (Apr. 1978), 280--294.
[7]
BEA. BEA WebLogic real time: Predictable mission-critical performance for java - today. Technical white paper available at http://www.bea.com, Jan. 2006.
[8]
Beebee, W. S., and Rinard, M. C. An implementation of scoped memory for real-time Java. In EMSOFT '01: Proceedings of the First International Workshop on Embedded Software (2001), pp. 289--305.
[9]
Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., Hardin, D., and Turnbull, M. The Real-Time Specification for Java. The Java Series. Addison-Wesley, 2000.
[10]
Boyapati, C., Salcianu, A., William Beebee, J., and Rinard, M. Ownership types for safe region-based memory management in real-time java. In Proc. Conf. on Programming Language Design and Implementation (2003), pp. 324--337.
[11]
Cheng, P. Scalable Real-Time Parallel Garbage Collection for Symmetric Multiprocessors. PhD thesis, Carnegie-Mellon Univ., Sept. 2001.
[12]
Cheng, P., and Blelloch, G. A parallel, real-time garbage collector. In Proc. SIGPLAN Conference on Programming Language Design and Implementation (Snowbird, Utah, June 2001). SIGPLAN Notices, 36, 5 (May), 125--136.
[13]
Cheng, P., Harper, R., and Lee, P. Generational stack collection and profile-driven pretenuring. In Proc. Conference on Programming Language Design and Implementation (June 1998). SIGPLAN Notices, 33, 6, 162--173.
[14]
Click, C., Tene, G., and Wolf, M. The pauseless gc algorithm. In VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments (2005), pp. 46--56.
[15]
Dean, J., DeFouw, G., Grove, D., Livinov, V., and Chambers, C. Vortex: an optimizing compiler for object-oriented languages. ACM SIGPLAN Notices 31, 10 (Oct. 1996), 83--100.
[16]
Deters, M., and Cytron, R. K. Automated discovery of scoped memory regions for real-time Java. In Proc. Third International Symposium on Memory Management (Berlin, Germany, June 2002). SIGPLAN Notices, 38, 2 Supplement, 25--35.
[17]
Doligez, D., and Gonthier, G. Portable, unobtrusive garbage collection for multiprocessor systems. In Conf. Record of the Twenty-First ACM Symposium on Principles of Programming Languages (Jan. 1994), pp. 70--83.
[18]
Fitzgerald, R., Knoblock, T. B., Ruf, E., Steensgaard, B., and Tarditi, D. Marmot: An optimizing compiler for Java. Tech. Rep. MSR-TR-99-33, Microsoft Research, June 1999.
[19]
Fulton, M., and Stoodley, M. Compilation techniques for real-time Java programs. In Proc. International Symposium on Code Generation and Optimization (2007).
[20]
The GNU Compiler for the Java Programming Language. http://gcc.gnu.org/java.
[21]
Gleixner, T., and Niehaus, D. HRTimers and beyond: Transforming the Linux time subsystems. In Proc. Linux Symposium (Ottawa, Ontario, June 2006).
[22]
Henriksson, R. Scheduling Garbage Collection in Embedded Systems. PhD thesis, Lund Institute of Technology, July 1998.
[23]
IBM Linux Technology Center. Real-time linux patches. ftp://linuxpatch.ncsa.uiuc.edu/rt-linux/rhel4u2/R1/rtlinux-src-2006-08-30-r541.tar.bz2.
[24]
Mann, T., Deters, M., LeGrand, R., and Cytron, R. K. Static determination of allocation rates to support real-time garbage collection. In Proc. ACM Conference on Languages, Compilers, and Tools for Embedded Systems (2005), pp. 193--202.
[25]
Nettles, S., and O'Toole, J. Real-time garbage collection. In Proc. SIGPLAN Conference on Programming Language Design and Implementation (June 1993). SIGPLAN Notices, 28, 6, 217--226.
[26]
Pizlo, F., and Vitek, J. An emprical evaluation of memory management alternatives for real-time Java. In Proc. 27th IEEE International Real-Time Systems Symposium (2006), pp. 35--46.
[27]
Serrano, M., Bordawekar, R., Midkiff, S., and Gupta, M. Quicksilver: a quasi-static compiler for Java. ACM SIGPLAN Notices 35, 10 (Oct. 2000), 66--82. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).
[28]
Siebert, F. Eliminating external fragmentation in a non-moving garbage collector for Java. In International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (San Jose, California, Nov. 2000), pp. 9--17.
[29]
Spoonhower, D., Auerbach, J., Bacon, D. F., Cheng, P., and Grove, D. Eventrons: a safe programming construct for high-frequency hard real-time applications. In Proceedings of the ACM SIGPLAN conference on Programming Language Design and Implementation (Ottawa, Ontario, Canada, 2006), pp. 283--294.
[30]
Spring, J. H., Pizlo, F., Guerraoui, R., and Vitek, J. Programming abstractions for highly responsive systems. In Third International ACM SIGPLAN/SIGOPS Conference on Virtual Execution Environments (San Diego, California, 2007).
[31]
Stoodley, M., Ma, K., and Lut, M. Real-time Java, part 2: Comparing compilation techniques (2007). http://www.ibm.com/developerworks/java/library/j-rtj2/index.html.
[32]
Stultz, J., Hart, D., and Aravamudan, N. We are not getting any younger: A new approach to time and timers. In Proc. Linux Symposium (Ottawa, Ontario, June 2005).
[33]
Yuasa, T. Real-time garbage collection on general-purpose machines. J. Systems and Software 11, 3 (Mar. 1990), 181--198.

Cited By

View all
  • (2018)Unified LTL Verification and Embedded Execution of UML ModelsProceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems10.1145/3239372.3239395(112-122)Online publication date: 14-Oct-2018
  • (2018)Eliminating object reference checks by escape analysis on real-time Java virtual machineCluster Computing10.1007/s10586-018-2145-8Online publication date: 27-Feb-2018
  • (2018)A survey of real‐time capabilities in functional languages and compilersConcurrency and Computation: Practice and Experience10.1002/cpe.490231:4Online publication date: 23-Oct-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
EMSOFT '07: Proceedings of the 7th ACM & IEEE international conference on Embedded software
September 2007
304 pages
ISBN:9781595938251
DOI:10.1145/1289927
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 September 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. AOT
  2. JIT
  3. JVM
  4. garbage collection
  5. java
  6. real time

Qualifiers

  • Article

Conference

ESWEEK07
ESWEEK07: Third Embedded Systems Week
September 30 - October 3, 2007
Salzburg, Austria

Acceptance Rates

Overall Acceptance Rate 60 of 203 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Unified LTL Verification and Embedded Execution of UML ModelsProceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems10.1145/3239372.3239395(112-122)Online publication date: 14-Oct-2018
  • (2018)Eliminating object reference checks by escape analysis on real-time Java virtual machineCluster Computing10.1007/s10586-018-2145-8Online publication date: 27-Feb-2018
  • (2018)A survey of real‐time capabilities in functional languages and compilersConcurrency and Computation: Practice and Experience10.1002/cpe.490231:4Online publication date: 23-Oct-2018
  • (2016)Real-time capabilities in functional languages2016 1st CPSWeek Workshop on Declarative Cyber-Physical Systems (DCPS)10.1109/DCPS.2016.7588296(1-10)Online publication date: 12-Apr-2016
  • (2015)Optimizing object reference checks on real-time Java virtual machine2015 6th IEEE International Conference on Software Engineering and Service Science (ICSESS)10.1109/ICSESS.2015.7339009(77-80)Online publication date: Sep-2015
  • (2014)Reference object processing in on-the-fly garbage collectionACM SIGPLAN Notices10.1145/2775049.260299149:11(59-69)Online publication date: 12-Jun-2014
  • (2014)Team upProceedings of the 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems10.1145/2656106.2656129(1-10)Online publication date: 12-Oct-2014
  • (2014)Reference object processing in on-the-fly garbage collectionProceedings of the 2014 international symposium on Memory management10.1145/2602988.2602991(59-69)Online publication date: 12-Jun-2014
  • (2014)Reusable Libraries for Safety-Critical JavaProceedings of the 2014 IEEE 17th International Symposium on Object/Component-Oriented Real-Time Distributed Computing10.1109/ISORC.2014.27(188-197)Online publication date: 10-Jun-2014
  • (2013)Exploiting slicing and patterns for RTSJ immortal memory optimizationProceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2500828.2500845(159-164)Online publication date: 11-Sep-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media