A Compacting Real-Time Memory Management System

We propose a real real-time memory management system called Compact-fit that offers both time and space predictability. Compact-fit is a compacting memory management system for allocating, deallocating, and accessing memory in real time. The system provides predictable memory fragmentation and response times that are constant or linear in the size of the request, independently of the global memory state. We present two Compact-fit implementations and compare them to established memory management systems, which all fail to provide predictable memory fragmentation. The experiments confirm our theoretical complexity bounds and demonstrate competitive performance. In addition, we can control the performance versus fragmentation trade-off via our concept of partial compaction. The system can be parameterized with the needed level of compaction, improving the performance while keeping memory fragmentation predictable.

[1]  D. F. Bacon Realtime Garbage Collection , 2007, Queue.

[2]  Ismael Ripoll,et al.  A comparison of memory allocators for real-time applications , 2006, JTRES '06.

[3]  Emery D. Berger,et al.  Quantifying the performance of garbage collection vs. explicit memory management , 2005, OOPSLA '05.

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

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

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

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

[8]  Pradeep Padala,et al.  Playing with ptrace, Part II , 2002 .

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

[10]  Matthew Arnold,et al.  Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading , 2002, ECOOP.

[11]  Fridtjof Siebert,et al.  Constant-Time Root Scanning for Deterministic Garbage Collection , 2001, CC.

[12]  Fridtjof Siebert,et al.  Eliminating external fragmentation in a non-moving garbage collector for Java , 2000, CASES '00.

[13]  Kathryn S. McKinley,et al.  Hoard: a scalable memory allocator for multithreaded applications , 2000, SIGP.

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

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

[16]  Brian N. Bershad,et al.  A memory-efficient real-time non-copying garbage collector , 1998, ISMM '98.

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

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

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

[20]  Henry G. Baker,et al.  The treadmill: real-time garbage collection without motion sickness , 1992, SIGP.

[21]  Hermann Kopetz,et al.  Event-Triggered Versus Time-Triggered Real-Time Systems , 1991, Operating Systems of the 90s and Beyond.

[22]  J. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[23]  Rodney A. Brooks,et al.  Trading data space for reduced time and code space in real-time garbage collection on stock hardware , 1984, LFP '84.

[24]  James Leslie Keedy,et al.  Virtual Memory , 1976, Computer.

[25]  Robert Fenichel,et al.  A LISP garbage-collector for virtual-memory computer systems , 1969, CACM.

[26]  W. Worlton,et al.  The Art of Computer Programming , 1968 .

[27]  R. Larson,et al.  Linux Kernel , 2003 .

[28]  Tobias Ritzau,et al.  Memory Efficient Hard Real-Time Garbage Collection , 2003 .

[29]  Dirk Grunwald,et al.  Evaluating models of memory allocation , 1994, TOMC.

[30]  Andrew S. Tanenbaum,et al.  Modern Operating Systems , 1992 .