Report Number: CS-TR-86-1134
Institution: Stanford University, Department of Computer Science
Title: UIO: A Uniform I/O System Interface for Distributed Systems
Author: Cheriton, David R.
Date: November 1986
Abstract: A uniforrn I/O interface allows programs to be written relatively independent of specific I/O services and yet work with a wide variety of the I/O services available in a distributed environment. Ideally, the interface provides this uniform access without excessive complexity in the interface or loss of performance. However, a uniform interface does not arise from careful design of individual system interfaces alone; it requires explicit definition. In this paper, we describe the UIO (uniform I/O) system interface that has been used for the past five years in the V distributed operating systems, focusing on the key design issues. This interface provides several extensions beyond the I/O interface of UNIX, including support for record I/O, locking, atomic transactions and replications as well as attributes that indicate whether optional semantics and operations are available. We also describe our experience in using and implementing this interface with a variety of different I/O services plus the performance of both local and network I/O. We conclude that the UIO interface provides a uniform I/O system interface with significant functionality, wide applicability and no significant performance penalty.