Title of article
Efficient memory management for concurrent programs that use message passing
Author/Authors
Konstantinos Sagonas، نويسنده , , Jesper Wilhelmsson، نويسنده ,
Issue Information
دوهفته نامه با شماره پیاپی سال 2006
Pages
24
From page
98
To page
121
Abstract
We present an efficient memory management scheme for concurrent programming languages where communication occurs by using message passing with copying semantics. The runtime system is built around process-local heaps, which frees the memory manager from redundant synchronization in a multi-threaded implementation and allows the memory reclamation of process-local heaps to be a private business and to often take place without ever triggering garbage collection. The allocator is guided by a static analysis which speculatively allocates data possibly used as messages in a shared memory area. To respect the (soft) real-time requirements of the language, we develop and present in detail a generational, incremental garbage collection scheme tailored to the characteristics of this runtime system. The incremental collector imposes no overhead on the mutator, requires no costly barrier mechanisms, has a relatively small space overhead, and can be scheduled on the basis of either a time or a work quantum. We have implemented these schemes in the context of an industrial-strength implementation of a concurrent functional language used to develop large-scale, highly concurrent, telecommunication applications. Our measurements across a range of applications indicate that the incremental collector imposes only very small overhead on the total runtime and can achieve very short pause times (1 ms or less) while being able to sustain a high degree of mutator utilization.
Keywords
Erlang , Incremental and real-time garbage collection , Thread-local heaps , Message analysis , Mutator utilization , Concurrent languages
Journal title
Science of Computer Programming
Serial Year
2006
Journal title
Science of Computer Programming
Record number
1079881
Link To Document