Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Tailor-made JVMs for statically configured embedded systems

Published: 01 June 2012 Publication History

Abstract

Java still is a rather exotic language in the field of real-time and particularly embedded systems, eventhough it could provide productivity and especially safety and dependability benefits over the dominating language C. The reasons for the lack of acceptance of Java in the embedded world are the high resource consumption caused by the Java runtime environment and the lacking language features for low-level programming. KESO is a Java Virtual Machine (JVM) that was specifically designed for statically configured resource-constrained embedded systems. Rather than providing a fixed subset of the Java standard functionality, KESO uses the available ahead-of-time knowledge to generate a Java runtime that is specifically tailored towards the particular application. A key feature of KESO is its Multi-JVM architecture, which allows the isolated cohabitation of different applications on one hardware platform. Our evaluation uses two non-trivial real-time applications, a control application for a quadrotor helicopter and a collision detector, to compare the cost of an application using KESO to its C counterpart. Our results show that the resource consumption of applications developed on the base of KESO is comparable to C applications, and its mechanisms for communicating among isolated components are efficient and encourage the actual utilization of spatial isolation. Copyright © 2011 John Wiley & Sons, Ltd.
(This work is based on an earlier work: KESO: an open-source multi-JVM for deeply embedded systems, in JTRES'10 Proceedings of the Eighth International Workshop on Java Technologies for Real-time and Embedded Systems, \TCop ACM, 2010.)

References

[1]
Phipps G. Comparing observed bug and productivity rates for Java and C++. Software: Practice and Experience 1999; 29(4):345–358.
[2]
Quinn E, Christiansen C. Java Pays—Positively. IDC Bulletin W16212, May 1998.
[3]
OSEK/VDX Group. Operating system specification 2.2.3. Technical Report, OSEK/VDX Group, February 2005. Available at: {9 September 2009}.
[4]
AUTOSAR. Specification of operating system (version 2.0.1). Technical Report, Automotive Open System Architecture GbR, June 2006.
[5]
Béchennec JL, Briday M, Faucou S, Trinquet Y. Trampoline: An OpenSource implementation of the OSEK/VDX RTOS specification. IEEE Conference on Emerging Technologies and Factory Automation (ETFA'06). IEEE: New York, 2006; 62–69.
[6]
Stilkerich M, Bauer J. JOSEK—An open source implementation of the OSEK/VDX API, February 2010. Available at: {2 May 2011}.
[7]
Lohmann D, Hofer W, Schröder-Preikschat W, Streicher J, Spinczyk O. CiAO: An aspect-oriented operating-system family for resource-constrained embeddedsystems. 2009 USENIX ATC. USENIX: Berkeley, CA, U.S.A., 2009; 215–228.
[8]
Bollella G, Brosgol B, Gosling J, Dibble P, Furr S, Turnbull M. The Real-Time Specification for Java (1st edn). AW: Reading, MA, 2000.
[9]
OSEK/VDX Group. OSEK implementation language specification 2.5. Technical Report, OSEK/VDX Group 2004. Available at: {9 September 2009}.
[10]
Lindholm T, Yellin F. The Java Virtual Machine Specification. The Java Series (2nd edn). AW: Reading, MA, 1999.
[11]
J2ME building blocks for mobile devices—white paper on KVM and the connected, limited device configuration (CLDC), May 2000. Available at: {2 May 2011}.
[12]
Siebert F. Realtime garbage collection in the jamaicavm 3.0. JTRES '07: Proceedings of the Fifth International Workshop on Java Technologies for Real-time and Embedded Systems. ACM: New York, NY, U.S.A., 2007; 94–103.
[13]
Pizlo F, Ziarek L, Maj P, Hosking AL, Blanton E, Vitek J. Schism: Fragmentation-tolerant real-time garbage collection. PLDI '10: Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM: New York, NY, U.S.A., 2010; 146–159.
[14]
Pizlo F, Frampton D, Petrank E, Steensgaard B. Stopless: A real-time garbage collector for multiprocessors. ISMM '07: Fifth International Symposium on Memory Management. ACM: New York, NY, U.S.A., 2007; 159–172.
[15]
Pizlo F, Petrank E, Steensgaard B. A study of concurrent real-timegarbage collectors. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'08). ACM: New York, NY, U.S.A., 2008; 33–44.
[16]
Bacon DF, Cheng P, Rajan VT. The Metronome: A simpler approach to garbage collection in real-time systems. Proceedings of the OTM Workshops: Workshop on Java Technologies for Real-Time and Embedded Systems (Lecture Notes in Computer Science, vol. 2889), Meersman R, Tari Z (eds.).Springer: Berlin, 2003; 466–478.
[17]
Lohmann D, Streicher J, Hofer W, Spinczyk O, Schröder-Preikschat W. Configurable memory protection by aspects. Fourth Workshop on Programming Languages and Operating Systems (PLOS'07). ACM: New York, NY, U.S.A., 2007; 1–5.
[18]
JSR-302: Safety critical java technology specification (version 0.78). Oracle JCP, October 2010. Available at: {2 May 2011}.
[19]
Dijkstra EW, Lamport L, Martin AJ, Scholten CS, Steffens EFM. On-the-fly garbage collection: An exercise in cooperation. Language Hierarchies and Interfaces, International Summer School. Springer: London, U.K., 1976; 43–56.
[20]
Gagnon EM, Hendren LJ. SableVM: A research framework for the efficient execution of Java bytecode. Java Virtual Machine Research and Technology Symposium (JVM'01), 2001; 27–40.
[21]
Henderson F. Accurate garbage collection in an uncooperative environment. ISMM '07: Fifth International Symposium on Memory Management. ACM: New York, NY, U.S.A., 2002; 150–156.
[22]
Yuasa T. Real-time garbage collection on general-purpose machines. Journal of Systems and Software 1990; 11(3):181–198.
[23]
Java Native Interface Specification 1.1. Sun Microsystems, August 2005.
[24]
Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes CV, Loingtier JM, Irwin J. Aspect-oriented programming. 11th European Conference on OOP (ECOOP'97) (Lecture Notes in Computer Science, vol. 1241), Aksit M, Matsuoka S (eds.). Springer: Berlin, 1997; 220–242.
[25]
Ulbrich P, Kapitza R, Harkort C, Schmid R, Schröder-Preikschat W. I4Copter: An adaptable and modular quadrotor platform. Proceedings of the 26th ACM Symposium on Applied Computing (SAC'11). ACM: New York, NY, U.S.A., 2011.
[26]
Kalibera T, Hagelberg J, Pizlo F, Plsek A, Titzer B, Vitek J. CDx: A family of real-time java benchmarks. JTRES '09: Seventh International Workshop on Java Technologies for Real-time and Embedded Systems. ACM: New York, NY, U.S.A., 2009; 41–50.
[27]
Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, CA 95054, U.S.A. Java Card 3.0 Platform Specification, March 2008.
[28]
Beebee WS, Rinard MC. An implementation of scoped memory for real-time Java. First International Workshop on Embedded Software (EMSOFT'01). Springer: London, U.K., 2001; 289–305.
[29]
Pizlo F, Vitek J. An empirical evaluation of memory management alternatives for real-time Java. 27th IEEE International Symposium on Real-Time Systems (RTSS'06). IEEE: New York, 2006; 35–46.
[30]
Martin Schoeberl TK, Korsholm S, Ravn AP. A hardware abstraction layer in Java. ACM Transactions on Embedded Computing Systems, vol. 5. ACM: New York, 2009; 1–42.
[31]
Auerbach J, Bacon DF, Blainey B, Cheng P, Dawson M, Fulton M, Grove D, Hart D, Stoodley M. Design and implementation of a comprehensive real-time java virtual machine. Seventh ACM Conference on Embedded Software (EMSOFT'07). ACM: New York, NY, U.S.A., 2007; 249–258.
[32]
Bollella G, Delsart B, Guider R, Lizzi C, Parain F. Mackinac: Making HotSpot real-time. Eighth IEEE International Symposium on OO Real-Time Distributed Computing (ISORC'05). IEEE: Washington, DC, U.S.A., 2005; 45–54.
[33]
Siebert F, Walter A. Deterministic execution of Java's primitive by tecode operations. Proceedings of the First Java Virtual Machine Research and Technology Symposium. USENIX: Berkeley, CA, U.S.A., 2001; 18.
[34]
Pizlo F, Ziarek L, Blanton E, Maj P, Vitek J. High-level programming of embedded hard real-time devices. ACM SIGOPS/EuroSys European Conference on Computer Systems 2010 (EuroSys'10). ACM: New York, NY, U.S.A., 2010; 69–82.
[35]
Baker J, Cunei A, Flack C, Pizlo F, Prochazka M, Vitek J, Armbruster A, Pla E, Holmes D. A real-time Java virtual machine for avionics—An experience report. 12th IEEE International Symposium on Real-Time and Embedded Technology and Applications (RTAS'06). IEEE: Washington, DC, U.S.A., 2006; 384–396.
[36]
Schoofs T, Jenn E, Leriche S, Nilsen K, Gauthier L, Richard-Foy M. Use of PERC Pico in the AIDA avionics platform. JTRES '09: Seventh International Workshop on Java Technologies for Real-time and Embedded Systems. ACM: New York, NY, U.S.A., 2009; 169–178.
[37]
JSR 121: Application Isolation API Specification. Sun Microsystems JCP, June 2006. Available at: {2 May 2011}.
[38]
Simon D, Cifuentes C, Cleal D, Daniels J, White D. Java on the bare metal of wireless sensor devices: The Squawk Java virtual machine. Second USENIX International Conference on Virtual Execution Environments (VEE'06). ACM: New York, NY, U.S.A., 2006; 78–88.
[39]
Golm M, Felser M, Wawersich C, Kleinöder J. The JX operating system. 2002 USENIX ATC. USENIX: Berkeley, CA, U.S.A., 2002; 45–58.
[40]
Spoonhower D, Auerbach J, Bacon DF, Cheng P, Grove D. Eventrons: A safe programming construct for high-frequency hard real-time applications. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'06). ACM: New York, NY, U.S.A., 2006; 283–294.
[41]
Spring JH, Pizlo F, Guerraoui R, Vitek J. Reflexes: Abstractions for highly responsive systems. Third USENIX International Conference on Virtual Execution Environments (VEE'07). ACM: New York, NY, U.S.A., 2007; 191–201.
[42]
Spring JH, Privat J, Guerraoui R, Vitek J. Streamflex: High-throughput stream programming in java. 22nd ACM Conference on OOP, Systems, Languages, and Applications (OOPSLA'07). ACM: New York, NY, U.S.A., 2007; 211–228.
[43]
Auerbach J, Bacon DF, Iercan D, Kirsch CM, Rajan VT, Röck H, Trummer R. Low-latency time-portable real-time programming with exotasks. ACM Transactions on Embedded Computing Systems (TECS) 2009; 8(2):1–48.
[44]
Auerbach J, Bacon DF, Guerraoui R, Spring JH, Vitek J. Flexible task graphs: A unified restricted thread programming model for java. 2008 ACMSIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems (LCTES'08). ACM: New York, NY, U.S.A., 2008; 1–11.
[45]
Craciunas SS, Kirsch CM, Röck H, Trummer R. The JAviator: A high-payload quadrotor UAV with high-level programming capabilities. AIAA Guidance, Navigation and Control Conference, 2008; 1–21.

Cited By

View all
  • (2020)Design and Implementation of an Escape Analysis in the Context of Safety-Critical Embedded SystemsACM Transactions on Embedded Computing Systems10.1145/337213319:1(1-20)Online publication date: 6-Feb-2020
  • (2017)Demystifying Soft-Error Mitigation by Control-Flow Checking -- A New Perspective on its EffectivenessACM Transactions on Embedded Computing Systems10.1145/312650316:5s(1-19)Online publication date: 27-Sep-2017
  • (2017)The Perfect GetawayACM Transactions on Embedded Computing Systems10.1145/303554216:4(1-30)Online publication date: 11-May-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Concurrency and Computation: Practice & Experience
Concurrency and Computation: Practice & Experience  Volume 24, Issue 8
June 2012
183 pages

Publisher

John Wiley and Sons Ltd.

United Kingdom

Publication History

Published: 01 June 2012

Author Tags

  1. AUTOSAR
  2. Java
  3. OSEK/VDX
  4. embedded systems
  5. memory protection
  6. spatial isolation

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2020)Design and Implementation of an Escape Analysis in the Context of Safety-Critical Embedded SystemsACM Transactions on Embedded Computing Systems10.1145/337213319:1(1-20)Online publication date: 6-Feb-2020
  • (2017)Demystifying Soft-Error Mitigation by Control-Flow Checking -- A New Perspective on its EffectivenessACM Transactions on Embedded Computing Systems10.1145/312650316:5s(1-19)Online publication date: 27-Sep-2017
  • (2017)The Perfect GetawayACM Transactions on Embedded Computing Systems10.1145/303554216:4(1-30)Online publication date: 11-May-2017
  • (2016)Using a Multi-Tasking VM for Mobile ApplicationsProceedings of the 17th International Workshop on Mobile Computing Systems and Applications10.1145/2873587.2873596(93-98)Online publication date: 23-Feb-2016
  • (2015)The Fiji MultiVM ArchitectureProceedings of the 13th International Workshop on Java Technologies for Real-time and Embedded Systems10.1145/2822304.2822312(1-10)Online publication date: 7-Oct-2015
  • (2015)A Practical GetawayACM SIGPLAN Notices10.1145/2808704.275496150:5(1-11)Online publication date: 4-Jun-2015
  • (2015)A Practical GetawayProceedings of the 16th ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROM10.1145/2670529.2754961(1-11)Online publication date: 4-Jun-2015
  • (2014)RT-LAGCProceedings of the 12th International Workshop on Java Technologies for Real-time and Embedded Systems10.1145/2661020.2661031(87-96)Online publication date: 13-Oct-2014
  • (2014)The final FrontierProceedings of the 12th International Workshop on Java Technologies for Real-time and Embedded Systems10.1145/2661020.2661024(97-106)Online publication date: 13-Oct-2014
  • (2013)A JVM for soft-error-prone embedded systemsACM SIGPLAN Notices10.1145/2499369.246557148:5(21-32)Online publication date: 20-Jun-2013
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media