Real-time memory management: life and times

As real-time and embedded systems become increasingly large and complex, the traditional strictly static approach to memory management begins to prove untenable. The challenge is to provide a dynamic memory model that guarantees tight and bounded time and space requirements without overburdening the developer with memory concerns. This paper provides an analysis of memory management approaches in order to characterise the tradeoffs across three semantic domains: space, time and a characterisation of memory usage information such as the lifetime of objects. A unified approach to distinguishing the merits of each memory model highlights the relationship across these three domains, thereby identifying the class of applications that benefit from targeting a particular model. Crucially, an initial investigation of this relationship identifies the direction future research must take in order to address the requirements of the next generation of complex embedded systems. Some initial suggestions are made in this regard and the memory model proposed in the real-time specification for Java is evaluated in this context

[1]  Ben Zorn,et al.  Barrier Methods for Garbage Collection , 1990 .

[2]  John Michael Robson,et al.  Worst Case Fragmentation of First Fit and Best Fit Storage Allocation Strategies , 1977, Comput. J..

[3]  Andy J. Wellings,et al.  Towards an Understanding of the Expressive Power of the RTSJ Scoped Memory Model , 2004, OTM Workshops.

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

[5]  Sang Joon Kim,et al.  A Mathematical Theory of Communication , 2006 .

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

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

[8]  Paul R. Wilson,et al.  The memory fragmentation problem: solved? , 1998, ISMM '98.

[9]  Albert F. Niessner,et al.  A Patterns Catalog for RTSJ Software Designs , 2003, OTM Workshops.

[10]  Laszlo A. Belady,et al.  A Study of Replacement Algorithms for Virtual-Storage Computer , 1966, IBM Syst. J..

[11]  John G. P. Barnes,et al.  High Integrity Software - The SPARK Approach to Safety and Security , 2003 .

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

[13]  John Michael Robson,et al.  An Estimate of the Store Size Necessary for Dynamic Storage Allocation , 1971, JACM.

[14]  Andy J. Wellings,et al.  Reference Objects for RTSJ Memory Areas , 2003, OTM Workshops.

[15]  Michael J. Neely,et al.  An Analysis of the Effects of Memory Allocation Policy on Storage Fragmentation , 1996 .

[16]  Jordan Gergov,et al.  Algorithms for compile-time memory optimization , 1999, SODA '99.

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

[18]  Daniel S. Hirschberg,et al.  A class of dynamic memory allocation algorithms , 1973, CACM.

[19]  Andy J. Wellings,et al.  Ravenscar‐Java: a high‐integrity profile for real‐time Java , 2002, JGI '02.

[20]  Bala Kalyanasundaram,et al.  Dynamic Spectrum Allocation: The Impotency of Duration Notification , 2000, FSTTCS.

[21]  Andrew Borg On the Development of Dynamic Real-Time Applications in the RTSJ - A Model for Expressing Dynamic Memory Requirements , 2004 .

[22]  Erez Petrank,et al.  A generational on-the-fly garbage collector for Java , 2000, PLDI '00.

[23]  V. T. Rajan,et al.  Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java , 2003, LCTES '03.

[24]  Escape Analysis for Java. Theory and Practice , 2003 .

[25]  Alan Burns,et al.  Guide for the use of the Ada Ravenscar Profile in high integrity systems , 2004, ALET.

[26]  Benjamin G Zorn Barrier Methods for Garbage Collection ; CU-CS-494-90 , 1990 .

[27]  Bruno Blanchet,et al.  Escape analysis for JavaTM: Theory and practice , 2003, TOPL.

[28]  Emery D. Berger,et al.  Automatic vs. Explicit Memory Management: Settling the Performance Debate , 2004 .

[29]  Paul R. Wilson,et al.  Non-compacting memory allocation and real-time garbage collection , 1997 .

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

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

[32]  Joseph Naor,et al.  Tight bounds for dynamic storage allocation , 1994, SODA '94.

[33]  Ron K. Cytron,et al.  Static determination of allocation rates to support real-time garbage collection , 2005, LCTES '05.

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

[35]  Frances E. Allen,et al.  Automatic storage optimization , 2004, SIGP.

[36]  Andy J. Wellings,et al.  Scoped, coarse-grain memory management and the RTSJ scoped memory model in the development of real-time applications , 2006, Int. J. Embed. Syst..

[37]  Alain Deutsch,et al.  On the complexity of escape analysis , 1997, POPL '97.

[38]  Andy J. Wellings,et al.  Ravenscar‐Java: a high‐integrity profile for real‐time Java , 2005, Concurr. Pract. Exp..

[39]  Isabelle Puaut,et al.  Real-time performance of dynamic memory allocation algorithms , 2002, Proceedings 14th Euromicro Conference on Real-Time Systems. Euromicro RTS 2002.

[40]  John Michael Robson,et al.  Bounds for Some Functions Concerning Dynamic Storage Allocation , 1974, JACM.