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

skip to main content
research-article

A real-time Java virtual machine with applications in avionics

Published: 12 December 2007 Publication History

Abstract

This paper reports on our experience with the implementation of the Real-time Specification for Java on the Ovm open source Java virtual machine. We describe the architecture and main design decisions involved in implementing real-time Java on Ovm. We present the first use of Real-time Java in avionics in the context of control software for a ScanEagle Unmanned Aerial Vehicle.

References

[1]
AICAS. 2005. The Jamaica Virtual Machine homepage, http://www.aicas.com.
[2]
Bacon, D., Konuru, R., Murthy, C., and Serrano, M. 1998. Thin locks: Featherweight synchronization for Java. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 258--268.
[3]
Bacon, D. F., Cheng, P., and Rajan, V. 2003. The metronome: A simpler approach to garbage collection in real-time systems. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 466--478.
[4]
Beebee, W. S. Jr., and Rinard, M. 2001. An implementation of scoped memory for Real-Time Java. In Embedded Software Implementation Tools for Fully Programmable Application Specific Systems (EMSOFT). 289--305.
[5]
Benowitz, E. and Niessner, A. 2003a. Experiences in adopting Real-Time Java for flight-like software. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 490--496.
[6]
Benowitz, E. G. and Niessner, A. 2003b. A patterns catalog for RTSJ software designs. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 497--507.
[7]
Blackburn, S. M., Cheng, P., and McKinley, K. S. 2004. Oil and water? high performance garbage collection in Java with MMTk. In 26th International Conference on Software Engineering (ICSE'04). 137--146.
[8]
Bollella, G. and Reinholtz, K. 2002. Scoped memory. In Proceedings of the Fifth International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC02).
[9]
Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., and Turnbull, M. 2000. The Real-Time Specification for Java. Addison-Wesley, Reading, MA.
[10]
Bollella, G., Loh, K., McKendry, G., and Wozenilek, T. 2003. Experiences and benchmarking with JTime. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 534--549.
[11]
Borg, A. and Wellings, A. J. 2003. Reference objects for RTSJ memory areas. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 397--410.
[12]
Borger, M. and Rajkumar, R. 1989. Implementing priority inheritance algorithms in an Ada runtime system. Tech. Rep. CMU/SEI-89-TR-15, Software Engineering Institute, Carnegie Mellon University (April).
[13]
Brosgol, B., Robbins, S., and Hassan II, R. 2002. Asynchronous transfer of control in the Real-Time Specification for Java. In International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC). 101--108.
[14]
Buytaert, D., Arickx, F., and Vos, J. 2002. A profiler and compiler for the Wonka Virtual Machine. In USENIX JVM'02 Work in Progress, San Francisco, CA. USENIX, Berkeley, CA.
[15]
Child, J. 2003. Java proving itself worthy for defense apps. COTS Journal.
[16]
Child, J. 2004. Real-time flavor completes the military Java puzzle. COTS Journal.
[17]
Corsaro, A. and Cytron, R. 2003. Efficient memory-reference checks for real-time Java. In Proceedings of Languages, Compilers, and Tools for Embedded Systems (LCTES'03).
[18]
Corsaro, A. and Schmidt, D. 2002a. The design and performace of the jRate Real-Time Java implementation. In The 4th International Symposium on Distributed Objects and Applications (DOA'02).
[19]
Corsaro, A. and Schmidt, D. 2002b. Evaluating Real-Time Java features and performance for real-time embedded systems. In The 8th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).
[20]
Dvorak, D., Bollella, G., Canham, T., Carson, V., Champlin, V., Giovannoni, B., Indictor, M., Meyer, K., Murray, A., and Reinholtz, K. 2004. Project Golden Gate: Towards Real-Time Java in Space Missions. In Proceedings of the 7th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2004), 12--14 May 2004, Vienna, Austria. IEEE Computer Society Press, Los Alamitos, CA. 15--22.
[21]
Flack, C., Hosking, T., and Vitek, J. 2003. Idioms in Ovm. Tech. Rep. CSD-TR-03-017, Purdue University Department of Computer Sciences.
[22]
Fox, J. M. and Welc, A. 2003. Implementation of Real-Time Java scope access checks for JikesRVM. Tech. report, Purdue (May).
[23]
FSF. 2005. Free Software Foundation Inc, GNU Classpath, www.gnu.org/software/classpath.
[24]
Gleim, U. 2002. JaRTS: A portable implementation of real-time core extensions for Java. In Proceedings of the Java Virtual Machine Research and Technology Symposium (JVM '02): August 1--2, 2002, San Francisco, California, US. USENIX, Berkeley, CA.
[25]
Goodenough, J. B. and Sha, L. 1988. The priority ceiling protocol: A method for minimizing the blocking of high-priority Ada tasks. ACM SIGADA Ada Letters 8, 7 (Fall). 20--31.
[26]
Higuera-Toledano, T. and Issarny, V. 2002. Analyzing the performance of memory management in RTSJ. In Proceedings of the Fifth International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'02).
[27]
Higuera-Toledano, M. T., Issarny, V., Banâtre, M., Cabillic, G., Lesot, J.-P., and Parain, F. 2001. Region-based memory management for Real-time Java. In 4th International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2001). 387--394.
[28]
Kwon, J., Andy J. Wellings, and King, S. 2005. Ravenscar-Java: a high-integrity profile for real-time Java. Concurrency - Practice and Experience 17, 5--6, 681--713.
[29]
Kwon, J. and Wellings, A. 2004. Memory management based on method invocation in RTSJ. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 333--345.
[30]
Locke, D., Sha, L., Rajkumar, R., Lehoczky, J., and Burns, G. 1988. Priority inversion and its control: An experimental investigation. ACM SIGADA Ada Letters 8, 7 (Fall). 39--42.
[31]
Niessner, A. and Benowitz, E. 2003. RTSJ memory areas and their affects on the performance of a flight-like attitude control system. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), OTM Workshops. 508--519.
[32]
Nilsen, K. 1998. Adding real-time capabilities to Java. Communications of the ACM 41, 6 (June), 49--56.
[33]
Palacz, K. and Vitek, J. 2003. Java subtype tests in real-time. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP 2003). Lecture Notes in Computer Science, vol. 2743. Springer, Darmstadt, Germany. 378--404.
[34]
Palacz, K., Baker, J., Flack, C., Grothoff, C., Yamauchi, H., and Vitek, J. 2005. Engineering a common intermediate representation for the Ovm framework. The Science of Computer Programming 57, 3 (Sept.). 357--378.
[35]
Pizlo, F., Fox, J., Holmes, D., and Vitek, J. 2004. Real-time java scoped memory: design patterns and semantics. In Proceedings of the IEEE International Symposium on Object-oriented Real-Time Distributed Computing (ISORC'04). Vienna, Austria.
[36]
Purdue University - S3 Lab. 2005. The Ovm Virtual Machine homepage, http://www.ovmj.org/.
[37]
Roll, W. 2003. Towards model-based and ccm-based applications for real-time systems. In Proceedings of the 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2003), 14--16 May 2003, Hakodate, Hokkaido, Japan. IEEE Computer Society Press, Los Alamitos, CA. 75--82.
[38]
Schmidt, W. J. and Nilsen, K. D. 1994. Performance of a hardware-assisted real-time garbage collector. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems. San Jose, CA. 76--85.
[39]
Sha, L., Rajkumar, R., and Lehoczky, J. P. 1990. Priority inheritance protocols: An approach to real-time synchronization. IEEE Trans. Comput. 39, 9 (Sept.), 1175--1185.
[40]
Sharp, D. C. 2001. Real-time distributed object computing: Ready for mission-critical embedded system applications. In Proceeding of the 3rd International Symposium on Distributed Objects and Applications, DOA 2001, 17-20 September 2001, Rome, Italy. IEEE Computer Society Press, Los Alamitos, CA. 3--4.
[41]
Sharp, D. C., Pla, E., Luecke, K. R., and II, R. J. H. 2003. Evaluating Real-Time Java for mission-critical large-scale embedded systems. In Proceedings of the 9th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2003), May 27--30, 2003, Toronto, Canada. IEEE Computer Society Press, Los Alamitos, CA. 30--36.
[42]
Siebert, F. 1999. Hard real-time garbage collection in the Jamaica Virtual Machine. In Proceedings of the 6th International Workshop on Real-Time Computing and Applications Symposium (RTCSA '99), 13--16 December 1999, Hong Kong, China. IEEE Computer Society Press, Los Alamitos, CA.
[43]
Timesys Inc. 2003. The jTime Virtual Machine, http://www.timesys.com/.
[44]
Tryggvesson, J., Mattsson, T., and Heeb, H. 1999. Jbed: Java for real-time systems. Dr. Dobb's Journal of Software Tools 24, 11 (Nov.), 78, 80, 82--84, 86.
[45]
Wellings, A. and Puschner, P. 2003. Evaluating the expressive power of the Real-Time Specification for Java. Real-Time Systems 24, 3, 319--359.
[46]
Zhao, T., Palsberg, J., and Vitek, J. 2003. Lightweight confinement for featherweight java. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA). ACM Press, New York. 135--148.

