uu.seUppsala University Publications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Efficient Memory Management for Concurrent Programs that Use Message Passing
Uppsala University, Disciplinary Domain of Science and Technology, Mathematics and Computer Science, Department of Information Technology, Computing Science. (HiPE)
Uppsala University, Disciplinary Domain of Science and Technology, Mathematics and Computer Science, Department of Information Technology, Computing Science. (HiPE)
2006 (English)In: Science of Computer Programming, ISSN 0167-6423, E-ISSN 1872-7964, Vol. 62, no 2, 98-121 p.Article in journal (Refereed) Published
Abstract [en]

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.
Keyword [en]
incremental and real-time garbage collection, thread-local heaps, message analysis, concurrent languages, mutator utilization, erlang
National Category
Computer and Information Science
Identifiers
URN: urn:nbn:se:uu:diva-19790DOI: 10.1016/j.scico.2006.02.006ISI: 000239913600002OAI: oai:DiVA.org:uu-19790DiVA: diva2:47562
Available from: 2006-12-01 Created: 2006-12-01 Last updated: 2017-12-08Bibliographically approved

Open Access in DiVA

No full text

Other links

Publisher's full text

Authority records BETA

Sagonas, KonstantinosWilhelmsson, Jesper

Search in DiVA

By author/editor
Sagonas, KonstantinosWilhelmsson, Jesper
By organisation
Computing Science
In the same journal
Science of Computer Programming
Computer and Information Science

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 403 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf