UIO: A Uniform I/O System Interface for Distributed Systems
Abstract:
A uniform IO interface allows programs to be written relatively independent of specific IO services and yet work with a wide variety of the IO 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 IO system interface that has been used for the past five years in the V distributed operating system, focusing on the key design issues. This interface provides several extensions beyond the IO interface of UNIX, including support for record IO, locking, atomic transactions and replication 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 IO services plus the performance of both local and network IO. We conclude that the UIO interface provides a uniform IO system interface with significant functionality, wide applicability and no significant performance penalty.