University of Utah Department of Computer Science UUCS-92-011 A Distributed Garbage Collection Algorithm Terence Critchlow Abstract Concurrent Scheme extends the Scheme programming language, providing parallel program execution on a distributed network. The Concurrent Scheme environment requires a garbage collector to reclaim global objects; objects that exist in a portion of the global heap located on the node that created them. Because a global object may be referenced by several nodes, traditional garbage collection algorithms cannot be used. The garbage collector used must be able to reclaim global objects with minimal disturbance to the user program, and without the use of global state information. It must operate asynchronously, have a low network overhead, and be able to handle out-of-order messages. This thesis describes a distributed reference counting garbage collector appropriate for the reclamation of global objects in the Concurrent Scheme environment.