Citation: D.R. Cheriton and W. Zwaenepoel, "The Distributed V Kernel and its Performance for Diskless Workstations", Proceedings of the Ninth ACM Symposium on Operating Systems Principles, October 10-13, 1983, pp. 128-139. * Summary The distributed V kernel is a message-oriented kernel that provides uniform local and network IPC. The performance ofhe kernel is evaluated, with emphasis on the cost of network file access. The results show that over a local network, diskless workstations can access remote files with minimal performance penalty and the V message facility can be used to access remote files at comparable cost to any well-tuned file access protocol. * Diskless Workstations The advantages of diskless workstations are: - lower hardware cost per workstation - simpler maintenance and economies of scale with shared file servers - little or no memory or processing overhead on the workstation for file system and disk handling - fewer problems with replication, consistency, and distribution of files The advantages are all provided at the cost of performing all file access over the network. * V Kernel IPC The basic model is many small processes communicating by messages. Processes are identified by globally unique pids, and communication consists of short fixed-length messages. All messages have an associated reply message, as well as a data transfer operation for moving larger amounts of data between processes. The inspiration for this design was provided by the Thoth and Verex kernels, which have the following motivations. (1) synchronous request-response message communication makes programming easy, as in RPC (2) the distinction between small messages and large data transfers ties in well with an observed usage pattern: IPC consisting of small transfers of control information with occasional bulk data transfer (3) synchronous communication along with small, fixed-size messages reduce queuing and buffering problems in the kernel since only buffer for the small messages are required, while large data transfers can be made directly between address spaces * Implementation Issues Several implementation aspects are central to efficient operation of the V kernel, including: (1) remote operations are implemented directly in the kernel, instead of through a process-level network server. this reduces copying and context switching. (2) interkernel packets use raw Ethernet format, optimizing performance for the local area (3) the synchronous request-reply model is exploited to build reliable message transmission on top of unreliable datagram service (4) pids contain a host specification so the kernel can quickly determine whether a process is local or remote, and in the latter case on which machine the process resides (5) large data transfers do not use per-packet acks, only a single ack for when the transfer completes (6) file page-level transfers require minimual number of packets because of the ability to append short segments to messages ReceiveWithSegment and ReplyWithSegment are optimization provided to handle file access. ReceiveWithSegment can be use by a server during a client write operation, and ReplyWithSegment is used by servers for client reads. * Performance The authors introduce the concept of network penalty, which is the time required to transfer n bytes from the memory of one machine to the memory of another machine. The performance of small send-receive-reply sequences with processes typically costs slightly more than the network penalty over the time for a local process. However, remote MoveTo and MoveFrom incur less than the network penalty in additional time, indicating some overlapping of client and server processing. In order to guage how much message traffic the network can support, a pair of workstations communicating via send-receive-reply at maximum speed was measured to only consume 13% of the 3Mb Ethernet and 4% of the 10Mb Ethernet. For remote page-level access to files (not including the disk access), the results show that the additional cost over local access is mostly due to the network penalty, but the overall difference is still much less than the actual cost of physical disk access. The argument is made that for applications that do sequential file access, the use of a streaming protocol could at most improve the performance of file access by 15%. To optimize loading programs stored on a remote system, the V kernel loads programs in two read operations. The first read accesses the program header information, while the second read copies the program code and data directly into the newly created process address space.