Multiprocessing compactifying garbage collection

  title={Multiprocessing compactifying garbage collection},
  author={Guy L. Steele},
  journal={Commun. ACM},
  • G. Steele
  • Published 1 September 1975
  • Computer Science
  • Commun. ACM
Algorithms for a multiprocessing compactifying garbage collector are presented and discussed. The simple case of two processors, one performing LISP-like list operations and the other performing garbage collection continuously, is thoroughly examined. The necessary capabilities of each processor are defined, as well as interprocessor communication and interlocks. Complete procedures for garbage collection and for standard list processing primitives are presented and thoroughly explained… 

Tables from this paper

Analysis of an algorithm for real time garbage collection
Algorithms for recovering discarded list structures in this manner are presented and analyzed to determine sufficient conditions under which the list processor never needs to wait on the collector, which are suitable for measuring the typical behavior of the algorithm.
Distributed garbage collection
It is argued that the process approach is better suited for distributed computation where links between dynamically allocated objects may cross processor boundaries and allows the heap to be more conveniently shared with other processes in those cases when different processes might not have their own virtual address spaces.
Garbage collection and task deletion in distributed applicative processing systems
A real-time, effectively distributed, garbage collector of the mark-sweep variety, called the marking-tree collector, is shown to accomplish reclamation in parallel with the main computation, with no centralized data or control other than a logical rendezvous between phases of the collector.
Global garbage collection for distributed heap storage systems
A garbage-collection algorithm, suitable for loosely-coupled multiprocessor systems, in which the processing elements (PEs) share only the communication medium, that allows space compaction and uses a system-wide marking phase to mark all accessible objects.
A practical parallel garbage collection algorithm and its implementation
This paper presents a new practical parallel garbage collection algorithm and its improvements, and proposes a special processor for Parallel garbage collection that satisfies the effectiveness condition for parallelism, even if the list process node consumption rate is high.
Hardware and operating system support for conservative garbage collection
  • H. Boehm
  • Computer Science
    Proceedings 1991 International Workshop on Object Orientation in Operating Systems
  • 1991
Conservative garbage collectors can automatically reclaim unreferenced storage, even if the client program is unaware of the existence of a collector. Nearly all garbage collectors can benefit from
Garbage Collection of Linked Data Structures
A concise and unified view of the numerous existing algorithms for performing garbage collection of linked data structures is presented. The emphasm is on garbage collection proper, rather than on
Mostly-Copying Garbage Collection Picks Up Generations and C++
A generational version of the "mostly-copying" garbage collection algorithm, designed to improve performance of programs that retained a large amount of storage, and its application in collectors for Scheme and C++ is reported on.
Incremental incrementally compacting garbage collection
A mixed-strategy garbage collection algorithm is presented, which combines mark-and-sweep and copy collection, which is to the authors' knowledge the only parallel compacting collector for varisized cells, that leaves most of the memory available for the computing process.


An efficient machine-independent procedure for garbage collection in various list structures
A new algorithm is presented which offers significant advantages of speed and storage utilization and can be written in the list language with which it is to be used, thus insuring a degree of machine independence.
A generalised compactifying garbage collector
This paper presents a compactifying garbage collection technique that works on arbitrary nodes, even when pointers point into the middle of nodes, and outlines the need for such a technique.
A LISP garbage-collector for virtual-memory computer systems
A garbage-collection algorithm for list-processing systems which operate within very large virtual memo, ies is described, which is more the compaction of active storage than the discovery of free storage.
Symmetric list processor
A list processing system in which each list cell contains both a forward and a backward link as well as a datum is described. This system is intended for imbedding in higher level languages capable
LISP 1.5 Programmer's Manual
The LISP language is designed primarily for symbolic data processing used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing,
Recursive functions of symbolic expressions and their computation by machine, Part I
A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with
Abstract : An introduction to LISP is given on an elementary level. Topics covered include the programming system, 240 exercises with solutions, debugging of LISP programs, and styles of programming.
The treatment of data types in EL1
The EL1 language contains a number of features specifically designed to simultaneously satisfy both natural problem-oriented notation and efficient implementation, in a context that allows efficient compiled code and compact data representation.
Knotted list structures
This note describes a generalization of the threaded list which consists of replacing the thread llnk which Perlis and Thornton place in the R or link position of the last llst cell of a list (or sub-list with a Control List which is attached to the llst structure and which contains, among other information, a push down list capable of storing many thread links).
The structure of the “THE”-multiprogramming system
A multiprogramming system is described in which all activities are divided over a number of sequential processes, in each of which one or more independent abstractions have been implemented.