IBMメインフレーム オペレーティングシステムでは、実行直接アクセスプログラム(XDAP)は、ブロック単位で直接アクセスデータセットにアクセスするための疑似アクセス方法です。XDAPの詳細は、OSシステムプログラマーズガイドに記載されています。[1]
既存のブロック
既存のブロックは読み取りまたは更新できます。データセットは XDAP を使用して作成または拡張することはできません。そのためには、真のアクセス メソッドが必要です。XDAP は BSAM または BPAM と共存でき、いくつかの OS コンポーネントはこのように実装されます。
DASDアドレス計算
プログラマーは、完全な直接アクセス ブロック識別子 MBBCCHHR を計算する必要があります。TTRN から MBBCCHHR を計算するためのシステム アルゴリズムが用意されています。任意の直接アクセス デバイス タイプについて、ブロック番号から TTRN を計算するために、「トラック容量テーブル」形式のシステム データが使用できます。OS の以降のバージョンでは、TRKADDR マクロを使用して非常に大容量のデバイスにアクセスできるようになりました。
フォームの一覧表示と実行
XDAP のリスト形式と実行形式がサポートされており、リスト形式と呼ばれるプロトタイプ形式がデータとして展開され、実行形式と呼ばれる機能形式が命令として展開されます。XDAP は従来形式でもサポートされており、その場合、2 つの形式が結合され、インライン データと命令として展開されます。リスト形式と実行形式を使用すると、再入力可能なプログラムの開発が容易になります。
XDAPは暗黙的にEXCPを呼び出す
XDAP によりEXCPスーパーバイザ コールが実行されるため、実行チャネル プログラム( EXCP ) が暗黙的に XDAP 内に組み込まれます。EXCP の唯一のパラメータである IOB は、チャネル コマンド ワードと同様に、XDAP マクロ拡張内にデータ構造として組み込まれます。
XDAPデータセットを開く
XDAP は、OPEN された DCB と完全な直接アクセス識別子を参照する必要があります。DCB は、入力、出力、または入出力 ("INOUT") 用に OPEN できますが、XDAP はフォーマット書き込みをサポートしていないため、すべての出力は既存のブロックの更新書き込みである必要があります。BSAM と BPAM は、フォーマット書き込み (データセットに新しいブロック (つまり、最初のブロックまたは追加のブロック、特に最後のブロック) を追加する書き込み) を実行するために使用できます。
XDAP と SAM および PAM の共存のための IOBSPSVC フラグ
IOBSPSVCフラグ(論理的にはIOBのS AMおよびP AM SVCフラグ)が利用可能であり、これによりシーケンシャルアクセスメソッドの付加物[2]がバイパスされます。この機能強化はSVSで最初に実装されましたが、以前のバージョンのOSには後付けされませんでした。これにより、XDAPを使用しながら、BSAMまたはBPAM用にすでにOPENされているデータセットの処理が大幅に容易になりました。
そうしないと、特定の XDAP チャネル プログラムが提示されたときに、特定の SVS 以前の SAM および PAM 付加物がランダムなスーパーバイザー ストレージ オーバーレイを引き起こす可能性があります。IBM は SVS 以前のシステムでシステム セキュリティとデータ整合性を保証していなかったため、明らかな回避策は、RPS も使用しない XDAP チャネル プログラムのみを使用することでした。RPS タイプの XDAP チャネル プログラムが SAM および PAM 付加物を混同し、ランダムなスーパーバイザー ストレージ オーバーレイを引き起こしていたためです。
参考文献
- ^ IBM System/360 オペレーティング システム システム プログラマーズ ガイド(PDF) . IBM. 1967 年 3 月. C28-6550-2.
- ^ IBM System/360 オペレーティング・システム シーケンシャル・アクセス方式 プログラム・ロジック・マニュアル(PDF)。IBM。1967 年 1 月。Y28-6604-1。