Cited By

View all
  • (2024)Trade Study of Scripting Languages for Avionics Systems2024 AIAA DATC/IEEE 43rd Digital Avionics Systems Conference (DASC)10.1109/DASC62030.2024.10748678(01-09)Online publication date: 29-Sep-2024
  • (2023)Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native ImageProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622980(129-142)Online publication date: 19-Oct-2023
  • (2023)WebAssembly in Avionics : Decoupling Software from Hardware2023 IEEE/AIAA 42nd Digital Avionics Systems Conference (DASC)10.1109/DASC58513.2023.10311207(1-10)Online publication date: 1-Oct-2023
  • Show More Cited By

Recommendations

Reviews

Wolfgang Schreiner

The virtues of the Java language for writing reliable and portable code have also raised the desire to use it for the programming of embedded systems with real-time constraints. Such applications are supported by the Real-Time Specification for Java (RTSJ), for which various (mostly commercial) implementations have been developed. This paper discloses an implementation of RTSJ on top of the open-source Java Virtual Machine Ovm, which was created at Purdue University in order to run the control software PRiSMj of the unmanned aerial vehicle ScanEagle, developed by Boeing. The resulting software passed Boeing's qualification tests and was successfully applied in test flights; it received the Java 2005 Duke's Choice award. The authors give very interesting, clear, and detailed insight into the architecture of Ovm, the basic development strategy (based on the ahead-of-time translation of Java programs to C++ code and the management of threads in user space), as well as the challenges that had to be met with respect to thread scheduling, memory management, synchronization, and input/output (I/O). The most complex issue was the implementation of the RTSJ memory model, which involves "scoped areas" to overcome the unpredictability of garbage collection of the standard heap. Performance benchmarks demonstrate the efficiency of the system; finally, its deployment in ScanEagle and the lessons learned from the project are described. The paper is wholeheartedly recommended to anyone interested in learning about the current state of the art in Java technology for developing real-time software for large-scale embedded systems. Online Computing Reviews Service

