Input/Output Control System

Last updated

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.)

Contents

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.

Structure

An IOCS program must do three things, each discussed in a subsection below.

For the 7070 these are done using 7070 Autocoder [15] [16] declarative statements and macro instructions.

Identify required IOCS services

IOCS supported several classes of I/O equipment

Some services offered by IOCS were not needed by all applications, e.g., checkpoints, label processing. An IOCS program must identify the particular devices types and services it uses. A 7070 IOCS program must specify one or more DIOCS [7] :16–19 [15] :22–25 statements: [lower-alpha 2]

<nowiki/>               11   22      6        56   01      GENERAL   DIOCS''general parameters''      TAPE      DIOCSD729,''tape parameters''      DISK      DIOCSD1301,''disk parameters''      END       DIOCS

These declarative statements identify index registers reserved for the use of IOCS, indicate channels used, indicate whether the program is to coexist with SPOOL and provide processing options. The END DIOCS statement causes the assembly of IOCS unless a preassembled version is requested. The first (general) form is omitted when the D729 form is used.

In some other IOCS packages similar functions are provided by control cards.

Create control blocks for individual files

An IOCS program must create a control block for each file, specifying information unique to the file. For 7070 IOCS these are entries in the File Specification Table for tape files, each of which is generated by a DTF [7] :19–26 [15] :26–28 statement, or separate control blocks generated by DDF [8] :31–37 [15] :29–30 or DUF [7] :44–47 [15] :31–33 statements.

              11   22      6        56   01                DTF  OUT      FCHANNEL       2                ...  ...      DAFILE    DDF      IODEVICE       5      DREFMODE       4                ...  ...                 DUF  CONSFILE,1,4,CARDRDW,CARDIX,CONSEOF,CONSERR 

In some other IOCS packages similar functions are provided by control cards.

Process files

The above code defines a tape file on channel 1 called OUT, a sequential 1301/1302 disk file called DAFILE and a card file called CONSFILE.

Any IOCS program must specify the actions that it wishes to perform. In 7070 IOCS this is done with processing macros. [lower-alpha 2]

              11   22      6        56   01                OPEN CONSFILE,OUT      LOOP      GET  CONSFILE                PUT  OUT                B    LOOP      CONSEOF   CLOSECONSFILE,OUT 

In some other IOCS packages similar functions are provided by explicit subroutine calls.

See also

Notes

  1. IBM did not support the 90-column cards used by UNIVAC
  2. 1 2 Note that operands in 7070 Autocoder always start in column 21.

Related Research Articles

Computerized batch processing is the running of "jobs that can run without end user interaction, or can be scheduled to run as resources permit."

A direct-access storage device (DASD) is a secondary storage device in which "each physical record has a discrete location and a unique address". The term was coined by IBM to describe devices that allowed random access to data, the main examples being drum memory and hard disk drives. Later, optical disc drives and flash memory units are also classified as DASD.

BOS/360

BOS/360 was an early IBM System/360 operating system.

IBM 700/7000 series Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

Job Control Language (JCL) is a name for scripting languages used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem.

Spooling

In computing, spooling is a specialized form of multi-programming for the purpose of copying data between different devices. In contemporary systems, it is usually used for mediating between a computer application and a slow peripheral, such as a printer. Spooling allows programs to "hand off" work to be done by the peripheral and then proceed to other tasks, or to not begin until input has been transcribed. A dedicated program, the spooler, maintains an orderly sequence of jobs for the peripheral and feeds it data at its own rate. Conversely, for slow input peripherals, such as a card reader, a spooler can maintain a sequence of computational jobs waiting for data, starting each job when all of the relevant input is available; see batch processing. The spool itself refers to the sequence of jobs, or the storage area where they are held. In many cases, the spooler is able to drive devices at their full rated speed with minimal impact on other processing.

Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966. In its time, DOS/360 was the most widely used operating system in the world.

This article discusses support programs included in or available for OS/360 and successors. IBM categorizes some of these programs as utilities and others as service aids; the boundaries are not always consistent or obvious. Many, but not all, of these programs match the types in utility software.

In computer science, a record-oriented filesystem is a file system where data is stored as collections of records. This is in contrast to a byte-oriented filesystem, where the data is treated as an unformatted stream of bytes. There are several different possible record formats; the details vary depending on the particular system. In general the formats can be fixed-length or variable length, with different physical organizations or padding mechanisms; metadata may be associated with the file records to define the record length, or the data may be part of the record. Different access methods for records may be provided, for example records may be retrieved in sequential order, by key, or by record number.

