Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В мэйнфреймах IBM операционных систем , Execute Channel Program ( EXCP ) является супервизором вызов для доступа к устройствам низкого уровня, когда программист несет ответственность за обеспечение программы канала списка -a команд конкретного устройства () -в системы водяного охлаждения оборудования будет выполняться I / Выходы, блоки управления и устройства. [1] [2] EXCP для OS / 360 и последующих [3] [4] более подробно описывается в Руководстве системного программиста ОС; [5] EXCP для DOS / 360 и последующих [6] более подробно описан в DOS Supervisor and I / O Macros. [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] ( выходы в контексте EXCP) позволяет авторизованные программы [а] , чтобы отменить или увеличить многие проверки безопасности системы и целостности данных. Большинство этих дополнений поддерживаются для совместимости с более ранними экземплярами ОС, но функции некоторых из них были изменены или расширены для MVS. Дополнения указываются в DCB как последние два символа имени модуля IGG019xx, где xx = от WA до Z9 включительно. Эти имена модулей зарезервированы для приложений, написанных при установке. Любое другое имя в форме IGG019xx зарезервировано для использования методами доступа IBM. [11] Приложения должны находиться в SYS1.SVCLIB (SYS1.LPALIB в SVS или более поздних экземплярах ОС).

Целостность набора данных [ править ]

Обычно, когда программа OPEN открывает DCB для EXCP, OPEN создает блок экстента данных (DEB), содержащий каждый экстент для первого тома связанного набора данных; однако при параллельном монтировании OPEN создает DEB, содержащий все экстенты для всех томов. Каждый DEB имеет прямую и обратную цепочку к DCB, и EXCP проверяет цепочку в качестве меры безопасности системы, поскольку DCB находится в незащищенном пользовательском хранилище, тогда как DEB находится в защищенном системном хранилище, Subpool 253; в OS / VS1 и OS / VS2 EXCP использует DEBCHK, чтобы гарантировать, что DEB был создан OPEN. Для DASD EXCP проверяет, что адрес поиска в IOB находится в пределах одного из экстентов, и использует маску Set File.чтобы, например, указать, является ли экстент ориентированным на цилиндр или дорожку, разрешена ли запись; это предотвращает поиск из указанной дорожки (цилиндра). Если программист пытается прочитать за пределами конца дорожки (цилиндра), происходит проверка единиц и при восстановлении после ошибки программа канала перезапускается со следующей дорожки (цилиндра) текущего экстента. Если операция выходит за пределы конца экстента, EXCP вызывает добавление конца экстента , которое может обновить IOB и потребовать, чтобы EXCP либо повторно выполнил запрос, либо прекратил его.

Только устаревшие наборы данных [ править ]

EXCP иногда путают с методом доступа к устройствам хранения с прямым доступом, но он не предназначен исключительно для устройств хранения с прямым доступом; скорее, это низкоуровневый интерфейс доступа к устройствам общего назначения, который поддерживает любой унаследованный тип устройства и любую унаследованную организацию наборов данных. Для доступа ко всем типам устройств и всем организациям наборов данных более общий интерфейс Start Input / Output (STARTIO) доступен в MVS / 370 и последующих экземплярах ОС, хотя он не является официально поддерживаемым интерфейсом.

Упрощенные операции с наборами данных прямого доступа [ править ]

Разновидностью EXCP является Execute Direct Access Program (XDAP), которая используется только для доступа к хранилищу прямого доступа и предназначена для чтения и обновления существующих записей хранилища прямого доступа. XDAP нельзя использовать для добавления записей, но XDAP можно использовать вместе с BSAM или BPAM для добавления записей в такие наборы данных, и некоторые компоненты ОС используют XDAP таким образом (в частности, редактор связей, IEWL).

Доступ к телекоммуникационным устройствам [ править ]

EXCP также может использоваться для доступа к коммуникационным устройствам, подключенным к коммуникационным контроллерам IBM 2701 , 2702 и 2703 и интерфейсным процессорам IBM 370x или Amdahl 470x (и их соответствующим дополнениям), работающим в режиме эмулятора (EP) или режиме разделенного эмулятора (PEP). ).

Отношения с руководителем [ править ]

Внешний интерфейс EXCP всегда находится в режиме блока управления задачами (TCB), нормальном режиме для приложений [12], поскольку EXCP является SVC типа 1 .

В MVS / 370 и последующих экземплярах ОС процессор EXCP вызывает STARTIO для планирования выполнения канальной программы. Хотя серверная часть процессора EXCP всегда находится в режиме блока запросов на обслуживание [b] (SRB), [12] серверная часть содержит код эмуляции, который позволяет приложениям, разработанным для более ранних экземпляров ОС до MVS, особенно для EXCP , чтобы функционировать в основном, как и раньше, и, таким образом, работать в режиме TCB, для которого эти придатки были изначально разработаны. Это различие может усложнить преобразование определенных методов и приложений для самостоятельного управления доступом в MVS.

