UIO: a uniform I/O system interface for distributed systems
- 5 January 1987
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 5 (1) , 12-46
- https://doi.org/10.1145/7351.7353
Abstract
A uniform I/O interface allows programs to be written relatively independently 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, the UIO (uniform I/O) system interface that has been used for the past five years in the V distributed operating system is described, with the focus 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 replication, as well as attributes that indicate whether optional semantics and operations are available. Experience in using and implementing this interface with a variety of different I/O services is described, along with the performance of both local and network I/O. It is concluded that the UIO interface provides a uniform I/O system interface with significant functionality, wide applicability, and no significant performance penalty.Keywords
This publication has 13 references indexed in Scilit:
- The integration of virtual memory management and interprocess communication in AccentACM Transactions on Computer Systems, 1986
- A trace-driven analysis of the UNIX 4.2 BSD file systemPublished by Association for Computing Machinery (ACM) ,1985
- The Alpine file systemACM Transactions on Computer Systems, 1985
- The Larch Family of Specification LanguagesIEEE Software, 1985
- Distributed process groups in the V KernelACM Transactions on Computer Systems, 1985
- Synchronizing shared abstract typesACM Transactions on Computer Systems, 1984
- Implementing remote procedure callsACM Transactions on Computer Systems, 1984
- UNIX Time-Sharing System: UNIX ImplementationBell System Technical Journal, 1978
- The notions of consistency and predicate locks in a database systemCommunications of the ACM, 1976
- The UNIX time-sharing systemCommunications of the ACM, 1974