Incremental multi-threaded garbage collection on virtually shared memory architectures
- 89 Downloads
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.
KeywordsVirtual Machine Shared Memory Garbage Collection Address Space Incremental Version
Unable to display preview. Download preview PDF.
- [App 88]A. W. Appel, Simple Generational Garbage Collection and Fast Allocation, Software Practice and Experience 19(2): 171–183, February 1988Google Scholar
- [Bak 78]H. G. Baker, Jr., List Processing in Real Time on a Serial Computer, Communications of the ACM, 21(4), April 1978Google Scholar
- [Ber 88]B. Berthomieu, LCS: une implantation de CCS, In A. Arnold, editor, Troisième colloque C-cube, Angoulème, France, Décembre 1988Google Scholar
- [BDS 91]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.Google Scholar
- [BGG 91]B. Berthomieu, D. Giralt, and J.-P. Gouyon, LCS Users Manual, LAAS Report 91226, CNRS-LAAS, June 1991Google Scholar
- [CBZ 91]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.Google Scholar
- [Coh 81]J. Cohen, Garbage Collection of Linked Data Structures, Computing Surveys, 13(3), September 1981Google Scholar
- [ELA 88]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 25Google Scholar
- [Hal 84]R. H. Halstead Jr., Implementation of Multilisp: Lisp on a Multiprocessor, In 1984 ACM Symposium on LISP and Functional Programming, August 1984Google Scholar
- [KHM 89]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 1989Google Scholar
- [LB 91]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.Google Scholar
- [LeS 92]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).Google Scholar
- [LH 89]
- [Mil 80]R. Milner, A Calculus of Communicating System, LNCS volume 64, Springer-Verlag, 1980Google Scholar
- [MTH 90]R. Milner, M. Tofte, and R. Harper, The Definition of Standard ML, The MIT Press, 1990Google Scholar
- [Rud 86]M. Rudalics, Distributed Copying Garbage Collection, In 1986 ACM Conference on LISP and Functional Programming, August 1986.Google Scholar