第10回 ファイル管理 論理レコードと物理レコード アクセス方式 ユーザから見たファイルシステム 補助記憶装置の構成 第10回 ファイル管理 論理レコードと物理レコード アクセス方式 sequential access random access ユーザから見たファイルシステム 補助記憶装置の構成 ボリュームとファイルの管理 プログラム上でのファイル操作
ファイルとは? あるまとまった関連のある情報を集めたデータの塊 情報を保存するハードウェア MVSではデータセット 情報を保存するハードウェア 磁気ディスク、Floppy Disk, 磁気テープ、光ディスクなど ファイルという抽象的なデータの塊を扱うことにより、データの検索、利用が容易になる ファイル操作・管理はOSの重要な仕事の一つ
ファイルの構造 論理レコード(logical record) 物理レコード(physical record)、ブロック OSで扱われるデータの最小単位 ユーザプログラムの入出力の単位 物理レコード(physical record)、ブロック OSが補助記憶装置との間で入出力をやりとりする単位 レコードの長さによる区分 固定長レコード 可変長レコード 不定長レコード 特定のファイル構造を全く支援しない cf.) Unix, MS-DOSなど ファイルは単なるバイト列で、バイト単位の入出力(ストリーム入出力) ユーザプログラムが、ファイルの構造とそれに基づく入出力を行う
ファイル・アクセス法 Sequential Access(逐次アクセス・順アクセス) 読出し、書込みをファイルの先頭から順に行う ファイルポインター:最後にアクセスした位置 巻き戻し(rewind):ファイルポインターをファイルの先頭に戻す 磁気テープなど ファイル全体をアクセスする場合などは効率が良い 当該情報のアクセスには不向き Unixでは、基本的にSequential Accessであるが、ファイルポインターの移動は自由 Random Access(ランダムアクセス・直接アクセス) 読出し、書込みを任意の場所から行う アクセスごとに位置(相対ブロック番号)を指定 相対ブロック番号:ファイルの先頭からのブロック番号 当該情報の高速アクセス ファイル全体をアクセスするのは不向き
ファイルシステム コンピュータ内の膨大な数のファイルを効率良く、統一的な方法で管理するためにOSが用意するシステム ディレクトリ:ファイルの登録簿。ファイル情報を記録・管理する。図書館でいうと図書目録 ファイル:データの実体がある塊 管理するもの ファイルのある場所(ディレクトリ構成) ファイルのアクセス属性 ファイル操作・ディレクトリ操作 補助記憶装置とのやりとり
ファイルの属性(attribute) ファイルの管理情報 名前 型 物理的位置 サイズ 保護情報 参照時刻
ディレクトリに登録される名前の刑式 MS-DOSでは、8+3(ファイル拡張子) BSD Unix では、最大255バイトの可変長文字列 拡張子:ファイルの属性を簡略化して記述するための短い文字列。名前と拡張子は、.(ドット)で区切られる
階層的なディレクトリ構成 木構造 ルート(根)ディレクトリ パス名 ルートから葉に至るまでの経路(場所を示す) A B C ルート ファイル 木構造 ルート(根)ディレクトリ パス名 ルートから葉に至るまでの経路(場所を示す) A B C ルート ファイル ディレクトリ
階層構造ディレクトリの用語 ルートディレクトリ:木構造の根にあたる部分のディレクトリ。全ての頂点 カレントディレクトリ:各ユーザあるいはプロセスが現在作業しているディレクトリ 絶対パス:ルートディレクトリからのパス名 相対パス:カレントディレクトリからのパス名 ホームディレクトリ:ユーザがログインしたときにカレントディレクトリとなる場所
補助記憶装置の構成 トラック 読み書きヘッド シリンダ ディスク シーク動作 回転 アクセスアーム
磁気ディスク装置の各部 磁気ディスク: 円盤上の記憶面を多数、同一の回転軸で回転させた構造(前のスライド) 磁気ディスク: 円盤上の記憶面を多数、同一の回転軸で回転させた構造(前のスライド) トラック: 各記憶面上で情報を記録する同心円 シリンダ: 各記憶面の同じ位置のトラックの集合で、ヘッドの移動なしに読み書きができる円筒状に定義されるもの。 ヘッド: 各記憶面に配置された読み書きヘッド セクタ: トラックをいくつかの固定長の物理レコードに分けたもの。読み書きの単位 磁気ディスクは、シリンダ数、ヘッド数、セクタ数で表現されることが多い(CHS)
ディスクに対するアクセス seek(シーク): アクセスアームを移動させてヘッドを指定したシリンダに位置づける。これに要する時間をシーク時間という 指定したヘッドを選ぶ トラック上の指定したレコード(セクタ)がヘッドの位置まで回転するのを待つ。これに要する時間を回転待ち時間(latency) 磁気ディスクのように、ディスク上の任意のアドレスを指定してレコードにアクセスできる記憶装置をランダムアクセス記憶装置(random access storage device)という 半導体記憶装置を通常のディスクのように使用できるようにしたものをRAMディスクという
ボリュームとファイル管理 記憶媒体(storage medium): 磁気ディスクや磁気テープなど情報を記憶する媒体 ボリューム(volume): 記憶媒体の総称 ボリュームの保持する情報 初期プログラムローダ(IPL) ボリューム管理情報: ボリューム名、ボリューム構成情報、領域割り当て情報、不良ブロックなど ファイルの管理情報: ファイル名、型、大きさなどのファイル属性 ファイルデータ: ファイルの中身 VTOC(Volume Table Of Contents) : MVS Super-Blockとi-node : Unix FAT(File Allocation Table) : MS-DOS フォーマット処理(Format): 記憶媒体を使用する前に、ボリュームの状態(不良セクタなど)やトラックやセクタなどの構造を磁気的に作りあげておく操作
ボリュームの構成 i-node リスト データ領域 データ領域 ブートブロック スーパーブロック シリンダブロック IPL ブートブロック スーパーブロック シリンダブロック データ領域 i-node リスト FAT ルートディレクトリ データ領域 a) Unixの論理ボリューム b) MS-DOSの物理ボリューム
ディレクトリの設計と名前の管理 MS-DOSの場合: ディレクトリにファイルの属性情報と領域を管理する表(FAT)のインデックスが登録される。 ルートディレクトリには、ボリュームラベルも登録され、ルートディレクトリのみ固定の大きさと位置を持つ MVSの場合: ボリュームごとのファイル管理はVTOCで行われ、ボリューム名とファイル名を指定してファイルを特定する。 ただし、カタログと呼ばれる論理的なディレクトリの木によって、ユーザは物理的なボリュームを意識しなくてもよいようになっている Unixの場合: 論理ボリュームごとにそこに存在するファイルを登録した木を作成し、システム起動時に起動されるボリュームのファイルシステムをルートファイルシステムとして、別々の論理的なディレクトリツリー(ファイルシステム)をマウント(mount: 木を結合すること)ことによって、システムに一本の論理的なディレクトリツリーを作成する。 詳しくは、黒板の図を参照のこと。
領域の割り当て ファイル全体を連続領域割り当て ブロックなどの固定領域を連続領域割り当て できるだけ連続した領域を割り当て 実現が簡単 外部断片化 ファイルの大きさの予想が困難 詰め直し ブロックなどの固定領域を連続領域割り当て 同じファイルのブロックが散在してしまう 内部断片化 できるだけ連続した領域を割り当て エクステント: 割り当てられる連続領域。トラックもしくはシリンダ単位。 ファイル作成時もしくは拡張時に必要に応じてエクステントを割り当て 管理が複雑 アクセスは高速
領域の管理 リスト方式 索引方式 空き領域の管理 ビットマップ方式
プログラムとファイルの結合 ファイル制御ブロック(FCB, file control block): ユーザが指定するレコードの長さやアクセス法、ファイルポインタ(sequential accessの場合)を管理するデータ構造 cf.) MVSでは、DCB ファイル記述子(file descriptor): Unix では、FCBは必要なく(i-nodeで管理)、システムコールにopenしたファイルのファイル記述子を渡してファイル操作する cf.) MS-DOSでは、ファイルハンドルがファイル記述子と同等である。
期末試験について 出題範囲(第5回から第9回目まで) 出題形式(4題出題、2題中1題選択で計3題):記述式:配点30点 メモリ管理、仮想メモリ、アドレス変換 入出力制御 並行プロセス、排他制御、同期操作 プロセス間通信 出題形式(4題出題、2題中1題選択で計3題):記述式:配点30点 試験時間:45分(試験開始は11時15分) 試験開始までは、自習時間とする