Начать ввод/вывод
В MVS/370 и последующих версиях IBM операционных систем для мэйнфреймов «Начать ввод/вывод » ( STARTIO ) представляет собой макрокоманду и «запись ветвления» для низкоуровневого доступа к устройству, где программист отвечает за предоставление списка специфичных для устройства устройств. CCW , то есть программа канала , которая должна выполняться каналами ввода-вывода, блоками управления и устройствами, а также рядом «выходов», некоторые из которых могут быть немедленным возвратом к диспетчеру ввода-вывода (IOS). [ 1 ] [ 2 ] [ 3 ] [ 4 ] Инвокеры STARTIO должны находиться в режиме супервизора и иметь ключ 0. [ 5 ] STARTIO напрямую взаимодействует с IOS-компонентом MVS. [ 6 ]
Отличия от программы канала выполнения (EXCP)
[ редактировать ]Start Input/Output отличается от EXCP (включая XDAP , который представляет собой просто подмножество EXCP только для DASD) и EXCPVR следующим фундаментальным образом: Start Input/Output — это средство низкого уровня, которое поддерживает, например, выбор путей канала, выбор экспозиций, в то время как программа Execute Channel — это средство высокого уровня, которое поддерживает, например, перевод CCW, исправление страниц, сериализацию связанных запросов, VIO.
Вызывающие программу Execute Channel Program должны находиться в режиме TCB. Хотя IBM документирует EXCPVR как привилегированный, некоторые непривилегированные методы доступа используют его для обработки SAM-E наборов данных DASD. За исключением некоторых особых случаев, приложение может использовать программу «Выполнение канала» только для блока управления данными (DCB), который был открыт (т. е. стал доступен приложению с помощью системных команд OPEN/CLOSE/END-OF-VOLUME). супервизорские службы, SVC 19, 20 и 55 соответственно).
Вызывающие STARTIO должны иметь привилегии, должны исправлять все области хранения, связанные с запросом, и должны использовать глобальное хранилище для SRB / IOSB . Они могут относиться к любому устройству, имеющему реальный UCB, даже если это устройство не выделено в адресное пространство, то есть устройство не обязательно должно быть ОТКРЫТЫМ.
Последовательности начала и завершения
[ редактировать ]Последовательность запуска STARTIO, обычно называемая «интерфейсом», может находиться в режиме TCB или в режиме SRB. Последовательность завершения STARTIO, обычно называемая «серверной частью», всегда находится в режиме SRB.
STARTIO всегда использует пару SRB/IOSB. SRB (блок запроса на обслуживание) используется для планирования активности процессора, по мере необходимости, на любом доступном процессоре в связи с соответствующим запросом ввода-вывода, поскольку запрос ввода-вывода не обязательно выполняется процессором, в котором находится вызывающая сторона. бег (действительно, в большинстве случаев его не будет ). IOSB (блок управления вводом/выводом) описывает соответствующий запрос ввода/вывода, передает параметры и получает ответы от IOS . IOS обычно вызывает придатки в включенном режиме SRB, но в особых случаях вызывает придаток как отключенный выход прерывания (DIE).
Обработка, зависящая от устройства
[ редактировать ]Блок управления устройством (UCB) для каждого устройства указывает на таблицу дескрипторов устройств (DDT), в которой определены процедуры, необходимые для обработки, зависящей от устройства, например, обработка прерываний внимания , добавление RESERVE CCW, добавление установки маски файла и поиска.
Де-факто поддержка и отсутствие поддержки
[ редактировать ]Хотя использование STARTIO клиентами не поддерживается IBM, тем не менее, ее макроинструкция и связанный с ней «вход ветвления» оставались удивительно стабильными на протяжении сорокалетнего (по состоянию на 2014 год) перехода от MVS/370 к z/OS, поскольку STARTIO — это единственный метод выполнения физических операций ввода-вывода самого низкого уровня на устройствах, подключенных к каналу, в MVS/370 и последующих экземплярах ОС. В частности, VSAM и VTAM используют STARTIO, как, конечно, и EXCP, XDAP и EXCPVR, а также некоторые экземпляры IMS/VS и JES , особенно там, где задействованы межканальные операции.
Изменения MVS/370 и его преемников на ES/390 и z/OS
[ редактировать ]В ES/390 была добавлена дополнительная «запись ветвления», выполняющая по существу ту же функцию, что и оригинал, который был сохранен для совместимости с существующими программами. Эта дополнительная «запись ветки» неявно получает адрес связанного TCB (из PSATOLD), а не получает его явно (из параметра ключевого слова TCB=), как это делала исходная «запись ветки».
Восстановление ошибок
[ редактировать ]Если во время обработки IOS соответствующего запроса ввода-вывода произойдет катастрофическая ошибка, именно этот TCB, обычно TCB «этапа задания» вызывающей стороны, будет аварийно завершен, а не тот TCB, который был активен в момент обнаружения ошибки, что Согласно базовой конструкции IOS, которая запускается асинхронно для всех задач и всех адресных пространств, может быть любой TCB в любом адресном пространстве или вообще не TCB, например, SRB, или, возможно, более вероятно, задача ожидания системы (которая выполняется в адресном пространстве главного планировщика ОС).
Документация
[ редактировать ]Возможно, лучшим описанием STARTIO и его применения является «информационный документ» под названием «[Начальный интерфейс ввода/вывода] MVS». [ 7 ] написан Питером Хаасом, тогда работавшим в Amdahl Corp (впоследствии ликвидированной). Haas «Информационный документ» содержал пример прикладной программы, который иллюстрировал обязательные и дополнительные параметры и выходы, используемые интерфейсом STARTIO. Более подробное описание EXCP[VR] и STARTIO доступно в руководстве по логике. [ 8 ]
Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Хэнк А. Мерфи (1995). Блоки управления МВС . МакГроу-Хилл Райерсон, Лимитед. стр. 129–130. ISBN 978-0-07-044309-9 .
- ^ Роберт Х. Джонсон; Р. Дэниел Джонсон (июнь 1992 г.). DASD: устройства хранения данных IBM с прямым доступом . МакГроу-Хилл. стр. 237–238. ISBN 978-0-07-032674-3 .
- ^ Гарри Кацан; Дэвис Тарайил (октябрь 1984 г.). Приглашение на МВС: логика и отладка . ПБИ. стр. 11, 211. ISBN. 978-0-89433-081-0 .
- ^ Дэйв Элдер-Васс (30 апреля 1993 г.). Системное программирование MVS . МакГроу-Хилл. п. 52. ИСБН 978-0-07-707767-9 .
- ^ Роберт Х. Джонсон (июнь 1989 г.). МВС: концепции и возможности . Интертекстовые публикации. п. 577 . ISBN 978-0-07-032673-6 .
- ^ Гилберт Э. Хоукамер; Х. Пэт Артис (1993). Подсистемы ввода-вывода MVS: управление конфигурацией и анализ производительности . МакГроу-Хилл. п. 52. ИСБН 978-0-07-002553-0 .
- ^ Amdahl Corp, Саннивейл, Калифорния, Технические темы группы поддержки MVS, Vol. 1, № 2
- ^ Логика супервизора ввода-вывода OS/VS2 (шестое изд.), IBM, декабрь 1978 г., SY26-3823-5