Time-Predictable Java Dynamic Compilation on Multicore Processors

Java has been increasingly used in programming for real-time systems. However, some of Java’s features such as automatic memory management and dynamic compilation are harmful to time predictability. If these problems are not solved properly then it can fundamentally limit the usage of Java for real-time systems, especially for hard real-time systems that require very high time predictability. In this paper, we propose to exploit multicore computing in order to reduce the timing unpredictability that is caused by dynamic compilation and adaptive optimization. Our goal is to retain high performance comparable to that of traditional dynamic compilation, while at the same time, obtain better time predictability for Java virtual machine (JVM). We have studied pre-compilation techniques to utilize another core more efficiently, preoptimization on another core (PoAC) scheme to replace the adaptive optimization system (AOS) in Jikes JVM and the counter based optimization (CBO). Our evaluation reveals that the proposed approaches are able to attain high performance while greatly reducing the variation of the execution time for Java applications. Category: Embedded computing

[1]  Guangze Xiong,et al.  Minimizing memory requirement of real-time systems with concurrent garbage collector , 2005, SIGP.

[2]  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..

[3]  Chai Zhi Lei,et al.  An effective instruction optimization method for embedded real-time Java processor , 2005 .

[4]  Uwe Brinkschulte,et al.  A multithreaded Java microcontroller for thread-oriented real-time event-handling , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[5]  Raymond Klefstad,et al.  Toward a Unified Standard for Worst-Case Execution Time Annotations in Real-Time Java , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[6]  Guy E. Blelloch,et al.  A parallel, real-time garbage collector , 2001, PLDI '01.

[7]  Filip Pizlo,et al.  A study of concurrent real-time garbage collectors , 2008, PLDI '08.

[8]  Chris D. Nugent,et al.  Preface for the Special Issue on uHealthcare , 2011 .

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

[10]  Alan Burns,et al.  Portable worst-case execution time analysis using Java Byte Code , 2000, Proceedings 12th Euromicro Conference on Real-Time Systems. Euromicro RTS 2000.

[11]  S. L. Graham,et al.  List Processing in Real Time on a Serial Computer , 1978 .

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

[13]  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).

[14]  Kelvin D. Nilsen,et al.  Performance of a hardware-assisted real-time garbage collector , 1994, ASPLOS VI.

[15]  J. Eliot B. Moss,et al.  Sapphire: copying GC without stopping the world , 2001, JGI '01.

[16]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..

[17]  Andy J. Wellings,et al.  XRTJ: An Extensible Distributed High-Integrity Real-Time Java Environment , 2003, RTCSA.

[18]  Martin Schoeberl,et al.  WCET analysis for a Java processor , 2006, JTRES '06.

[19]  Alan D. George,et al.  RapidIO for radar processing in advanced space systems , 2007, TECS.

[20]  Qian Zhang,et al.  CardioSentinal: A 24-hour Heart Care and Monitoring System , 2012, J. Comput. Sci. Eng..

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

[22]  Zahir Tari,et al.  On the Move to Meaningful Internet Systems. OTM 2018 Conferences , 2018, Lecture Notes in Computer Science.

[23]  Andy J. Wellings,et al.  Addressing dynamic dispatching issues in WCET analysis for object-oriented hard real-time systems , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[24]  Peter Reichel,et al.  Secure, Real-Time and Multi-Threaded General-Purpose Embedded Java Microarchitecture , 2007, 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools (DSD 2007).

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

[26]  서정연,et al.  Journal of Computing Science and Engineering(JCSE)의 국제화 작업 , 2010 .

[27]  David Gay,et al.  Software design patterns for TinyOS , 2005, LCTES '05.

[28]  Iain Bate,et al.  Java virtual-machine support for portable worst-case execution-time analysis , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[29]  ZhiLei Chai,et al.  An effective instruction optimization method for embedded real-time Java processor , 2005, 2005 International Conference on Parallel Processing Workshops (ICPPW'05).

[30]  Wenbo Xu,et al.  Real-time Java processor optimized for RTSJ , 2007, SAC '07.

[31]  Guillem Bernat,et al.  WCET analysis of reusable portable code , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[32]  Douglas C. Schmidt,et al.  The Design and Performance of the jRate Real-Time Java Implementation , 2002, OTM.

[33]  Sascha Uhrig,et al.  Real-time event-handling and scheduling on a multithreaded Java microcontroller , 2003, Microprocess. Microsystems.

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

[35]  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).

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

[37]  Filip Pizlo,et al.  Stopless: a real-time garbage collector for multiprocessors , 2007, ISMM '07.

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

[39]  Raymond Klefstad,et al.  Interactive Back-annotation of Worst-case Execution Time Analysis for Java Microprocessors , 2007, 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2007).

[40]  Guy E. Blelloch,et al.  On bounding time and space for multiprocessor garbage collection , 1999, PLDI '99.

[41]  Martin Schoeberl,et al.  JOP: A Java Optimized Processor for Embedded Real-Time Systems , 2008 .