Cтраница 1
Операция ввода-вывода состоит в однократном выполнении канальной программы. [1]
Операция ввода-вывода, запущенная по оператору ЧИТАТЬ, ПИСАТЬ или ОБНОВИТЬ, может не завершиться успешно. Причиной неуспешного завершения операции может быть неправильно заданное значение ключа, неисправимый сбой на пакете магнитных дисков, отсутствие места для записи в выделенном для файла участке диска и др. Ситуация неправильно заданного значения ключа называется ситуацией недействительного ключа. Ситуация недействительного ключа может быть обнаружена в программе использованием фразы ПРИ ОШИБКЕ КЛЮЧА в операторе ввода-вывода или ( только для ОС EQ с помощью декларативной процедуры обработки ошибок ввода-выво-да. Все остальные причины неуспешного выполнения операции ввода-вывода опознаются с помощью декларативных процедур и рассматриваются как стандартные ошибки ввода-вывода. [2]
Операция ввода-вывода задается процессором при реализации им инструкции НАЧАТЬ ВВОД-ВЫВОД. В соответствии с этой инструкцией канал выбирает из оперативной памяти управляющую информацию и организует непосредственное выполнение операции ввода-вывода; завершив операцию, канал посылает в процессор запрос на прерывание текущей программы с целью выдачи информации о результатах выполнения операции. В процессе выполнения операции ввода-вывода может исполняться одна команда или несколько связанных в цепочку команд ввода-вывода. [3]
Операции ввода-вывода инициируются процессором с помощью команды начать ввод-вывод. Для выполнения операций ввода-вывода используются также следующие команды процессора: начать быстрое освобождение ввода-вывода, опросить канал, опросить ввод-вывод, остановить ввод-вывод и остановить внешнее устройство. Программирование ввода-вывода рассмотрено в разд. [4]
Операция ввода-вывода может быть прекращена в трех следующих случаях: в момент начала ввода-вывода, в период между началом и окончанием выполнения операции ввода-вывода и после окончания ее выполнения. [5]
Операция ввода-вывода может быть закончена во время инициирования, в середине ее выполнения или после того, как она завершена на ВУ. [6]
![]() |
Формат ССК. [7] |
Операции ввода-вывода могут заканчиваться также путем выдачи команды Я / О в определенный канал и ВУ, а также из-за сбоя в канальной аппаратуре или в случае сброса системы ввода - вывода в исходное состояние. [8]
Операции ввода-вывода в АПЛ ограничены про стым вводом чисел, цепочек литер и массивов с терминала программиста и выводом таких же данных на терминал. После того как программист ввел число, вектор чисел или цепочку литер, вычисление выражения возобновляется. Кроме того, в том случае, когда выражение введено программистом для немедленного выполнения, вывод его значения происходит автоматически. [9]
Операция ввода-вывода может выполняться в одном из двух режимов: монопольном или мультиплексном. [10]
Операция ввода-вывода, относящаяся к IPL, неявно задает использование первых 24 байтов основной памяти. Поскольку остальная часть программы, загружаемая с помощью IPL, может быть помещена в любое место, имеется возможность сохранения содержимого таких областей памяти в качестве областей старых и новых PSW, а также области аппаратной регистрации, с тем чтобы использовать их для анализа и восстановления. [11]
Операция ввода-вывода может выполняться в одном из двух режимов: монопольном и мультиплексном. [12]
Операции ввода-вывода инициируются и управляются с помощью информации трех типов: команд ввода-вывода, команд Канала ( CCW) и приказов. Команды ввода-вывода дешифрируются процессором и являются частью программы процессора. [13]
Операция ввода-вывода может включать передачу данных в одну область памяти или в несколько несмежных областей памяти. В последнем случае для выполнения операции ввода-вывода используется список команд канала, в котором каждая команда указывает непрерывную область памяти. При этом говорят, что команды связаны цепочкой данных. Цепочка данных задается соответствующим флажком в команде канала и заставляет канал выбирать следующую команду цепочки после того, как будет исчерпана или заполнена область памяти, указанная текущей командой. Область памяти, которая указана какой-либо командой, выбранной по цепочке данных, относится к операции ввода-вывода, уже выполняющейся в устройстве, и последнему не сообщается о выборке новой команды цепочки. Программист может указать в команде канала, чтобы при расшифровке данной команды канал как можно быстрее выдал запрос на прерывание, тем самым сообщая программе процессора о том, что цепочка была успешно выполнена непосредственно до данной команды в программе канала. [14]
Операция ввода-вывода может выполняться в одном из двух режимов: монопольном ( селекторном) или мультиплексном. В монопольном режиме ПУ монополизирует все средства интерфейса ввода-вывода и канала и остается в определенном смысле связанным с ним на все время передачи порции данных. Никакое другое устройство не может подключиться к интерфейсу, пока не завершится передача данных в это устройство или из этого устройства. Порция данных может состоять из нескольких байтов, целого блока данных, последовательности блока данных. В селекторном режиме каналы в основном используются для подключения к процессору высокоскоростных периферийных устройств. [15]