Efficient Memory Management for Concurrent Programs that Use Message Passing
2006 (English)In: Science of Computer Programming, ISSN 0167-6423, Vol. 62, no 2, 98-121 p.Article in journal (Refereed) Published
We present an efficient memory management scheme for concurrent programming languages where communication occurs 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 either based on a time or on 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, can achieve very short pause times (1 millisecond or less) while being able to sustain a high degree of mutator utilization.
Place, publisher, year, edition, pages
2006. Vol. 62, no 2, 98-121 p.
incremental and real-time garbage collection, thread-local heaps, message analysis, concurrent languages, mutator utilization, erlang
Computer and Information Science
IdentifiersURN: urn:nbn:se:uu:diva-19790DOI: 10.1016/j.scico.2006.02.006ISI: 000239913600002OAI: oai:DiVA.org:uu-19790DiVA: diva2:47562