【2008/10/22 original author TAKAO】
レイアウト
IBMのDASDは、トラック上はCKD(カウント、キー、データ)という形式で管理されます。その名前のとおり、Count|key|Data| gap |Count|key|Data| gap という形でデータが並んでいます。ここでカウントには、「レコード番号、キーがあればキーの長さ、データの長さ」が書き込まれます。
オープン系で使われるディスクはFBA形式といわれ、すべてセクターという概念でトラック上に割り振られています。CKDの場合、セクターという概念はありません(もっとローレベルではありますが)。ブロック長によりデータ長は可変です。ディスク全体はシリンダー、ヘッド、レコード(CCHHR)でアドレスされます。
ディスクはスパターとアクチュエータからできていますから、アクチュエータが指す場所はすべて同じヘッドが並んでいます。なので、円筒形が重なったと考えるほうが合理的なのです。この単位をシリンダーといいます。そして、何番目のヘッドかでトラックが確定します。そのトラック上のレコード番号でディスクの場所は決まるのです。3次元にアドレスをもっていると考えるとわかりやすいでしょう。
VTOC
IBMディスクでもっとも重要な場所はシリンダー0、ヘッド0、レコード1です。ここには、ディスクのラベル(Volser)とVTOCの場所が指定されています。汎用機ではVTOCの場所を指定できます。
IPLボリューム
ブートをかけるプロセッサーを指定して、チャネルをリセット”System-Reset”しLoadコマンドを出すと、指定したDASDのシリンダー0、ヘッド0、レコード1からIPLブートレコートを読みます。このブートレコードはあらかじめ、ユーティリティ(ICKDSF)でIEAIPL00というファイルをコピーすることで作られます。つまり、ここにスタンドアローンのプログラムを書き込むと動作します。これを利用したのがスタンドアローンで動作するダンプやdfsmsdssです。
【2008/10/22 original author TAKAO】