Input/Output Control System

Input/Output Control System (IOCS) is any of several packages on early IBM entry-level and mainframe computers that provided low level access to records on peripheral equipment. IOCS provides functionality similar to 1960s packages from other vendors, e.g., File Control Processor (FCP)[1] in RCA 3301 Realcom Operating System, GEFRC[2] in GECOS, and to the later Record Management Services[3] (RMS) in DEC VAX/VMS (later OpenVMS.)

Computers in the 1950s and 1960s typically dealt with data that were organized into records either by the nature of the media, e.g., lines of print, or by application requirements. IOCS was intended to allow Assembler language programmers to read and write records without having to worry about the details of the various devices or the blocking of logical records into physical records. IOCS provided the run time I/O support for several compilers.

Computers of this era often did not have operating systems in the modern sense. Application programs called IOCS routines in a resident monitor, or included macro instructions that expanded to IOCS routines.

In some cases[4] IOCS was designed to coexist with Simultaneous Peripheral Operations On-line (SPOOL)[5] software.

The level of access is at a higher level than that provided by BIOS and BDOS in the PC world; in fact, IOCS has no support for character-oriented I/O, primarily because the systems for which it was designed didn't support it. Versions of IOCS existed for the IBM 705 III,[6] 1401/1440/1460, 1410/7010, 7070/7072/7074,[7][8][9] 7080[10] and 7040/7044/7090/7094.[11] These systems heavily influenced the data management components of the operating systems[12] for the System/360; the name IOCS was carried through in DOS/360 through z/VSE,[13] with a distinction between Logical IOCS (LIOCS)[14] and Physical IOCS (PIOCS).[14]

Although some technical details and nomenclature are different among the various IOCS packages, the fundamental concepts are the same. For concreteness, the discussion and examples in this article will mostly be in terms of 7070 IOCS.[7][8] Also, multiple continuation lines will be shown as ellipses (...) when they don't serve to illustrate the narrative.

  1. ^ Cite error: The named reference FCP_1964 was invoked but never defined (see the help page).
  2. ^ Cite error: The named reference GEFRC was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference RMS_1979 was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference J28-6047 was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference SPOOL was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference C28-6109 was invoked but never defined (see the help page).
  7. ^ a b Cite error: The named reference C28-6175 was invoked but never defined (see the help page).
  8. ^ a b Cite error: The named reference C28-6272 was invoked but never defined (see the help page).
  9. ^ Cite error: The named reference C28-6119_1961 was invoked but never defined (see the help page).
  10. ^ Cite error: The named reference C28-6237_1962 was invoked but never defined (see the help page).
  11. ^ Cite error: The named reference C28-6100 was invoked but never defined (see the help page).
  12. ^ Cite error: The named reference C28-6535 was invoked but never defined (see the help page).
  13. ^ Cite error: The named reference SC34-2709_2015 was invoked but never defined (see the help page).
  14. ^ a b Cite error: The named reference GC24-S037-12 was invoked but never defined (see the help page).