Autocoder is any of a group of assemblers for a number of IBM computers of the 1950s and 1960s. The first Autocoders appear to have been the earliest assemblers to provide a macro facility.

IBM 7070 Decimal computer introduced by IBM in 1958

IBM 7070 was a decimal-architecture intermediate data-processing system that was introduced by IBM in 1958. It was part of the IBM 700/7000 series, and was based on discrete transistors rather than the vacuum tubes of the 1950s. It was the company's first transistorized stored-program computer.

The Houston Automatic Spooling Priority Program, commonly known as HASP, is an extension of the IBM OS/360 operating system and its successors providing extended support for "job management, data management, task management, and remote job entry."

The Sort/Merge utility is a mainframe program to sort records in a file into a specified order, merge pre-sorted files into a sorted file, or copy selected records. Internally, these utilities use one or more of the standard sorting algorithms, often with proprietary fine-tuned code.

OS/360 and successors Operating system for IBM S/360 and later mainframes

OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages for the IBM 7090/7094 and even more so by the PR155 Operating System for the IBM 1410/7010 processors. It was one of the earliest operating systems to require the computer hardware to include at least one direct access storage device.

Basic Direct Access Method, or BDAM is an access method for IBM's OS/360 and successors computer operating systems on System/360 and later mainframes. BDAM "consists of routines used in retrieving data from, and storing data onto, direct access devices." BDAM is available on OS/360, OS/VS2, MVS, z/OS, and related high-end operating systems.

BESYS was an early computing environment originally implemented as a batch processing operating system in 1957 at Bell Labs for the IBM 704 computer.

IBM Basic Programming Support/360 (BPS), originally called Special Support, was a set of standalone programs for System/360 mainframes with a minimum of 8 KiB of memory.

IBM System/360 Model 20 Low-end IBM computer model from 1960s

The IBM System/360 Model 20 is the smallest member of the IBM System/360 family announced in November 1964. The Model 20 supports only a subset of the System/360 instruction set, with binary numbers limited to 16 bits and no floating point. In later years it would have been classified as a 16-bit minicomputer rather than a mainframe, but the term "minicomputer" was not current, and in any case IBM wanted to emphasize the compatibility of the Model 20 rather than its differences from the rest of the System/360 line. It does, however, have the full System/360 decimal instruction set, that allows for addition, subtraction, product, and dividend of up to 31 decimal digits.

IBM System/370 Model 168 Discontinued mainframe computer system

The IBM System/370 Model 168 and Model 158 were both announced on August 2, 1972. Prior 370 systems had not "offered virtual storage capability, which was to be a hallmark of the 370 line," and some said that the 168 and 158 were the first "real 370" products. By contrast, "in 1972, the System/370 Advanced Function was released and had new Address Relocation Hardware and now supported four new operating systems ."

References

  1. RCA 3301 Realcom Training Manual (PDF). RCA EDP Division. November 1964. 94-06-000.
  2. GE-635 File and Record Control Reference Manual. GE. CPB-1003.
  3. VAX-11 Record Management Services Reference Manual (PDF). DEC. February 1979. AA-D031B-TE.
  4. IBM 7070 SPOOL System. IBM. J28-6047-1.
  5. "SPOOL System", 7070-IO-076
  6. Reference Manual Input/Output Control System for the IBM 705 III. IBM. C28-6109.
  7. 1 2 3 4 5 IBM 7070/7074 Input/Output Control System for IBM 729 Magnetic Tape Units, Unit Record Equipment (7070-IO-904). IBM. C28-6175-3.
  8. 1 2 3 IBM 7070/7074 Input/Output Control System for IBM 1301 and 1302 Disk Storage (7070-IO-940). IBM. C28-6272-1.
  9. IBM Programming Systems Analysis Guide 7070 Input/Output Control System (PDF). IBM. 1961. C28-6119.
  10. 7080 Input/Output Control System for use with 729 Magnetic Tape Units (PDF). IBM. C28-6237.
  11. Reference Manual, IBM 709/7090 Input/output Control System (PDF). IBM. C28-6100-2.
  12. IBM Operating System/360 Concepts and Facilities (PDF). IBM. C28-6535-0.
  13. IBM z/VSE Version 6 Release 1 System Macros User's Guide (PDF). IBM. 2015. SC34-2709-00.
  14. 1 2 DOS Supervisor and I/O Macros (PDF). IBM. GC24-S037-12.
  15. 1 2 3 4 5 IBM 7070 Programming Series Autocoder. IBM. C28-6121-3.
  16. IBM 7070 Four Tape Autocoder. IBM. J28-6055.