Английская Википедия:Input/Output Control System
Шаблон:Short description Шаблон:Use dmy dates 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; Шаблон:Anchorthe 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
- Disk drives
- Tape drives
- Unit record equipment. The record length was dictated by the physical media, which were
- Lines of print on paper
- Punched 80-columnШаблон:Efn cards
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]Шаблон:Rp[15]Шаблон:Rp statements:Шаблон:Efn
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]Шаблон:Rp[15]Шаблон:Rp statement, or separate control blocks generated by DDF[8]Шаблон:Rp[15]Шаблон:Rp or DUF[7]Шаблон:Rp[15]Шаблон:Rp 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.Шаблон:Efn
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
- BIOS
- Sharp IOCS, a similarly named system on 8-bit pocket computers by Sharp
Notes
References
- Шаблон:Cite book
- Шаблон:Cite book
- Шаблон:Cite journal
- Шаблон:Cite book
- Шаблон:Cite book
- Шаблон:Cite book
- Шаблон:Cite book
- Шаблон:Cite book
- Шаблон:Cite book
- Шаблон:Cite book
External links
- "RCA 3301 Realcom Training Manual", 94-06-000, November 1964
- history of operating systems
- Operating Systems - History of Operating System
- Шаблон:Cite web
- Computer Hardware and System Software Concepts
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокFCP_1964
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGEFRC
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокRMS_1979
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокJ28-6047
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокSPOOL
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6109
не указан текст - ↑ 7,0 7,1 7,2 7,3 7,4 Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6175
не указан текст - ↑ 8,0 8,1 8,2 Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6272
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6119_1961
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6237_1962
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6100
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6535
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокSC34-2709_2015
не указан текст - ↑ 14,0 14,1 Ошибка цитирования Неверный тег
<ref>
; для сносокGC24-S037-12
не указан текст - ↑ 15,0 15,1 15,2 15,3 15,4 Ошибка цитирования Неверный тег
<ref>
; для сносокC28-6121
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокJ28-6055
не указан текст