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

Comments

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)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 08 Mar 2025

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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media