Parallel garbage collection for graph machines
Traditional reference counting falls short of being general; it cannot collect cyclic structures. On the other hand, mark-sweep algorithms are expensive, because only the resident data items are scanned, irrespective of the amount of real activity. Parallel mark-sweep algorithms are also unacceptable because they require very fine-grained synchronization with the mutator, therefore slowing down the computational process.
We have presented a novel garbage collection technique that uses reference counters and also collects cyclic structures, with little need for synchronization with the mutator.
Although in this paper we have considered interleaved, parallel and multi-collector environments, there are other computational scenarios which need be investigated.
An apparent disadvantage is the additional storage requirement for the C-field for each node. The C-field is equal to the E-field and several empirical studies show that in most cases the E-field is 1.
The space for the additional fields should be weighed against the simplicity, the efficiency, and the absence of synchronization overhead. We believe that, if the garbage nodes are collected fast and without interruption of the computational process, the total effective space utilization factor will be higher.
Unable to display preview. Download preview PDF.
- Ali, K. A. M. Object-oriented Storage Management and Garbage Collection in Distributed Processing systems. Royal Institute of Technology, Stockholm, Ph.D. Thesis, Dec. 1984.Google Scholar
- Hudak, P., and Keller, R. M. Garbage collection and task deletion in distributed applicative processing systems. Proc. ACM symposium on LISP and Functional Programming, Aug. 1982, 168–178.Google Scholar
- Hughes, J. A Distributed Garbage Collection Algorithm, Lecture Notes in Comp. Sci., vol. 201, Springer-Verlag, Sept. 1985.Google Scholar
- Kung, H., and Song, S. An efficient parallel garbage collection system and its correctness proof. Tech. Note., Dept. of Comp. Sci., CMU, Sept. 1977.Google Scholar
- Lamport, L. Garbage collection with multiple processes: An exercise in parallelism. Proc. 1976 Int. Conf. on Parallel Processing, 1976, 50–54.Google Scholar
- Standish, T. A. Data Structure Techniques, Addison-Wesley, 1980.Google Scholar
- Wise, D. S. Design for a Multiprocessing Heap with On-board Reference Counting. Lecture Notes in Comp. Sci., vol. 201, Springer-Verlag, Sept. 1985.Google Scholar