Выполнить программу прямого доступа


В операционных системах мэйнфреймов IBM Execute Direct Access Program ( XDAP ) представляет собой метод псевдодоступа для доступа к наборам данных прямого доступа на поблочной основе. XDAP более подробно описан в Руководстве системного программиста ОС. [1]

Существующие блоки могут быть прочитаны или обновлены. Набор данных нельзя создавать или расширять с помощью XDAP; для этой цели требуется истинный метод доступа. XDAP может сосуществовать с BSAM или BPAM, и таким образом реализованы несколько компонентов ОС.

Программист отвечает за вычисление полного идентификатора блока прямого доступа, MBBCCHHR. Доступны системные алгоритмы для расчета MBBCCHHR из TTRN. Системные данные в виде «таблиц пропускной способности дорожек» доступны для расчета TTRN по номеру блока для любого типа устройства прямого доступа. Более поздние версии ОС упрощают доступ к устройствам очень большой емкости с помощью макроса TRKADDR.

Поддерживаются формы списка и выполнения XDAP, при этом форма-прототип, называемая формой списка, расширяется как данные, а функциональная форма, называемая формой выполнения, расширяется как инструкции. XDAP также поддерживается обычным образом, и в этом случае две формы объединяются и расширяются в виде встроенных данных и инструкций. Использование List и Execute Forms облегчает разработку программ с возможностью повторного ввода.

XDAP приводит к выполнению вызова супервизора EXCP , поэтому Execute Channel Program ( EXCP ) неявно встроен в XDAP. IOB, который является единственным параметром EXCP, включен как структура данных в расширение макроса XDAP, как и командные слова канала.

XDAP должен ссылаться на OPENed DCB и полный идентификатор прямого доступа. DCB может быть OPENed для ввода, вывода или ввода и вывода («INOUT»), но все выводы должны быть записью обновления существующих блоков, поскольку XDAP не поддерживает запись формата. BSAM и BPAM доступны для выполнения записи формата (записи, добавляющие в набор данных новые блоки, т.е. начальный или дополнительный блок и, в частности, конечный блок).