CSE221 V kernel and Sprite

Andreas Anagnostatos (aanagnos@cs.ucsd.edu)
Thu, 04 May 2000 02:19:37 -0700

D. R. Cheriton and W. Zwaenepoel, "The Distributed V Kernel and its
Performance for Diskless Workstations," Proc. Ninth Symposium on
Operating Systems Principles, Operating Systems Review, 17(5), pp.
129-140, November 1983.

The paper describes the design and performance of the V Kernel, a
message-oriented kernel for a distributed network consisting of diskless
workstations and file servers. The V kernel uses general purpose
communication primitives such as Send(message, pid) and Reply(message,
pid) for interprocess communication whether local or remote. The
performance simulations show that the communication overhead is kept at
a minimum, only slightly higher than the lower bound imposed by the
given hardware and network capabilities. The paper also points out that
the performance limitations are set according to the processor power
rather than the network bandwidth. Network bandwidth comes into play
when considering multiple data access from a large collection of
workstations sharing the same channel.

John K. Ousterhout, Andrew R. Cerenson, Frederick Douglis, Michael N.
Nelson, and Brent B. Welch, "The Sprite Network Operating System."

Sprite is an operating system designed to take advantage of high-speed
local networks, large amounts of physical memory and multiprocessor
systems. To achieve high performance and network transparency, Sprite
utilizes memory for caching file data on both clients and servers, has a
distributed file system which can be dynamically altered using prefix
tables, allows remote procedure calls between kernels on different
machines, supports memory sharing for communication performance, and
transparently uses process migration to exploit the otherwise idle
computing power of other nodes in the network. Some interesting features
include a multithreaded kernel, guaranteed cache consistency (at the
expense of performance), and sticky segments which preserve program
pages in memory after the program has exited in order to start it
quickly in the event that the same program is invoked again.