Distributed, Garbage-Collected, Persistent, Virtual Address Spaces (thesis)
Most integrated programming environments were designed for
uniprocessor systems, and they require substantial processing power
and storage capacity. Despite the advantages they offer ---
flexibility, rapid response --- their appetites have limited their
use. The recent increases in work-station and network computing power
provide an opportunity to overcome these limitations.
This dissertation describes the design of a distributed,
language-based, integrated environment and its implementation on
current hardware. A distributed system allows users, who can access
the system from different locations, to share values and computing
power. Shared virtual-memory techniques are used to distribute the
address space of EZ, a persistent, very high-level, string-processing
programming and command language. Unlike other persistent systems,
persistence pervades EZ and applies to both data and active objects.
Distributed EZ runs on a loosely coupled multiprocessor, implemented
as several work-stations connected by a network.
A distributed virtual-memory manager provides a shared-memory
programming paradigm even though there is no shared physical memory
accessible by all work-stations. The virtual address space is
distributed over the secondary storage devices of the individual
processors. Managers cache pages into the physical memory of the
work-stations that access them and maintain coherence among the
multiple copies of a page. They use replication to permit multiple
readers, but permit only one writer.
A distributed, mark-and-sweep garbage collector, which works in
concert with the memory manager, reclaims inaccessible objects in the
distributed system. This collector is concurrent and real-time. The
memory manager collaborates with the collector to avoid direct mutator
The results show that it is feasible to build an effective distributed
system by using shared virtual memory to distribute the persistent
address space. Performance remains a problem, due mainly to the high
cost of network communication. The implementation of EZ's data
structures conflicts with the techniques used to maintain cache
coherence and cause too much interprocessor communication. The
distributed, mark-and-sweep garbage collector works well, however, and
it is especially effective when the system activity is distributed
among several processors.