Conference paper
Non-blocking object copy for real-time garbage collection
A real-time garbage collector has to fulfill two conflicting properties: avoid heap fragmentation and provide short blocking time. The heap needs to be compacted to avoid probably unbounded fragmentation. During compaction all objects are copied; copying is usually performed atomically to avoid interference with mutator threads.
Copying of large objects and especially large arrays introduces long blocking times that are unacceptable for real-time systems. In this paper an interruptible copy unit is presented that implements non-blocking object copy. The unit intercepts object and array field access and redirects the access either to the source or destination part of the moving object.
The unit can be interrupted after a single word move. The resulting maximum blocking time is the time for a memory word read and write. We have implemented the proposed non-blocking copy unit in the Java processor JOP and are able to run high priority real-time tasks at 10 kHz parallel to the garbage collection task on a 100 MHz system.
Language: | English |
---|---|
Year: | 2008 |
Pages: | 77-84 |
Types: | Conference paper |
DOI: | 10.1145/1434790.1434802 |
Computer systems organization Contextual software domains Embedded and cyber-physical systems Embedded software Embedded systems Garbage collection General programming languages Language types Memory management Operating systems Real-time systems software Software and its engineering Software notations and tools Software organization and properties Software system structures