Distributed shared memory in a loosely-coupled environment

This dissertation examines shared memory which is an effective and efficient paradigm for interprocess communication. We are concerned with software that makes use of shared memory in a single site system and its extension to a multi-machine environment. In this dissertation we describe the design of a distributed shared memory (DSM) system called Mirage developed at UCLA. Mirage provides a form of network transparency to make network boundaries invisible for shared memory and is upward compatible with an existing interface to shared memory. We present the rationale behind our design decisions and important details of the implementation. The implementation and evaluation demonstrates that DSM is viable in a loosely coupled environment if there is a reasonable amount of locality in the applications which use it. The dissertation also describes new interprocess communications facilities that have been added to the Locus distributed operating system. The facilities improve Locus's interprocess communication repertoire by providing distributed support for three separate subsystems from System V UNIX: messages, semaphores, and shared memory. Here we describe these subsystems and their integration into the Locus architecture. In summary, this dissertation provides four contributions to the field: (1) It presents a time-window based protocol for DSM and demonstrates the utility of the time-window in the design. (2) It provides an empirical evaluation of DSM performance using a working prototype. (3) It describes DSM's effects and interactions with the operating system and the underlying machine architecture. It also presents general principles that could be used in the design and implementation of future DSM architectures. (4) It presents new extensions to synchronization and communication mechanisms in an integrated distributed OS (Locus) and related design and implementation experiences.