The method of input/output control would have been a major compatibility problem were it not for the recognition of the distinction between logical and physical structures. Small machines use CPU hardware for I/O functions; large machines demand several independent channels, capable of operating concurrently with the CPU and with each other. Such largemachine channels often each contain more components than an entire small system.
Standard interface. The generalization of the communication between the central processing unit and an input/output device has yielded a channel which presents a standard interface to the device control unit. This interface was achieved by making the channel design transparent, passing not only data, but also control and status information between storage and device. AU functions peculiar to the device are placed in the control unit. The interface requires a total of 29 lines and is made independent of time through the use of interlocking signals.
Implementation. In small models, the flow of data and control information is time-shared between the CPU and the channel function. When a byte of data appears from an I/O device, the CPU is seized, dumped, used and restored. Although the maximum data rate handled is lower (and the interference with CPU computation higher) than with separate hardware, the function is identical. Once the channel becomes a conceptual entity, using time-shared hardware, one may have a large number of channels at virtually no cost save the core storage space for the governing control words. This kind of multiplex channel embodies up to 256 conceptual channels, all of which may be concurrently operating, when the total data rate is within acceptable limits. The multiplexing constitutes a major advance for communications-
Channels provide the data path and control for I/O devices as they communicate with the CPU. In general, channels operate asynchronously with the CPU and, in some cases, a single data path is made up of several subchannels. When this is the case, the single data path is shared by several low-speed devices, for example, card readers, punches, printers, and terminals. This channel is called a multiplexor channel. Channels that are not made up of several such subchannels can operate at higher speed than the multiplexor channels and are called selector channels. In every case, the amount of data that comes into the channel in parallel from an I/O device is a byte (i.e., eight bits). All channels or subchannels operate the same and respond to the same I/O instructions and commands.
Each I/O device is connected to one or more channels by an I/O interface. This I/O interface allows attachment of present and future I/O devices without altering the instruction set or channel function. Control units are used where necessary to match the internal connections of the I/O device to the interface. Flexibility is enhanced by optional access to a control unit or device from either of two channels.
The ability to allow sharing and mutual exclusivity to a resource is accomplished more by the programmer than by the operating system. The operating system provides two microinstructions, enqueue (ENQ) and dequeue (DEQ) which allow the programmer to create a queue that enable tasks to share resources in a “serially reusable” model. For example, one might look at several tasks which must update the same table. Each task is given exclusive access to the table and must complete its work before another task is given access. The programmer may create a queue to limit access. The queue for the given resource has a control block which contains an indicator which can be set to declare the resource as busy.
OS two microinstructions in sharing resources Allow the programmer to create a queue that enable task to share resources in a “serially reusable” model.
•
ENQUEUE (ENQ) • DEQUEUE (DEQ
Allow the programmer to create a queue that enable task to share resources in a “serially reusable” model.
The ability to allow sharing and mutual exclusivity to a resource is accomplished more by the programmer than by the operating system. The operating system provides two microinstructions, enqueue (ENQ) and dequeue (DEQ) which allow the programmer to create a queue that enable tasks to share resources in a “serially reusable” model. For example, one might look at several tasks which must update the same table. Each task is given exclusive access to the table and must complete its work before another task is given access. The programmer may create a queue to limit access. The queue for the given resource has a control block which contains an indicator which can be set to declare the