Jump to content

Input/Output Supervisor

From Alfawiki
Input/Output Supervisor (IOS)
Company typeSoftware module
IndustryComputer software
ProductsI/O management for IBM mainframe OS/360 and successors

The Input/Output Supervisor (IOS) is a module within the control program of the IBM mainframe OS/360 and its subsequent systems. It is responsible for issuing privileged I/O commands and overseeing I/O interrupts for applications that request device operations until these are fully executed.

Purposes

IOS primarily fulfills two roles:

  • Executing channel programs to process I/O requests
  • Handling I/O interrupts generated by channel programs or operator interventions

Program sections

IOS consists of two main program segments (CSECTs) designed to handle I/O requests and interrupts:

  • The execute channel program supervisor (known as EXCP in PCP, MFT/MFT-II, and MVT; EXCP/EXCPVR in SVS; and STARTIO in MVS/370 and subsequent releases)
  • The input/output interrupt supervisor

Both segments reside in main memory to facilitate the standard execution of channel programs.

Additional components, termed Error Recovery Procedures (ERPs), are typically stored externally and loaded into main memory when needed to recover from irregular channel program executions. In earlier OS versions, these ERPs were loaded into IOS's "transient area"; however, from post-MVT versions onward, they are placed within the pageable linkpack area (PLPA) to allow demand paging.

An exception exists for the ERP related to direct-access storage devices, which remains permanently resident. This ensures error handling on the IPL volume and other vital datasets.

Multiprogramming

Designed with multiprogramming capabilities, IOS manages simultaneous operations across multiple I/O channels, control units, and devices. Even the simplest OS variant, PCP—which supports only a single user task—channels all I/O device activities through a limited set of privileged instructions alongside a single I/O interrupt. IOS synchronously multiplexes numerous device operations into these privileged instructions while asynchronously demultiplexing their corresponding interrupts, maintaining the appearance of synchronous processing from the application's perspective.

In essence, IOS functions as a dedicated hypervisor embedded within the operating system itself, supervising I/O instructions and interrupt handling without existing as an independent component. This form of hypervisor-like management is distinctive to IBM mainframe I/O processing.

Multiprocessing

Starting with MVS/370 and later OS iterations, IOS adopts a multiprocessing architecture that efficiently harnesses all available processors—supporting up to two CPUs in MVS/370 and scaling up to sixteen in later models (with IBM supporting twelve processors and Amdahl supporting sixteen). To maximize this multiprocessing potential, IOS's multiprogramming framework was segmented into smaller executable units, particularly those managed by SRBs.

Initiation/Completion

IOS functions indirectly by being triggered through "branch entries" to start I/O requests and through "interrupt handlers" to finalize them.

References