Michael Zastre

A hoary falsehood about Java is that it is unsuitable for hard real-time applications, due to the need for garbage collection (GC). The Real-Time Specification for Java (RTSJ) that is now eight years old should have put this to rest, yet the falsehood still circulates in many circles. For this reason, the paper should be required reading for anyone who is interested in or involved in teaching real-time systems, especially to those interested in understanding RTSJ and what an implementation really looks like. This paper actually comprises two papers, one sandwiching the other. The outer portion consists of Sections 1, 2, 5, 6, and 7. It describes details of what appears to be the first use of an RTSJ implementation in an avionics application?the Boeing ScanEagle unmanned aerial vehicle. This accomplishment is very real and not just the result of simulated workloads; that is, it controlled an unmanned aerial vehicle in a capstone demonstration at White Sands in December 2004. The inner portion consists of a very large Section 3 and a smaller Section 4. Section 3 starts with a description of the out-of-order execution parallel virtual machine (OVM), an open-source framework for experimenting with Java VM implementations. Components needed for an RTSJ implementation were written for this framework and the design decisions, along with implications of those decisions, are described throughout. Subsections 3.6 to 3.9 are particularly valuable for those interested in what synchronization and memory management (where GC and non-GC memory areas are coresident) look like in real-time Java. Section 4 provides performance data on throughput, scheduling latency, and avionics benchmarks. There is much else of interest in the paper: the use of Java to implement a Java Virtual Machine, hardware for the ground and capstone tests, and the implementation of POSIX asynchronous input/output (I/O). It makes for a rewarding read. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 7, Issue 1
December 2007
234 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/1324969
Issue’s Table of Contents
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Journal Family

Publication History

Published: 12 December 2007
Accepted: 01 July 2007
Revised: 01 April 2006
Received: 01 February 2006
Published in TECS Volume 7, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Avionics
  2. Real-time Java
  3. memory management
  4. virtual machines

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Trade Study of Scripting Languages for Avionics Systems2024 AIAA DATC/IEEE 43rd Digital Avionics Systems Conference (DASC)10.1109/DASC62030.2024.10748678(01-09)Online publication date: 29-Sep-2024
  • (2023)Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native ImageProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622980(129-142)Online publication date: 19-Oct-2023
  • (2023)WebAssembly in Avionics : Decoupling Software from Hardware2023 IEEE/AIAA 42nd Digital Avionics Systems Conference (DASC)10.1109/DASC58513.2023.10311207(1-10)Online publication date: 1-Oct-2023
  • (2022)Information Aggregation for Constrained Online ControlACM SIGMETRICS Performance Evaluation Review10.1145/3543516.346173749:1(7-8)Online publication date: 7-Jun-2022
  • (2022)Nudge: Stochastically Improving upon FCFSACM SIGMETRICS Performance Evaluation Review10.1145/3543516.346010249:1(11-12)Online publication date: 7-Jun-2022
  • (2022)Online Virtual Machine Allocation with Lifetime and Load PredictionsACM SIGMETRICS Performance Evaluation Review10.1145/3543516.345627849:1(9-10)Online publication date: 7-Jun-2022
  • (2022)Zero Queueing for Multi-Server JobsACM SIGMETRICS Performance Evaluation Review10.1145/3543516.345392449:1(13-14)Online publication date: 7-Jun-2022
  • (2022)Federated Bandit: A Gossiping ApproachACM SIGMETRICS Performance Evaluation Review10.1145/3543516.345391949:1(3-4)Online publication date: 7-Jun-2022
  • (2021)JCopter: Reliable UAV Software Through Managed Languages2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)10.1109/IROS51168.2021.9636617(4282-4289)Online publication date: 27-Sep-2021
  • (2020)Development Automation of Real-Time JavaACM Transactions on Embedded Computing Systems10.1145/339189719:5(1-26)Online publication date: 26-Sep-2020
  • Show More Cited By

View Options

Login options

Full Access

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