Evaluation 9.txt

Yu Xu (yxu@cs.ucsd.edu)
Thu, 4 May 2000 00:14:27 -0700

Evaluation of "The Distributed V Kernel and its Performance for Diskless Workstations"

The distributed V kernel is a message-oriented kernel that provides uniform local and network interprocess communication. It's primarily used in a diskless workstations connected by a high-speed local network to a set of file servers. V system adopts a synchronous "request-response" model of message-passing and data transfer. Many small processes communicating by messages.
The main advantages of diskless workstations are: lower hardware cost per workstation; simpler maintenance and economies of scale with shared file server; little or no memory or processing overhead; fewer problems with replication, consistency and distribution of files.
There are several features in the implementation in V which are central to the efficient operation of the kernel.
1. Remote operations are implemented directly in the kernel instead of through a process-level network server.
2. Interkernel packets use the "raw" Ethernet data link level.
3. The reply message serves as an acknowledgment as well as carrying the reply message data.
4. There is only a single acknowledgment when the transfer is complete.
5. File page-level transfers require the minimal number of packets.
V kernel provides a rich set of message and data transfer primitives. These primitives proved efficient communication of small amounts and large amounts of data. Particularly, MoveTo and MoveFrom provides a means of transferring a large amount of data between remote processes with a minimal time increase over the time f for transferring the same amount of data a in raw network datagrams.
V kernel uses a global naming space for specifying processes. It's very efficient to determine whether a process is local or remote. In remote message implementation, V use alien process descriptor to represent the remote sending process using a standard kernel process descriptor. It supports the claim that reliable message transmission is built immediately on top of an unreliable datagram protocol with the minimal number of network packets in the normal case.
V system use read-ahead and write-behind to reduce the effect of disk latency to deal with sequential file access. As for program loading MoveTo and MoveFrom provide an efficient mechanism.
Compared to LOCUS, V is smaller, more real-time oriented, but doesn't provide all the functionality of the LOCUS kernel. Compared to Accent, V doesn't need an underlying transport protocol for reliable delivery.
To achieve efficiency, some solution in V kernel are not straightforward. For example, there are apparent asymmetry and awkwardness of in the message primitives.
V is a very special operating system in that it is primarily used in diskless workstation environment. It looks like it's the pioneer of the recent NC concept.

Evaluation of " The Sprite network Operating System"

Sprite is a Unix compatible network operating system supporting multiprocessor workstations environment. The three technologies which are driving forces for building Sprite are: networks, large memories, and multiprocessor.
Sprite provides three overall features: sharing, flexibility, and performance.
Sprite provides sharing at several levels: tightly coupled processes on the same machine can share memory; processes everywhere can share files; and users may share processing power using the process migration mechanism.
Sprite provides flexibility in the form of prefix tables, which allows user-transparent reconfiguration of the file system and in the form of backing files, which allow workstations to share backing storage.
Sprite provides high performance by using a special-purpose RPC protocol for communication between kernels and by using physical memory as a flexible cache for both programs and files.

Process Issues:
Unlike early versions of Unix, Sprite provides simple form of memory sharing between parent process and child process. Sprite guarantees that processes behave the same whether migrated or not. This is achieved by designating a home machine for each process and forwarding location-dependent kernel calls to the process's home machine. Sprite's basic kernel structure has two features, which support multiprocessor and network operation: multithreaded kernel and kernel-to-kernel RPC facility. Sprite's RPC transport users two techniques to gain efficiency: implicitly acknowledgments and fragmentation.

File system and Virtual memory Issues:
Sprite support transparent network file system. A single file hierarchy is uniformly accessible to all workstations. To system administrators, the file system is a collection of domains. Prefix table approach is quite flexible and efficient at locating a file. As for managing file data, Sprint uses large caches of recently used file blocks stored in the main memories of both clients and servers. Also, it uses a delayed-write approach to handle file writes. Sprint guarantee cache consistence in a way that is transparent to their users
To better use large physical memories and network, there are three aspects of virtual memory implementation where Sprite deviates from Unix: backing storage, sticky segments, double caching.

As a network operating system, Sprite has two attractive highlights: truly transparent file system and process migration. Usually reliability and availability are quite important goals for a network operating system. Although good transparent file system and process migration mechanism is helpful to achieve these goals, they don't automatically guarantee that. I don't find there are any attention given to these issues in the paper. Also, Sprite assumes a secure environment in which each node trusts each other. So protection and security which are very important issues in operating system are not found in Sprint.