Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A real-time Java virtual machine with applications in avionics
Armbruster A., Baker J., Cunei A., Flack C., Holmes D., Pizlo F., Pla E., Prochazka M., Vitek J. ACM Transactions on Embedded Computing Systems7 (1):1-49,2007.Type:Article
Date Reviewed: Aug 8 2008

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.

Reviewer:  Michael Zastre Review #: CR135929 (0906-0567)
Bookmark and Share
 
Interpreters (D.3.4 ... )
 
 
Classes And Objects (D.3.3 ... )
 
 
Real-Time Systems And Embedded Systems (D.4.7 ... )
 
 
Run-Time Environments (D.3.4 ... )
 
 
Language Constructs and Features (D.3.3 )
 
 
Processors (D.3.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Interpreters": Date
The APL IL Interpreter Generator
Alfonseca M., Selby D., Wilks R. IBM Systems Journal 30(4): 490-497, 1991. Type: Article
Dec 1 1993
Optimizing static scope LISP by repetitive interpretation of recursive functions calls
Felgentreu K., Lippe W., Simon F. IEEE Transactions on Software Engineering SE-13(6): 628-635, 1987. Type: Article
Mar 1 1988
Implementation of an interpreter for abstract equations
Hoffmann C., O’Donnell M., Strandh R. Software--Practice & Experience 15(12): 1185-1204, 1985. Type: Article
Jul 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy