基本直接アクセス方式( BDAM)は、System/360以降のメインフレーム上のIBM のOS/360 および後継コンピュータオペレーティング システム用のアクセス方式です。BDAM は「直接アクセス デバイスからデータを取得したり、直接アクセス デバイスにデータを格納するために使用されるルーチンで構成されています。」[1] : p.5 BDAM は、 OS/360、OS/VS2、MVS、z/OS 、および関連するハイエンド オペレーティング システム で使用できます。
説明
IBM用語では、 Basicは、物理ブロックの観点からデータセットを扱う低レベルのアクセス方法を示し、先読み(先行バッファリングと呼ばれる)や同期を提供しません。つまり、ユーザープログラムは各入出力イベントの完了を明示的に待つ必要があります。[2] :p.31
BDAM を使用すると、「プログラマーは、実際のデバイス アドレス、データ セット内の相対位置 (相対ブロック番号)、またはシステムが検索を開始するデータ セット内の相対トラックのいずれかを指定して、ブロックを直接保存および取得できます。[2] : p.63
BDAM は、アプリケーションによってプログラムされたものを除き、ファイルにインデックスや構造を提供しません。多くのアプリケーションでは、ハッシュまたはランダム化関数を使用して、データ内のキーに基づいてブロック アドレスを割り当てることができます。物理キーを使用する場合は、ブロック内の最後のレコードのキーをそのブロックのキーとして書き込む必要があります。
BDAM アプリケーション プログラム インターフェイスは、 UnixやWindowsなどの他のオペレーティング システムのopen、read、write、close呼び出し (ファイル ハンドルを使用)によって提供されるインターフェイスと比較できます。
BDAM は、2012 年現在も IBM によってサポートされています。BDAM は物理デバイス ジオメトリに依存しているため、z/OS で使用される新しい IBM 直接アクセス デバイスは、実際の物理特性に関係なく、 IBM 3390デバイスをエミュレートします。
アプリケーション プログラム インターフェース
プログラマーは、データ制御ブロックDSORG=DA(DCB)でBDAM の使用を指定します。スペースは、各ボリュームで最大 16 のエクステントに存在できます。データ セット (「ファイル」に相当) は、複数のボリュームにわたって最大 255 のエクステントに存在できます。アプリケーションが連続したトラック上のスペースに依存している場合は、 DD ステートメントを
コーディングして、連続したトラックに直接データ セット用のスペースを割り当てることができます。SPACE=(,,CONTIG)
直接データセットは、使用前に出力として開き、すべてのブロックを順番に書き込むことによって事前にフォーマットする必要があります。これにより、すべての「ダミー」レコードをロードしたり、初期データをロードしたりできます。[3]
BDAM は基本的なアクセス方法として、メンバー データをブロック単位で読み書きします。I/O 操作は非同期で進行し、マクロを使用して完了をテストする必要がありますCHECK。[4] BDAM は標準システム マクロ、、、、およびを使用しますOPEN。またはマクロ命令は、目的のレコードのブロック アドレスまたはキーを提供する必要があります。マクロはCLOSE、データにアクセスしたりデータ バッファーをREAD再利用したりする前に、特定の操作が完了するのを待つために使用する必要があります。複数の入出力操作を同時に実行するように開始できます。
WRITECHECKREADWRITE CHECK
ダイレクトデータセットのレコードには、最大 255 バイトのユーザー指定の記録キーを含めることができます。ファイル内のすべてのキーは同じ長さである必要があります。読み取りと書き込みでは、ディスクアドレスに加えてキーを指定でき、BDAM は要求されたブロックからファイルの全領域まで、一致するキーを持つレコードを検索します。 [2]これにより、同じトラックにハッシュされた複数のキーをI/O サブシステムで自動的に処理できます。
ディスクアドレス
BDAM は、ディスク アドレスを実際のデバイス アドレス、相対トラック アドレス、または相対ブロック番号として受け入れます。
デバイスアドレスはMBBCCHHR形式の8バイトフィールドです。すべてのサブフィールドは2進数です。[5]
- M は、複数のエクステントを持つファイル(連続していないファイル)のエクステント番号です。
- BBはゼロです。以前は、これはIBM 2321 データ セルのビンを示していました。
- CC はデバイス上の絶対シリンダー番号です。
- HHはトラック(ヘッド)番号です。
- Rはトラック上のレコード番号です。レコード 0 にはトラックの制御情報が含まれており、使用できません。
デバイスアドレスを指定するとデータセットは移動できなくなります。[2] : p.106
相対トラック アドレスは、 TTR形式の 3 バイト フィールドです。すべてのサブフィールドは 2 進数です。
- TT はファイル内の相対トラック番号で、ゼロから始まります。
- R はトラック上のレコード番号です。
相対ブロック番号は、ファイル内のブロック番号を示す4バイト(フルワード)の2進数です。最初のブロックはブロック0です。この形式のアドレス指定は、固定長ブロック(RECFM=F)でのみ使用できます。[6] :p.106
参照
参考文献
- ^ IBM System/360 オペレーティング システム 基本直接アクセス方式プログラム ロジック マニュアル(PDF)。IBM。1967 年 7 月。Y28-6617-3。
- ^ abcd IBM System/360 オペレーティング・システム・データ管理(PDF) . IBM. 1966 年 4 月. C28-6537-1.
- ^ CICS と BDAM、IBM インフォセンター
- ^ IBM Corporation (1973 年 6 月). OS データ管理マクロ命令(PDF) . 2016 年8 月 19 日閲覧。
- ^ IBM Corporation. 「直接アクセス プログラムの実行」. IBM .
- ^ OS データ管理サービス ガイド(PDF)。IBM。1973 年 7 月。GC26-3746-2。
外部リンク
- IBM 直接アクセス ストレージ デバイスと編成方法の概要(PDF) 。IBM。1974 年 2 月。GC20-1649-9。2011年 3 月 22 日にオリジナル(PDF)からアーカイブ。2012年 9 月 24 日に取得。
