Abstract
The virtual memory abstraction aids in the design and implementation of portable aplications. Virtual memory allows applications to execute in an arbitrarily large memory space, independent from the physical memory size of the underlying machine.
Conventional virtual memory operating systems use magnetic disks for backing storage. Magnetic disks provide high data transfer rates, large storage capacity, and the ability to randomly access data, making them an appealing backing storage medium. However, the average seek time of a magnetic disk is several orders of magnitude slower than memory access times. Recent advances in CPU speeds, network banwidth, and memory sizes have made new types of backing storage with imroved performance and greater functionality feasible.
This thesis invesigates a new model for virtual memory in which dedicated, large-memory machines provide backing storage to virtual memory systems executing on a set of client machines in a distributed envionment. Dedicated memory servers provide clients with a large, shared memory resource. Each memory server machine is capable of supporting heterogeneous client machines executing a wide variety of operating systems. Clients that exceed the capacity of their local memory access remote memory servers across a high-speed netowrk to obtain additional storage space. Clients use a highly efficient, special purpose, reliable, data streaming, network architecture independent communication protocol to transfer data to and from the memory server. To reduce the delay associated with accessing remote memory, memory servers use efficient algorithms and data structures to retrieve data, on average, in constant time. In addition to providing a highly-efficient backing store, the model allows data sharing between clients and improves file system performance by offloading the file server.
This thesis also describes the design and implementation of a prototype system. Measurements obtained from the prototype implementation clearly demonstrate the viability of systems based on the model. The prototype shows that remote memory systems offer performance competitive with, and in some cases better than, existing virtual memory systems. Moreover, rapid advances in network bandwidth, CPU speeds, and memory sizes make the model an attractive basis for the design of future distributed systems.