The Incremental Garbage Collection of Processes.

Abstract

This paper investigates some problems associated with an expression evaluation order that we call 'future' order, which is different from call-by-name, call-by-value, and call-by-need. In future order evaluation, an object called a 'future' is created to serve as the value of each expression that is to be evaluated and separate process is dedicated to its evaluation. This mechanism allows the fully parallel evaluation of the expressions in a programming 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 not being needed later in the computation. 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, cleanly stopped, and the processors they are using re-assigned to more useful tasks. The solution we propose is that of incremental garbage collection. The goal structure of the solution plan should 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. (Author)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1977
Accession Number
ADA052445

Entities

People

  • Carl Hewitt
  • Henry G. Baker Jr.

Organizations

  • Massachusetts Institute of Technology

Tags

DTIC Thesaurus Topics

  • Accumulators
  • Algorithms
  • Artificial Intelligence
  • Cells
  • Communication Channels
  • Computations
  • Databases
  • Department Of Defense
  • Language
  • Load Monitoring
  • Military Research
  • Numbers
  • Programming Languages
  • Scheduling (Production)
  • Side Effects
  • Square Roots
  • Test And Evaluation

Fields of Study

  • Computer science

Readers

  • Artificial Intelligence
  • Computational Linguistics
  • Systems Analysis and Design