Выполнить программу канала
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2012 г. ) |
В IBM операционных системах мэйнфреймов Execute Channel Program ( EXCP ) — это макрос , генерирующий системный вызов , реализованный как инструкция Supervisor Call , для доступа к устройствам низкого уровня, где программист отвечает за предоставление программы канала — списка устройств. специальные команды (CCW) — для выполнения каналами ввода-вывода, блоками управления и устройствами. [1] [2] EXCP для OS/360 и последующих версий [3] [4] более подробно описано в Руководстве системного программиста ОС.; [5] EXCP для DOS/360 и последующих версий [6] более подробно описано в разделе «Супервизор DOS и макросы ввода-вывода». [7] [8] Эта статья в основном отражает OS/360 через z/OS ; некоторые детали различаются для TOS/360 и DOS/360 до z/VSE .
Указание наборов данных
[ редактировать ]Используя EXCP, устаревшие устройства и устаревшие наборы данных могут работать с относительно высокой производительностью. Устройства EXCP открываются (то есть становятся доступными для приложения) путем указания блока управления данными (DCB) для ОС и DTFPH для DOS.
Определение операций ввода-вывода
[ редактировать ]Для OS/360–z/OS программа предоставляет блок ввода-вывода (IOB) для EXCP; если программа выполняет EXCP для нескольких IOB, система обрабатывает их в том порядке, в котором они были запрошены. Для DASD IOB включает адрес поиска IOBSEEK в формате MBBCCHHR, где M — экстент, BB — ячейка для ячейки данных, CCHH — цилиндр и головка, а R — номер записи.
Придатки
[ редактировать ]«Придаток — это программа, написанная программистом и предоставляющая дополнительные контроль над операциями ввода-вывода во время выполнения программы канала». [9] Полный список придатков [10] ( выходы в контексте EXCP) разрешает авторизованные программы [а] для отмены или расширения многих проверок безопасности системы и целостности данных. Большинство из этих придатков поддерживаются для совместимости с более ранними экземплярами ОС, но функции некоторых были модифицированы или расширены для MVS. Дополнения указываются в DCB как последние два символа имени модуля IGG019xx, где xx = от WA до Z9 включительно. Эти имена модулей зарезервированы для написанных при установке дополнений. Любое другое имя формы IGG019xx зарезервировано для использования методами доступа IBM. [12] Дополнения должны находиться в SYS1.SVCLIB (SYS1.LPALIB в SVS или более поздних версиях ОС).
Целостность набора данных
[ редактировать ]Обычно, когда программа ОТКРЫВАЕТ DCB для EXCP, OPEN создает блок экстента данных (DEB), содержащий каждый экстент для первого тома связанного набора данных; однако при параллельном монтировании OPEN создает DEB, содержащий все экстенты для всех томов. Каждый DEB напрямую и обратно связан с DCB, и EXCP проверяет цепочку в качестве меры безопасности системы, поскольку DCB находится в незащищенном пользовательском хранилище, тогда как DEB находится в защищенном системном хранилище, подпуле 253; в OS/VS1 и OS/VS2 EXCP использует DEBCHK, чтобы гарантировать, что DEB был создан командой OPEN. Для DASD EXCP проверяет, находится ли адрес поиска в IOB внутри одного из экстентов, и использует маску установки файла , например, чтобы указать, ориентирован ли экстент на цилиндр или дорожку, разрешена ли запись; это предотвращает поиск за пределами указанной дорожки (цилиндра). Если программист пытается прочитать дальше конца дорожки (цилиндра), происходит проверка единицы измерения и устранение ошибок перезапускает программу канала со следующей дорожки (цилиндра) текущего экстента. Если операция выходит за пределы экстента, EXCP вызывает метод придаток конца экстента , который может обновлять IOB и запрашивать либо повторную отправку запроса EXCP, либо его завершение.
Только устаревшие наборы данных
[ редактировать ]EXCP иногда путают с методом доступа к устройствам хранения с прямым доступом, но он предназначен не только для устройств хранения с прямым доступом; скорее, это низкоуровневый интерфейс доступа к устройствам общего назначения, который поддерживает любой устаревший тип устройства и любую устаревшую организацию набора данных. Для доступа ко всем типам устройств и всем более общий интерфейс запуска ввода/вывода организациям наборов данных в MVS/370 и последующих экземплярах ОС доступен (STARTIO), хотя он не является официально поддерживаемым интерфейсом.
Упрощенные операции с наборами данных прямого доступа
[ редактировать ]Разновидностью EXCP является программа выполнения прямого доступа (XDAP), которая используется только для доступа к хранилищу прямого доступа и предназначена для чтения и обновления существующих записей хранилища прямого доступа. XDAP нельзя использовать для добавления записей, но XDAP можно использовать вместе с BSAM или BPAM для добавления записей в такие наборы данных, и некоторые компоненты ОС используют XDAP таким образом (в частности, редактор связей, IEWL).
Доступ к телекоммуникационным устройствам
[ редактировать ]EXCP также может использоваться для доступа к коммуникационным устройствам, подключенным к коммуникационным контроллерам IBM 2701 , 2702 и 2703 и внешним процессорам IBM 370x или Amdahl 470x (и их соответствующим последующим модулям), работающим в режиме эмулятора (EP) или режиме разделенного эмулятора (PEP). ).
Отношения с руководителем
[ редактировать ]Внешний интерфейс EXCP всегда находится в режиме блока управления задачами (TCB). Это обычный режим для приложений. [13] типа 1 поскольку EXCP является SVC .
В MVS/370 и последующих экземплярах ОС процессор EXCP вызывает STARTIO для планирования выполнения программы канала. Хотя серверная часть процессора EXCP всегда находится в блоке запроса на обслуживание [б] (SRB) режим, [13] серверная часть содержит код эмуляции, который позволяет придаткам, разработанным для более ранних экземпляров ОС до MVS, в частности для EXCP, функционировать в основном, как и раньше, и, таким образом, работать в режиме TCB, для которого эти придатки были изначально разработаны. Это различие может усложнить преобразование некоторых самостоятельных методов и приложений доступа в MVS.
Канальные программы
[ редактировать ]Программы канала System/360 представляют собой последовательность команд, которые выполняются каналом и устройством ввода-вывода. Канальные программы могут быть расположены в любом месте основной памяти. Программа канала представляет собой последовательность командных слов канала (CCW), которые могут выполняться последовательно, если не выполняется ветвь, называемая Transfer In Channel (TIC), или канал не возвращает модификатор состояния . Каждое CCW представляет собой двойное слово (восемь байтов) следующего вида: [14]
bit 0 7 8 31 +--------+-----------------------+ |Command | Data address | +--------+-----------------------+ 32 36 40 47 48 63 +------+---+--------+------------+ |Flags |000|reserved| count | +------+---+--------+------------+ Six commands are defined, in the low-order bits of the command field (0-7). The high-order four (or six) bits are ''modifiers'' ('M') for some commands, or are ignored. The commands are: 0100 - Sense 1000 - Transfer in Channel (TIC) 1100 - Read backward --01 - Write --10 - Read --11 - Control
Адрес данных (8–31) — это 24-битный адрес буферной области основного хранилища, в которую или из которой должны быть переданы данные.
Биты флага (32–36) определяются следующим образом:
Кусочек | ИДЕНТИФИКАТОР | Имя | Описание |
---|---|---|---|
32 | компакт-диск | Данные цепочки | Используйте область хранения, указанную в следующем CCW, чтобы продолжить эту команду. |
33 | СС | Цепная команда | Выполните следующую последовательность действий против часовой стрелки после завершения этой команды. если CC или CD не установлены, программа канала завершается после выполнения этой команды |
34 | СЛИ | Подавить указание длины | Игнорировать неправильную длину этой команды |
35 | ПРОПУСКАТЬ | Пропускать | Подавить передачу данных для этой команды |
36 | PCI | Программно управляемое прерывание | Генерировать прерывание, когда эта команда начинает выполняться |
Поле счетчика (48–63) указывает количество байтов, передаваемых этой командой.
Все восемь бит команд, инициирующих операции ввода-вывода, передаются устройству. «Биты-модификаторы указывают устройству, как должна выполняться команда». Например, для IBM 2305 DASD команда записи ('MMMMMM01'BX) может иметь следующие значения: [15]
Значение бита | Шестнадцатеричный | Описание |
---|---|---|
0001 1001 | '19'X | Напишите домашний адрес |
0001 0101 | '15'X | Записать запись 0 |
0001 0001 | '11'X | Стереть |
0001 1101 | '1D'X | Запись количества, ключа и данных |
0000 0001 | '01'X | Запишите специальный счетчик, ключ и данные |
0000 0101 | '05'X | Запись данных |
0000 1101 | '0D'X | Запись ключа и данных |
Примечания
[ редактировать ]- ^ Существует несколько типов разрешения на использование придатков:
- Программа, авторизованная APF, работающая под системным ключом (0-7) или в режиме супервизора, может использовать любое дополнение.
- Программа может использовать любой придаток, который автоматически выбирается командой OPEN для использования метода доступа.
- Программа может использовать любое дополнение, определенное во время IPL в IEAAPP00. [11]
- ^ В OS/360, OS/VS1 и SVS нет режима SRB, а придатки запускаются с отключенными прерываниями.
Ссылки
[ редактировать ]- ДФМСМСдфп
- z/OS версии 2, выпуска 4, расширенные службы DFSMSdfp . ИБМ. Август 2020 г. SC23-6861-40.
- ^ Рейно Ханнула (1974). Компьютеры и программирование: подход к языку ассемблера System/360-370 . Хоутон Миффлин. п. 431. ИСБН 978-0-395-16796-0 .
- ^ Гопал К. Капур (1 января 1970 г.). Программирование на языке ассемблера IBM 360 . Джон Уайли и сыновья. стр. 453–454, 456–459, 461 . ISBN 978-0-471-45840-1 .
- ^ Роберт Х. Джонсон (июнь 1989 г.). МВС: концепции и возможности . Интертекстовые публикации. п. 558. ИСБН 978-0-07-032673-6 .
- ^ «Глава 4. Выполнение собственных канальных программ» (PDF) . z/OS версии 2 выпуска 4 DFSMSdfp Advanced Services (PDF) . ИБМ. Август 2020. стр. 151–210. SC23-6861-40.
- ^ Руководство программиста операционной системы IBM System/360 (PDF) . ИБМ. Март 1967 г. C28-6550-2.
- ^ Гэри А. Стоттс (1 августа 1990 г.). DOS/VSE: Введение в операционную систему . QED Информационные науки. п. 18. ISBN 978-0-89435-332-1 .
- ^ Супервизор DOS и макросы ввода-вывода (PDF) . ИБМ. GC24-S037-12.
- ^ Руководство пользователя по системным макросам IBM z/VSE версии 6 выпуска 1 (PDF) . ИБМ. 2015. СК34-2709-00.
- ^ «Придатки» (PDF) . Управление данными ОС для системных программистов — выпуск 21 (PDF) . Справочная библиотека систем IBM (Двенадцатое изд.). Корпорация IBM. Апрель 1973 г. с. 46. GC28-6550-ll . Проверено 28 июня 2022 г.
- ^ DFSMSdfp , стр. 199–200, Приложения EXCP и EXCPVR .
- ^ DFSMSdfp , Список авторизованных приложений (IEAAPP00) , стр = 201-202.
- ^ IGG = префикс компонента поддержки ввода-вывода; 019 = Открыть подкомпонент SVC; хх = подфункция
- ^ Перейти обратно: а б Программное обеспечение АГ. «Естественная обработка zIIP: TCB, SRB и анклавы» . Проверено 22 марта 2021 г.
- ^ Корпорация IBM (январь 1967 г.). Принципы работы IBM System/360 (PDF) . стр. 84–121 . Проверено 4 декабря 2019 г.
- ^ Корпорация IBM (август 1971 г.). Справочное руководство для IBM 2835 Storage Control и модуля хранения с фиксированной головкой IBM 2305 (PDF) . п. 17 . Проверено 5 декабря 2019 г.