Канальные программы [ править ]

Канальные программы System / 360 представляют собой последовательность команд, которые выполняются каналом и устройством ввода-вывода. Программы каналов могут быть расположены в любом месте основной памяти. Канальная программа представляет собой последовательность командных слов канала (CCW), которая может выполняться последовательно, если не выполняется ветвь, называемая переходом по каналу (TIC), или если канал не возвращает модификатор состояния . Каждое CCW представляет собой двойное слово (восемь байтов) следующим образом: [13]

 бит 0 7 8 31  + -------- + ----------------------- + | Команда | Адрес данных | + -------- + ----------------------- + 32 36 40 47 48 63 + ------ + --- + -------- + ------------ + | Флаги | 000 | зарезервированы | счет | + ------ + --- + -------- + ------------ +В младших битах поля команды (0-7) определены шесть команд. Четыре (или шесть) старших битов являются «модификаторами» («M») для некоторых команд или игнорируются. Команды: 0100 - Чувство 1000 - передача в канале (TIC) 1100 - читать назад --01 - Написать --10 - Читать --11 - Контроль

Адрес данных (8-31) - это 24-битный адрес буферной области основной памяти, в которую или из которой должны быть переданы данные.

Биты флагов (32-36) определены следующим образом:

Поле счетчика (48-63) указывает количество байтов, передаваемых этой командой.

Все восемь бит команд, запускающих операции ввода-вывода, передаются устройству. «Биты модификатора указывают устройству, как должна выполняться команда». Например, для IBM 2305 DASD команда записи ('MMMMMM01'BX) может иметь следующие значения: [14]

Заметки [ править ]

  1. ^ Есть несколько типов авторизации на использование придатков:
    • Программа, авторизованная APF, работающая с системным ключом (0-7) или в режиме супервизора, может использовать любое приложение.
    • Программа может использовать любое приложение, которое автоматически выбирается OPEN для использования метода доступа.
    • Программа может использовать любое дополнение, которое определено во время IPL в IEAAPP00. [10]
  2. ^ В OS / 360, OS / VS1 и SVS нет режима SRB, и дополнения работают с отключенными прерываниями.

Ссылки [ править ]

DFSMSdfp
z / OS Версия 2 Выпуск 4 Расширенные службы DFSMSdfp . IBM. Август 2020 г. SC23-6861-40.
  1. ^ Рейно Ханнула (1974). Компьютеры и программирование: подход на языке ассемблера System / 360-370 . Хоутон Миффлин. п. 431. ISBN. 978-0-395-16796-0.
  2. Гопал К. Капур (1 января 1970 г.). Программирование на языке ассемблера IBM 360 . Джон Вили и сыновья. С.  453–454, 456–459, 461 . ISBN 978-0-471-45840-1.
  3. Роберт Х. Джонсон (июнь 1989 г.). МВС: концепции и возможности . Интертекстовые публикации. п. 558. ISBN 978-0-07-032673-6.
  4. ^ «Глава 4. Выполнение программ вашего собственного канала» (PDF) . z / OS версии 2, выпуск 4 Расширенные службы DFSMSdfp (PDF) . IBM. Август 2020. С. 151–210. SC23-6861-40.
  5. ^ Руководство программиста операционной системы IBM System / 360 (PDF) . IBM. Март 1967. C28-6550-2.
  6. Гэри А. Стоттс (1 августа 1990 г.). DOS / VSE: Введение в операционную систему . QED Информационные науки. п. 18. ISBN 978-0-89435-332-1.
  7. ^ DOS Supervisor и макросы ввода / вывода (PDF) . IBM. GC24-S037-12.
  8. ^ Руководство пользователя системных макросов IBM z / VSE версии 6, выпуск 1 (PDF) . IBM. 2015. SC34-2709-00.
  9. ^ DFSMSdfp , стр. 199-200, Приложения EXCP и EXCPVR .
  10. ^ DFSMSdfp , Официальный список добавлений (IEAAPP00) , стр = 201-202.
  11. ^ IGG = Префикс компонента поддержки ввода / вывода; 019 = Открыть подкомпонент SVC; xx = подфункция
  12. ^ a b Software AG. «Естественная обработка zIIP: TCB, SRB и анклавы» . Проверено 22 марта 2021 года .
  13. ^ IBM Corporation (январь 1967). Принципы работы IBM System / 360 (PDF) . С. 84–121 . Проверено 4 декабря 2019 года .
  14. ^ Корпорация IBM (август 1971 г.). Справочное руководство для IBM 2835 Storage Control и IBM 2305 Fixed Head Storage Module (PDF) . п. 17 . Проверено 5 декабря 2019 года .