Exploiting Multi-core Processors to Improve Time Predictability for Real-Time Java Computing

As a successful programming language, Java has extended its application from general-purpose systems to embedded, real-time systems. However, some of Java's excellent features, like automatic memory management and dynamic compilation, bring indeterminism to the execution time of real-time Java programs. In this paper, we propose several multi-core approaches to remove or at least reduce the unpredictability inside of Java Virtual Machine (JVM). Our goal is to retain high performance competitive to dynamic compilation and, at the same time, obtain better time predictability for JVM. Also, we study pre-compilation techniques to utilize second core more efficiently. Furthermore, we develop Pre-optimization on Another Core (PoAC) scheme to replace the Adaptive Optimization System (AOS) in Jikes JVM, which is very sensitive to execution time variation and impacts time predictability greatly. The experimental results indicate that our approaches are able to reach high performance while greatly reduce execution time variation of Java applications.

[1]  V. T. Rajan,et al.  The Metronome: A Simpler Approach to Garbage Collection in Real-Time Systems , 2003, OTM Workshops.

[2]  Fridtjof Siebert,et al.  Hard real-time garbage collection in the Jamaica virtual machine , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[3]  Sven Gestegard Robertz,et al.  Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems , 2003, LCTES '03.

[4]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[5]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[6]  James H. Anderson,et al.  A Hybrid Real-Time Scheduling Approach for Large-Scale Multicore Platforms , 2007, 19th Euromicro Conference on Real-Time Systems (ECRTS'07).

[7]  Binoy Ravindran,et al.  On Scheduling Garbage Collector in Dynamic Real-Time Systems With Statistical Timing Assurances , 2006, ISORC.

[8]  Martin C. Rinard,et al.  An Implementation of Scoped Memory for Real-Time Java , 2001, EMSOFT.

[9]  V. T. Rajan,et al.  A real-time garbage collector with low overhead and consistent utilization , 2003, POPL '03.

[10]  Jan Vitek,et al.  Real-time Java scoped memory: design patterns and semantics , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[11]  Per Lindgren,et al.  A correct and useful incremental copying garbage collector , 2007, ISMM '07.

[12]  Jan Vitek,et al.  Scoped types and aspects for real-time Java memory management , 2007, Real-Time Systems.