The Metronome: A Simpler Approach to Garbage Collection in Real-Time Systems
Created on 2023-10-02T19:12:04-05:00
Read barrier: objects contain forwarding pointers that default to themselves, and are re-pointed when an object moves.
Mutator: module of the garbage collector which doles out memory, possibly some bookkeeping while allocating as wel
Collector: module of the garbage collector which performs object relocation, reclamation of memory
Work-based scheduling: run garbage collection when so much work has been done--namely, so much memory has been churned through allocation.
Time-based scheduling: integrate a timer which polls the collector. If so much time has passed, or now is a good time, perform collection passes.
Segregated lists: split in to large and smaller pages.
Conservative copying: works as a non-moving GC most of the time; evacuates objects when a block is determined to be too highly fragmented.
Snapshot at the beginning: for incremental collectors. means that if an object is colored as live at any point during tracing, assume its still alive. this is important when you exit and re-enter the tracing process due to time constraints (as incremental systems tend to do.)
Tuning involves the average time between collection phases as well as the peak stress on memory.
Relies on a lot of careful coding to minimize the costs of context switches.