Open VMS Operating System Concepts, Second Edition

Chapter 3 introduced the importance of the I/O subsystem, and Figure 3.2 showed that a program is either executing, performing an I/O operation, or waiting. A time-sharing system gives each user the impression that he or she has exclusive access to the system because the I/O of one user process overlaps the execution of another. Time-sharing is economical when equipment can be distributed among several users, but to effectively time-share, the I/O subsystem must have certain characteristics. In particular, it must be able to preempt a user process in order to react to I/O requests from other users. Even a batch multiprogramming system must have this capability. Furthermore, process preemption implies that the I/O subsystem can even preempt itself when necessary. Another requirement of the I/O subsystem is that it perform its functions as quickly as possible so that the user's program can continue processing. In an interactive system, this is especially important so that the keyboard response time is kept to a minimum. Chapter 3 dealt only with the process scheduling mechanisms inherent in the operating system. This chapter will complete that picture by describing I/O scheduling.
It is difficult to generalize I/O operations independently of operating systems and hardware support because each manufacturer has developed its own architecture for both the computer and the I/O devices. Nevertheless, a few generic observations can be made. The user's process should have the ability to access device's symbolically, without having to refer to a device's physical name, and the user...