Abstract
This paper describes a multi-threaded and incremental garbage collector operating on shared memory architectures. The technique was developed for parallel implementations of the language LCS, a high level parallel programming language.
An incremental, page trap based, collection algorithm operates locally on each of the processors. Processors alternatively plays the role of mutator and collector. The processors cooperate for collection and mutation; idling processors perform part of the collection task for the others until they acquire some work. The progress of collectors versus allocations is controlled by a scan credit mechanism that guarantees a responsive execution of the application. There is no static partitioning of the storage among the processors; pages are dynamically allocated to any processor, for specific purposes.
Two implementations are discussed: the first is suitable for operation on a shared memory architecture; the second provides garbage collection services as added functionality to a distributed shared virtual memory service.
Preview
Unable to display preview. Download preview PDF.
References
A. W. Appel, Simple Generational Garbage Collection and Fast Allocation, Software Practice and Experience 19(2): 171–183, February 1988
H. G. Baker, Jr., List Processing in Real Time on a Serial Computer, Communications of the ACM, 21(4), April 1978
B. Berthomieu, LCS: une implantation de CCS, In A. Arnold, editor, Troisième colloque C-cube, Angoulème, France, Décembre 1988
H-J. Boehm, A. J. Demers, and S. Shenker, Mostly Parallel Garbage Collection, In ACM SIGPLAN'89 Conference on Programming Language Design and Implementation, June 1989.
B. Berthomieu, D. Giralt, and J.-P. Gouyon, LCS Users Manual, LAAS Report 91226, CNRS-LAAS, June 1991
J. B. Carter, J. K. Bennet, and W. Zwaenepoel, Implementation and Performance of Munin, In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, October 1991.
J. Cohen, Garbage Collection of Linked Data Structures, Computing Surveys, 13(3), September 1981
J. R. Ellis, K. Li, and A. W. Appel, Real-time Concurrent Collection on Stock Multiprocessors, In SIGPLAN'88 Conference on Programming Language Design and Implementation, June 1988. Also Digital SRC Research Report number 25
R. H. Halstead Jr., Implementation of Multilisp: Lisp on a Multiprocessor, In 1984 ACM Symposium on LISP and Functional Programming, August 1984
D. A. Kranz, R. H. Halstead Jr., and E. Mohr, Mul-T: A High-Performance Parallel Lisp, In SIGPLAN'89 Conference on Programming Language Design and Implementation, June 1989
T. Le Sergent, and B. Berthomieu, Un ramasse miettes distribué incrémental sur une mémoire virtuelle partagée distribuée, LAAS Report 91373, CNRS-LAAS, Novembre 1991.
T. Le Sergent, Méthodes d'exécution, et machines virtuelles parallèles, pour l'implantation distribuée du langage de programmation LCS, PhD. thesis, 1992 (forthcoming).
K. Li, and P. Hudak, Memory Coherence in Shared Virtual Memory Systems, ACM Transactions on Computer Systems, 7(4):321–359, November 1989
R. Milner, A Calculus of Communicating System, LNCS volume 64, Springer-Verlag, 1980
R. Milner, M. Tofte, and R. Harper, The Definition of Standard ML, The MIT Press, 1990
M. Rudalics, Distributed Copying Garbage Collection, In 1986 ACM Conference on LISP and Functional Programming, August 1986.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sergent, T.L., Berthomieu, B. (1992). Incremental multi-threaded garbage collection on virtually shared memory architectures. In: Bekkers, Y., Cohen, J. (eds) Memory Management. IWMM 1992. Lecture Notes in Computer Science, vol 637. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017190
Download citation
DOI: https://doi.org/10.1007/BFb0017190
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55940-5
Online ISBN: 978-3-540-47315-2
eBook Packages: Springer Book Archive