Eliminating external fragmentation in a non-moving garbage collector for Java

Fragmentation can cause serious loss of memory in systems that are using dynamic memory management. Any useful memory management system must therefore provide means to limit fragmentation. Today's garbage collector implementations often do this by moving objects in a way that free memory is non-fragmented. This paper presents a new object model that is based on fixed size blocks. The model eliminates external fragmentation without the need to move objects. A Java virtual machine and a static Java bytecode compiler that use this object model have been implemented and analysed using the SPECjvm98 benchmark suite. This Java implementation allows for deterministic memory management as needed in real-time systems that is difficult to achieve with moving collectors and unparalleled by current implementations.

[1]  Fridtjof Siebert,et al.  Guaranteeing non-disruptiveness and real-time deadlines in an incremental garbage collector , 1998, ISMM '98.

[2]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[3]  Kelvin D. Nilsen,et al.  Reliable Real-Time Garbage Collection of C++ , 1994, Comput. Syst..

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

[5]  Fridtjof Siebert,et al.  TurboJ, a Java Bytecode-to-Native Compiler , 1998, LCTES.

[6]  P. A. Rounce,et al.  A processor with list structured memory , 1991, [1991] Proceedings, Advanced Computer Technology, Reliable Systems and Applications.

[7]  Fridtjof Siebert,et al.  Real-time garbage collection in multi-threaded systems on a single processor , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[8]  Scott Nettles,et al.  A study of large object spaces , 1998, ISMM '98.

[9]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

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

[11]  Joel F. Bartlett,et al.  Compacting garbage collection with ambiguous roots , 1988, LIPO.

[12]  R FenichelRobert,et al.  A LISP garbage-collector for virtual-memory computer systems , 1969 .

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

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

[15]  Urs Hölzle,et al.  A Study of the Allocation Behavior of the SPECjvm98 Java Benchmark , 1999, ECOOP.

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