Ввод и вывод

Одной из функций операционной системы является управление работой периферийных устройств и организация управления данными, поступающими в вычислительную систему и выводимыми из нее. До сих пор все операции ввода-вывода выполнялись нами с помощью специально для этого предназначенных макро RCD и РLN. Действия этих макро заключаются на самом деле в вызове некоторых подпрограмм, использующих системные макрокоманды для выполнения требуемых операций ввода-вывода. Данная глава частично посвящена знакомству с такими макрокомандами операционных систем DOS и OS, называемыми макрокомандами управления данными.

Нами будет также изучено выполнение операций ввода-вывода на несколько более низком уровне, чем уровень системных макро. Мы увидим, как процессором осуществляется управление выполнением операций ввода-вывода и работой конкретных устройств.

Прежде чем перейти к рассмотрению конкретных вопросов, связанных с программированием ввода-вывода, мы познакомимся с некоторыми общими принципами хранения информации.

В состав операционной системы включены так называемые методы доступа, которые предназначены для управления выполнением операций ввода-вывода, запрашиваемых проблемными программами. Такие запросы производятся с помощью макрокоманд управления данными. На программиста возлагается решение таких вопросов, как выбор способа организации набора-данных, формата записей, метода

Таблица 17.8 Макро DTFxx Формат: имя файла DTFxx операнды

Операнды

Смысл

DEVADDR = SYSxxx

Обязательный; SYSxxx—символическое имя устройства

10AREA1 = адрес

 

Обязательный; параметр задает, адрес буферной области

IOAREA2= адрес

 

Параметр задает адрес второй буферной области; операнд не обязательный

WORKA = YES

 

В программе задается адрес записи в качестве операнда команд GETили PUT

JOREG = n

 

Система помещает адрес записи в регистр

EOFADDR = адрес

Вызывает переход по указанному адресу при исчерпании записей во входном файле

RECFORM FIXUNB

FIXBLK

VARUNB

VARBLK

Несблокированныезаписи фиксированной длины

Сблокированные записи фиксированной длины Несблокированные записи переменной длины Сблокированные записи переменной длины

TYPEFLE= INPUT

OUTPUT

INOUT

 

Поумолчанию принимается INPUT

CTLCHR = ASA

YES

Управляющие символы ASA

Управляющие символы IBM

BLKSIZE — n

Самый большой блок содержит nбайтов

RECSIZE — m

 

Самый большой блок содержит mбайтов

Обычныемакро DTFxx:

 

 

DTFCD

Вводс карт

DTFPR

 

Вывод на печать

DTFMT

 

Магнитная лента

DTFSD

 

Последовательный файл на устройстве прямого доступа

DTFDA

 

Файл с прямой организацией

DTFIS

Файл с индексно-последовательной организацией

доступа и самих наборов данных, подлежащих обработке. О произведенном выборе программист должен сообщить системе с помощью макро DTFxx (система DOS табл. 17.8) или макро DCB (система OS табл. 17.9).

Таблица 17.9 Некоторые операнды макро СВ

Формат: имя deb DCB операнды

Фактические запросы на выполнение операций ввода-вывода производятся с помощью макрокоманд GET, PUT, READ и WRITE. Макрокоманды OPEN и CLOSE используются для выполнения действий, связанных с началом и завершением обработки наборов данных.

Каналы ввода-вывода предназначены для управления работой периферийных устройств и перемещением информации между этими устройствами и основной памятью. Каналы выбирают для выполнения команды из программы канала, представляющей собой последовательность Управляющих слов канала.

Это интересно