A switchable approach to large object allocation in real-time Java

Over the last 20 years object-oriented programming languages and managed run-times like Java have been very popular because of their software engineering benets. Despite their popularity in many application areas, they have not been considered suitable for real-time programming. Besides many other factors, one of the barriers that prevent their acceptance in the development of real-time systems is the long pause times that may arise during large object allocation. This paper examines different kinds of solutions that have been developed so far and introduces a switchable approach to large object allocation in real-time Java. A synthetic benchmark application that is developed to evaluate the effectiveness of the presented technique against other currently implemented techniques is also described.

[1]  Jan Vitek,et al.  Schism: fragmentation-tolerant real-time garbage collection , 2010, PLDI '10.

[2]  Richard Jones,et al.  Dynamic Memory Management: Challenges for Today and Tomorrow , 2007 .

[3]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[4]  Andy Wellings,et al.  Distributed, Embedded and Real-time Java Systems , 2012 .

[5]  Joshua S. Auerbach,et al.  Design and implementation of a comprehensive real-time java virtual machine , 2007, EMSOFT '07.

[6]  Ismael Ripoll,et al.  TLSF: a new dynamic memory allocator for real-time systems , 2004, Proceedings. 16th Euromicro Conference on Real-Time Systems, 2004. ECRTS 2004..

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

[8]  Ismael Ripoll,et al.  Implementation of a constant-time dynamic storage allocator , 2008 .

[9]  Jan Vitek,et al.  A real-time Java virtual machine with applications in avionics , 2007, TECS.

[10]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[11]  Jan Vitek,et al.  Scheduling Hard Real-Time Garbage Collection , 2009, 2009 30th IEEE Real-Time Systems Symposium.

[12]  Roger Henriksson,et al.  Scheduling Garbage Collection in Embedded Systems , 1998 .

[13]  Jan Vitek,et al.  Accurate garbage collection in uncooperative environments revisited , 2009 .

[14]  Martin Schoeberl,et al.  Scheduling of hard real-time garbage collection , 2010, Real-Time Systems.

[15]  Fridtjof Siebert Realtime garbage collection in the JamaicaVM 3.0 , 2007, JTRES.

[16]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[17]  Jan Vitek,et al.  Developing safety critical Java applications with oSCJ/L0 , 2010, JTRES '10.

[18]  Jan Vitek,et al.  High-level programming of embedded hard real-time devices , 2010, EuroSys '10.

[19]  James L. Peterson,et al.  Buddy systems , 1977, CACM.

[20]  Kenneth C. Knowlton,et al.  A fast storage allocator , 1965, CACM.

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

[22]  Takeshi Ogasawara,et al.  An algorithm with constant execution time for dynamic storage allocation , 1995, Proceedings Second International Workshop on Real-Time Computing Systems and Applications.

[23]  Richard E. Jones,et al.  The Garbage Collection Handbook: The art of automatic memory management , 2011, Chapman and Hall / CRC Applied Algorithms and Data Structures Series.

[24]  Jan Vitek,et al.  Scheduling real-time garbage collection on uniprocessors , 2011, TOCS.

[25]  Frédéric Parain,et al.  Mackinac: making HotSpot/spl trade/ real-time , 2005, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05).

[26]  Andy J. Wellings Concurrent and real-time programming in Java , 2004 .

[27]  Jan Vitek,et al.  Real time Java on resource-constrained platforms with Fiji VM , 2009, JTRES '09.

[28]  Robert S. Boyer,et al.  A fast string searching algorithm , 1977, CACM.