MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

The Incremental Garbage Collection of Processes (1977) [47 citations — 4 self]

by Henry G. Baker ,  Carl Hewitt
Add To MetaCart

Abstract:

This paper investigates some problems associated with an argument evaluation order that we call "future' order, which is different from both call-by-name and call-by-value. In call-by-future, each formal parameter of a function is bound to a separate process (called a "future") dedicated to the evaluation of the corresponding argument. This mechanism allows the fully parallel evaluation of arguments to a function, and has been shown to augment the expressive power of a language. We discuss an approach to a problem that arises in this context: futures which were thought to be relevant when they were created become irrelevant through being ignored in the body of the expression where they were bound. The problem of irrelevant processes also appears in multiprocessing problem-solving systems which start several processors working on the same problem but with different methods, and return with the solution which finishes first. This parallel method strategy has the drawback that the processes which are investigating the losing methods must be identified, stopped, and reassigned to more useful tasks. The solution we propose is that of garbage collection. We propose that the goal structure of the solution plan be explicitly represented in memory as part of the graph memory (like Lisp's heap) so that a garbage collection algorithm can discover which processes are performing useful work, and which can be recycled for a new task. An incremental algorithm for the unified garbage collection of storage and processes is described.

Citations

367 Sorting networks and their applications – Batcher - 1968
200 A nonrecursive list compacting algorithm – Cheney - 1970
196 List processing in real time on a serial computer – Baker - 1978
173 On-the-fly garbage collection : an exercise in cooperation – DIJKSTRA, LAMPORT, et al. - 1976
101 Hydra: The Kernel of a Multiprocessor Operating System – Wulf - 1974
74 A LISP garbage-collector for virtual-memory computer systems – FENICHEL, YOCHELSON - 1969
72 CONS should not evaluate its arguments – Friedman, Wise - 1976
32 Minimal and optimal computations of recursive programs – Berry, Levy - 1979
29 Comparative schematology – Paterson, Hewitt - 1970
21 Garbage collection with multiple processes: an exercise in parallelism – LAMPORT - 1976
20 Correct and optimal implementations of recursion in a simple programming language – Vuillemin - 1974
13 Synchronization in Actor Systems – Atkinson, Hewitt - 1977
5 A Multi-Level Organization for Problem Solving Using – Erman, Lesser - 1975
4 The Impact of Applicative Programming on Multiprocessing – Friedman, Wise - 1976
3 On-the-fly Garbage Collection: Once More with Rigor – Lamport - 1975
1 After Many a Sobering Experience". Dijkstra note EWD500 – Dijkstra
1 Parallel Processing Facilities – Hibbard - 1976
1 The Role of Raw Power in Intelligence". Unpublished ms – Moravec - 1976
1 Functional Domains of Applicative Languages – Ward