巻の目次

VTOC 1980年8月28日

OS/360 および後継CMSDOS/360 および後継のストレージ アーキテクチャではボリューム テーブル オブ コンテンツ( VTOC ) は、特定のDASDボリュームに存在するデータ セットを見つける方法を提供するデータ構造です。Linux on Z [2]のIBM Z 互換ディスク レイアウト[1] [注 1]を除き、これは、MS/PC DOSファイル アロケーション テーブル(FAT)、NTFSマスター ファイル テーブル(MFT)、およびUnix 系システムのファイル システムのinodeテーブルと機能的に同等です[注 2] VTOC は、IPLTEXT [注 3]を含めるために使用されず、IPL プロセスで何の役割も果たさないため[注 4 ]、MBRによって使用されるデータや MBR と機能的に同等なデータは持ちません。VTOC には、ボリューム上の各データ セットの名前に加えて、サイズ、場所、アクセス許可が一覧表示されます。さらに、ボリューム上の連続した空き領域のすべての領域に対するエントリが含まれます。 DASD(ディスクなど)ボリュームの最初のシリンダの最初のトラックにある3番目のレコードはボリュームラベルと呼ばれ、VTOCの位置へのポインタを含んでいなければなりません。VTOCの位置は、ボリュームの初期化時に指定できます。VTOCは頻繁に参照されるため、パフォーマンス上の理由から、ボリュームのできるだけ中央に近い位置に配置することをお勧めします。現在のシステムでは、VTOCはデバイスサポート機能(Device Support Facilities)[注 5]プログラムであるICKDSFを使用してDASDボリュームを初期化する際に追加されます。

OS/360 および後継製品では、データ セットを割り当てるときに、通常、カタログを検索して、そのデータ セットが存在するボリュームを判別します。[注 6]プログラムが直接アクセス ストレージ デバイス(DASD) データ セットを開くときに、OPEN ルーチンは、VTOC インデックス (VTOCIX) が存在する場合はこれを検索し、VTOCIX が存在しない場合は VTOC を直接検索します。

データセット制御ブロックの種類

VTOCは、データセット制御ブロック[3] [4]DSCB)と呼ばれる140バイトのレコードのシーケンスで構成されています。DSCBには10種類あります。

VTOCのDSCBタイプ
DSCBフォーマットタイプ目的注記
0空のエントリ
1データセットプライマリデータセットの最初の 3 つの範囲(開始シリンダーと終了シリンダーおよびトラック) を記述します。
2ISAMデータセットISAMデータセットについて説明します
3データセットの拡張3番目以降のデータセットの範囲を記述します
4VTOCボリューム属性を記述します
5空きスペース非インデックスボリューム上の26エクステント
6 [3] : 191-192 共有シリンダー割り当てOS/360では、共有シリンダ割り当てにフォーマット6 DSCBが使用され、複数のデータセットを複数のシリンダにインターリーブすることが可能になりました(例えば、各シリンダの前半をデータセットAに、後半をデータセットBに割り当てるなど)。これは、2つ以上のデータセットが同時に使用されることが予想される場合にヘッドの移動を減らすことで、パフォーマンスを最適化することを目的としていました。z/OSの現在のリリースでは、共有シリンダ割り当てフォーマット6 DSCBはサポートされなくなりました。[4]
7空きスペースフォーマット4 DSCBの拡張
8データセットプライマリEAV [注 7]形式1 DSCBのバージョン
9データセットの拡張フォーマット3 DSCBのEAV拡張

VTOC はボリュームの最初の 64K トラック内に常駐する必要があり、VTOC 内の最初の DSCB は常にフォーマット 4 の DSCB であり、VTOC 自体[注 8]と、この VTOC が常駐する DASD ボリュームの属性を記述します。2 番目の DSCB は常にフォーマット 5 の DSCB であり、VTOC 内の空き領域を記述します。通常、VTOC の残りの部分には、空のエントリであるフォーマット 0 の DSCB と、データ セットの範囲を記述し、ディスク上の最大 16 個のそのような範囲の開始アドレスと終了アドレス[注 9]を示すフォーマット 1 またはフォーマット 3 の DSCBが含まれます。データ セットの最初の部分は、フォーマット 1 の DSCB によって記述されます。必要に応じて、フォーマット 3 の DSCB を使用してデータ セットのさらに詳しい範囲を記述します。データ セットが削除されると、そのフォーマット 1 の DSCB は上書きされてフォーマット 0 の DSCB になり、フォーマット 3 の DSCB が存在する場合は同様に削除されます。

当初、VTOC検索はDSCBを順次スキャンし、正しいフォーマット1のDSCBが見つかるか、VTOCの終端に達した時点で停止していました。DASDボリュームが大きくなるにつれて、VTOC検索がボトルネックとなり、VTOCインデックスが追加されました。

フォーマット 1 DSCB

このVTOCエントリはデータセットを記述し、その最初の3つのエクステントを定義します。これは、 Y2K問題への対応変更前の1973年のOS/360リリース21.7のDSCBのフォーマットです[5]

