Operating system support for persistent and recoverable computations

The principal tasks of an operating system are to manage the resources of the system, maintain the permanent data of the system and to provide an efficient environment for the execution of user programs. In conventional operating systems these tasks are centred around the file system as the repository of permanent data and virtual memory as the execution environment. Persistent systems offer an alternative view in which the lifetime of data is separated from the access mechanism. In a persistent system all data, regardless of its lifetime, is created and manipulated in a uniform manner. When persistence is included as the basic abstraction of an operating system, many of the inadequacies of existing operating systems are eliminated and the tasks of an application developer are greatly simplified. This results in major improvements both in terms of program development time and execution efficiency. Grasshopper, a persistent operating system being developed by the authors, provides a testbed for the demonstration of these claims.

[1]  Roy H. Campbell,et al.  Choices (class hierarchical open interface for custom embedded systems) , 1987, OPSR.

[2]  David B. Johnson,et al.  Recovery in Distributed Systems Using Optimistic Message Logging and Checkpointing , 1988, J. Algorithms.

[3]  Peter W. Madany,et al.  Persistence in the Spring system , 1993, Proceedings Third International Workshop on Object Orientation in Operating Systems.

[4]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[5]  David S. Munro,et al.  A Layered Persistent Architecture for Napier88 , 1990 .

[6]  R. G. G. Cattell,et al.  Object operations benchmark , 1992, TODS.

[7]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[8]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[9]  Joachim W. Schmidt,et al.  Some high level language constructs for data of type relation , 1977, TODS.

[10]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[11]  Michael Stonebraker,et al.  Virtual memory transaction management , 1984, OPSR.

[12]  John Rosenberg,et al.  Grasshopper: An Orthogonally Persistent Operating System , 1994, Comput. Syst..

[13]  Michael Wayne Young Exporting a user interface to memory management from a communication-oriented operating system , 1989 .

[14]  Malcolm P. Atkinson,et al.  PS-algol: an algol with a persistent heap , 1982, SIGP.

[15]  Robert E. Strom,et al.  Optimistic recovery in distributed systems , 1985, TOCS.

[16]  Frank G. Soltis Inside the As/400 , 1996 .

[17]  Roy H. Campbell,et al.  Choices, frameworks and refinement , 1991, Proceedings 1991 International Workshop on Object Orientation in Operating Systems.

[18]  Marc Shapiro,et al.  Persistence and Migration for C++ Objects , 1989, ECOOP.

[19]  Frans Henskens,et al.  An examination of operating system support for persistent object systems , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[20]  Jiannong Cao,et al.  Causality considerations in distributed, persistent operating systems , 1994 .

[21]  Alan Dearle,et al.  On page-based optimistic process checkpointing , 1995, Proceedings of International Workshop on Object Orientation in Operating Systems.

[22]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[23]  John Rosenberg,et al.  Security and Persistence , 1990, Workshops in Computing.

[24]  Michael J. Carey,et al.  Implementing Persistence in E , 1989, POS.

[25]  John Rosenberg,et al.  The grand unified theory of address spaces , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[26]  Roger M. Needham,et al.  On the duality of operating system structures , 1979, OPSR.

[27]  Claude Kaiser,et al.  Overview of the CHORUS ® Distributed Operating Systems , 1991 .

[28]  David Maier,et al.  Persistent Object Systems , 1995, Workshops in Computing.

[29]  John Rosenberg,et al.  Protection in Grasshopper: A Persistent Operating System , 1994, POS.

[30]  Irving L. Traiger Virtual memory management for database systems , 1982, OPSR.

[31]  Peter Buneman,et al.  Proceedings of 3rd International Workshop on Database Programming Languages , 1991 .

[32]  Colin J. Fidge,et al.  Timestamps in Message-Passing Systems That Preserve the Partial Ordering , 1988 .

[33]  Steven Sinofsky,et al.  Managing Persistent Data with Mneme: Designing a Reliable, Shared Object Interface , 1988, OODBS.

[34]  John Rosenberg,et al.  A Secure RISC-based Architecture Supporting Data Persistence , 1990, Security and Persistence.

[35]  David R. Cheriton,et al.  Application-controlled physical memory using external page-cache management , 1992, ASPLOS V.

[36]  William A. Wulf,et al.  HYDRA/C.Mmp, An Experimental Computer System , 1981 .

[37]  Richard C. H. Connor,et al.  The Napier Type System , 1989, POS.

[38]  John Rosenberg,et al.  MONADS-PC - a capability-based workstation to support software engineering , 1985 .

[39]  James Leslie Keedy,et al.  Persistent protected modules and persistent processes as the basis for a more secure operating system , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[40]  Partha Dasgupta,et al.  The Clouds distributed operating system: functional description, implementation details and related work , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[41]  Marc Shapiro,et al.  Generic virtual memory management for operating system kernels , 1989, SOSP '89.