Memory management is a critical issue for correctness and performance in real-time embedded systems. Recent work on real-time garbage collectors has shown that it is possible to provide guarantees on worst-case pause times and minimum mutator utilization time. This paper presents a new hierarchical real-time garbage collection algorithm for mixed-priority and mixed-criticality environments. With hierarchical garbage collection, real-time programmers can partition the heap into a number of heaplets and for each partition choose to run a separate collector with a schedule that matches the allocation behavior and footprint of the real-time task using it. This approach lowers worst-case response times of realtime applications by 26%, while almost doubling mutator utilization – all with only minimal changes to the application code. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors—interpreters, run-time environments; D.4.7 [Operating Systems]: Organization an...
Filip Pizlo, Antony L. Hosking, Jan Vitek