位置長さ説明
044データセット名。左揃えされ、スペースが埋め込まれた、
DSCB レコード キーです。
441フォーマット識別子、フォーマット1 DSCBの場合は'1'(文字)
456このデータセットの最初の DASD ボリュームのボリュームシリアル番号 (英数字)
512マルチボリュームデータセットのこのボリュームのボリュームシーケンス番号(バイナリ)
533データセット作成日(バイナリ)世紀年を表す1バイトと年間日を表す2バイト
563データセットの有効期限 (作成日と同じ形式)
99365 は、このデータセットに有効期限がないことを示します。
591このデータセットのエクステント数(バイナリ)
601このデータセットがパーティション化されたデータセットの場合、これは最後のディレクトリ ブロックで使用されるバイト数です。(バイナリ)
611未使用。IBM によって予約済みとしてリストされています。
6213このデータセットを作成したオペレーティング システムを識別するコード。(文字)
757未使用。IBM によって予約済みとしてリストされています。
822データセットの構成を示すコード(シーケンシャル、インデックスなど)(ビットフィールド)
841このデータセットのレコード形式(固定、可変など)を示すコード(ビットフィールド)
851オプションコード、データセットの作成時に指定されたその他のオプション(ビットフィールド)
862ブロック サイズ (固定サイズ、または可変長レコードのファイルの最大サイズ) (バイナリ)
882レコード長(固定サイズまたは可変長レコードの最大長)(バイナリ)
901このファイルにレコードキーが記録されている場合のキーの長さ。(バイナリ)
912レコード内のキー(存在する場合)のゼロからの相対的な位置。(バイナリ)
931インジケータ ビット。たとえば、データセットがパスワードで保護されていることを示します。(ビットフィールド)
944データセット割り当てパラメータ。たとえば、このデータセットのスペースがブロック、シリンダーなどに割り当てられることを示します。(ビットフィールド)
953二次割り当て量: 追加のスペースが必要な場合に割り当てるブロック、シリンダなどの数。(バイナリ)

たとえば、データセットが DD カード仕様で作成される場合、SPACE=(CYL,(4,2))データセットには最初に 4 つのシリンダが割り当てられ、さらにスペースが必要になるたびに、必ずしも連続していない 2 つのシリンダが追加され、最大 15 個のエクステントまで割り当てられます。

983データセットに書き込まれた最後のブロックの DASD アドレス。
1012上記の最後のブロックに続く最後のトラックに残っているバイト数。(バイナリ)
1032未使用。IBM によって予約済みとしてリストされています。
10510最初のエクステントまたは唯一のエクステントの説明。
エクステントの種類(1バイト、ビットフィールド)、
エクステントシーケンス番号(1バイト、バイナリ)、
エクステントの開始シリンダとトラック(4バイト、バイナリ)、

エクステント終了シリンダおよびトラック (4 バイト、バイナリ)。

11510可能な 2 番目の範囲の説明。形式は上記と同じです。
12510可能な 3 番目の範囲の説明。形式は上記と同じです。
1355インデックス データセットの場合、シリンダー/ヘッド/レコード形式の VTOC 内の Format-2 (インデックス) DSCB へのポインター。

このデータセットに 3 つ以上のエクステントがある場合、フォーマット 3 (拡張) DSCB へのポインター。

参照

注記

  1. ^ IBM Z 互換ミニディスクの VTOC には、それぞれ Linux ファイル システムを含む最大 3 つのデータセットを含む VTOC があります。
  2. ^ VTOC では名前をストレージ割り当てに直接関連付けるだけで済みますが、 Unix ファイル システムではinodeを介して間接的に関連付けが行われます。
  3. ^ ただし、シリンダー 0 トラック 0 の IPL テキストは VTOC を読み取って使用します。
  4. ^ 一部のシステムの IPLTEXT のコードは IPL ボリュームの VTOC を検索します。
  5. ^ DSF は、IBM が配布しなくなり、現在のハードウェアでは実行できないオリジナルの IBCDASD と IEHDASDR に代わるものです。
  6. ^ ジョブがカタログをバイパスし、動的割り当てまたは JCL パラメータを使用してボリュームを指定することは可能ですが、これはまれです。
  7. ^ 拡張アドレス ボリューム、65,520 個を超えるシリンダーを持つボリューム。
  8. ^ VTOCはデータセットなので、データセット名を持っています。VTOCのデータセット名は(44)X'04'文字で、OSの後のインスタンスでは保護された名前になっています。プログラムは許可なくそこに書き込むことはできません。
  9. ^ 各エクステントは、ディスクの先頭 (CCHH=x'00000000') を基準とした開始 CCHH と終了 CCHH によって記述されます。

参考文献

  1. ^ 「IBM Z互換ディスクレイアウト」。IBM Knowledge Center
  2. ^ 「Linux on Z および LinuxONE」。IBM Knowledge Center
  3. ^ ab 「データセット制御ブロック」(PDF) . IBM System/360 オペレーティング・システム:システム制御ブロック(PDF) . IBM Systems Reference Library(第10版). IBM Corporation. 1973年4月. pp.  165– 173. GC28-6628-9.
  4. ^ ab 「データ・セット制御ブロック(DSCB)のタイプ」(PDF) . z/OS バージョン2リリース4 DFSMSdfp 拡張サービス(PDF) . IBM Corporation. 2020年12月13日. pp.  2– 17. SC23-6861-40.
  5. ^ IBM Corporation (1973年4月). IBM System/360 オペレーティング・システム: システム制御ブロック(PDF) . pp.  170– 173. 2016年8月1日閲覧
  • z/OS 2.5 - DFSMS データ・セットの使用(PDF) . IBM . 2023年3月24日 . SC23-6855-50 . 2023年4月6日閲覧.
  • z/OS 2.5 - DFSMSdfp Advanced Services (PDF) . IBM . 2023年3月24日 . SC23-6861-50 . 2023年4月6日閲覧.
  • z/OS システム IPL: シーケンスとキー制御。IBM
「https://en.wikipedia.org/w/index.php?title=Volume_Table_of_Contents&oldid=1270471597」より取得