09-10-2010, 12:31 PM
This article is presented by:
Rex di Bona
Basser Department of Computer Science
University of Sydney
Data Movement in the
Grasshopper Operating System
Grasshopper Operating System
INTRODUCTION
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.
We answer the following questions: Do the methods used to move data on nonpersistent systems translate to persistent systems, or are other methods more applicable? Are there features of persistent systems that, when exploited, make the task of data movement easier? Are there requirements of persistent systems that, when satisfied, complicate the task of data movement? This thesis examines the two fundamental areas of data movement on modern computer systems: the movement of data on a single node, and the movement of data between nodes. On a single node, data moves between permanent storage, usually implemented as disk drives, and volatile storage, usually implemented as the RAM of the machine. Between multiple nodes, data moves as a series of packets over some form of network. The fundamental differences between persistent and non-persistent systems are outlined. How these affect the choices available for the implementation of data movement is investigated. This thesis presents solutions to the problems of data movement in persistent systems that capitalise on the advantages of persistence, and also satisfy the additional requirements of persistent systems. The major contribution of this thesis is the design of three new protocols for data movement, one for data movement between main memory and backing store, and two protocols that together provide efficient, reliable and causal movement of data between networked nodes. The first protocol is implemented as a stackable module protocol which allows manipulation of pages between disk storage and main memory. The second is an efficient and reliable peer to peer network protocol that, combined with the third, a routing protocol, allows causal message delivery.
For more information about this article,please follow the link:
http://www.googleurl?sa=t&source=web&cd=...Ftr501.pdf&ei=VRKwTN2aJYj0vQPerOHYBg&usg=AFQjCNFRNTI7RVI5Sep_6X3uKtoQwo6wDg