Physical memory management in a network operating system

The dissertation develops and measures methods of using large main memories to provide high performance in a network operating system. The dissertation covers three areas: file caching, virtual memory, and the interaction between the two. The first part of the dissertation presents results obtaining through the development of the Sprite file system, which uses large main-memory file caches to achieve high performance. A simple cache consistency mechanism permits files to be shared by multiple clients without danger of stale data. Benchmark programs indicate that client caches allow diskless Sprite workstations to perform within 0-8% of workstations with disks. In addition, client caching reduces server loading by 50% and network traffic by 75%. In addition to demonstrating the performance advantages of client caching, this dissertation also shows the advantage of writing policies that delay the writing of blocks from client caches to server caches and from server caches to disk. The second part of this dissertation looks at the interaction between the virtual memory system and the file system. It describes a mechanism that has been implemented as part of Sprite that allows the file system cache to vary in size in response to the needs of the virtual memory system and the file system. This is done by having the file system of each machine negotiate with the virtual memory system over physical memory use. The last part of this dissertation focuses on copy-on-write mechanisms for efficient process creation. It describes a simple copy-on-write mechanism that has been implemented as part of Sprite which is a combination of copy-on-write (COW) and copy-on-reference (COR). The COW-COR mechanism can potentially improve fork performance over copy-on-fork schemes from 10 to 100 times if many page copies are avoided. A pure COW scheme would eliminate 10 to 20 percent of the page copies required under COW-COR and would provide up to a 20% improvement in fork performance over COW-COR.

[1]  Yogen K. Dalal,et al.  Pilot: an operating system for a personal computer , 1980, CACM.

[2]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[3]  A. J. Smith,et al.  Disk cache - Miss ratio analysis and design considerations , 1983, Perform. Evaluation.

[4]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[5]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

[6]  Richard F. Rashid,et al.  The Integration of Virtual Memory Management and Interprocess Communication in Accent , 1986, ACM Trans. Comput. Syst..

[7]  Daniel L. Murphy Storage organization and management in TENEX , 1972, AFIPS '72 (Fall, part I).

[8]  Mahadev Satyanarayanan,et al.  Andrew: a distributed personal computing environment , 1986, CACM.

[9]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, CACM.

[10]  Daniel G. Bobrow,et al.  TENEX, a paged time sharing system for the PDP - 10 , 1972, CACM.

[11]  James R. Larus,et al.  SPUR: A VLSI Multiprocessor Workstation , 1985 .

[12]  David R. Cheriton,et al.  Performance of the V storage server: a preliminary report , 1985, CSC '85.

[13]  Paul J. Leach,et al.  The file system of an integrated local network , 1985, CSC '85.

[14]  Rick Floyd Short-Term File Reference Patterns in a UNIX Environment, , 1986 .

[15]  Paul J. Leach,et al.  The Architecture of an Integrated Local Network , 1983, IEEE J. Sel. Areas Commun..

[16]  V. Rich Personal communication , 1989, Nature.

[17]  Riccardo Gusella The Analysis of Diskless Workstation Traffic on an Ethernet , 1987 .

[18]  J. Howard Et El,et al.  Scale and performance in a distributed file system , 1988 .

[19]  Alan Jay Smith,et al.  Efficient Analysis of Caching Systems , 1987 .

[20]  Bruce Walker,et al.  The LOCUS distributed operating system , 1983, SOSP '83.

[21]  George G. Robertson,et al.  Accent: A communication oriented network operating system kernel , 1981, SOSP.

[22]  Jack B. Dennis,et al.  Virtual memory, processes, and sharing in Multics , 1967, SOSP 1967.

[23]  Mahadev Satyanarayanan,et al.  The ITC distributed file system: principles and design , 1985, SOSP 1985.

[24]  David K. Gifford,et al.  A caching file system for a programmer's workstation , 1985, SOSP '85.

[25]  L. F. Cabrera,et al.  QuickSilver distributed file services: an architecture for horizontal growth , 1988, [1988] Proceedings. 2nd IEEE Conference on Computer Workstations.

[26]  Robert C. Daley,et al.  The Multics virtual memory , 1972, Commun. ACM.

[27]  Pervaze Akhtar A Replacement for Berkeley Memory Management , 1987, USENIX Summer.

[28]  Willy Zwaenepoel,et al.  File access performance of diskless workstations , 1986, TOCS.

[29]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[30]  Edward W. Sznyter,et al.  A New Virtual Memory Implementation for UNIX , 1986, USENIX Summer.

[31]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, IEEE Trans. Computers.

[32]  John K. Ousterhout,et al.  Prefix Tables: A Simple Mechanism for Locating Files in a Distributed System , 1985, ICDCS.

[33]  Brent B. Welch,et al.  The Sprite Remote Procedure Call System , 1986 .

[34]  Dan Walsh,et al.  Design and implementation of the Sun network filesystem , 1985, USENIX Conference Proceedings.