Computer environments have changed dramatically in recent years, from the large centralised mainframe to the networked collections of workstation style machines. The power of workstations is increasing, but the common paradigms used to manage data on these workstations are still fundamentally the same as those employed by the earliest machines.
Persistent systems adopt a radically different approach. Unlike conventional systems which clearly distinguish between short-term computational storage and long-term file storage, persistent systems abstract over the longevity of data and provide a single abstraction of storage.
This thesis examines the issues involved with the movement of data in persistent systems. We are concerned with the differences in the requirements placed on the data movement layer by persistent and non-persistent operating systems. These differences are considered in relation to the Grasshopper operating system.
This thesis investigates the movement of data in the Grasshopper Operating System, and describes approaches to allow us to provide the functionality required by the operating system. Grasshopper offers the user a seamlessly networked environment, offering persistence and data security unparalleled by conventional workstation environments. To support this environment the paradigms employed in the movement of data are radically different from those employed by conventional systems. There is no concept of files. Processes and address spaces become orthogonal. The network is used to connect machines, and is not an entity in itself.
We shall show that the adoption of a persistent environment allows us a fundamental advantage over conventional systems in the movement of data through the storage hierarchy: from disk to memory, and from memory on one node to memory on another node. We shall investigate the hurdles that arise through the use of persistence, and show how each hurdle may be overcome.