計算機システム概論・5回目 本日のトピック:ファイルシステムについて ユーザの視点からみたファイル,ファイルシステム ファイル,ファイルシステムとは ファイルシステムの提供する機能 OSの視点からみたファイル,ファイルシステム ファイルシステムの実現法 1 ファイルとファイルシステム ファイル: 情報を記録するもの 電源を切っても消えない(不揮発性) 新しく作ったり,消したり,読んだり,書き換えたりできる ファイルシステム: ファイルを整理・収納するための仕組み 木構造ファイルシステムが一般的 2 ハードディスクの仕組み ヘッド ディスク0 ヘッド0 ヘッド1 横から見た図 トラック(1周分) ディスク 両面に磁性体塗布 セクタ 読出,書込の 最小単位 上から見た図 3 ハードディスクにおけるデータ格納 データの読み出し・書き込みはセクタ単位で行われる 1セクタ=数百~数キロバイト:読み書き時の1ブロック ブロックのアドレス=(ヘッド番号,トラック番号,セクタ番号) 平均すると,どのブロックもアクセスにかかる時間は同じ... 連続したセクタの内容を読み込むのは,比較的早い 違うトラックの内容を読み込むには,ヘッドの移動が必要 ⇒時間がかかる ファイルシステムの格納を念頭においたものではない 4 OSの役割 OSの仕事: ユーザに対しては,論理的なファイルシステムのビューを提供 外部記憶装置へは,単なるバイト列を格納 OS 3F 2A 82 FE 91 0A BA 5D 2E 1A 00 F3 E3 05 08 18 バイト列 ファイルシステム 5 OSの役割:ユーザ向け OSの任務(ユーザ向け): 論理的で使い易いファイルシステムのビューを提供すること 木構造ファイルシステム 木構造システムの拡張 ファイルシステムを操作するための機能を提供すること ファイルの作成や削除,編集等 ファイルへのアクセス権設定と権限管理 6 木構造ファイルシステム 木構造ファイルシステムの概要 「ディレクトリ(フォルダ)」と呼ばれる特殊なファイルが存在 複数のファイルを格納する「容器」 ディレクトリの中には,他のファイルやディレクトリが存在 ファイルの構成は,全体として巨大な木構造になる ルートディレクトリ: 根に相当するディレクトリ dir1 dir2 dir4 file1 file3 file2 dir3 file4 (プロセスの)カレントディレクトリ: プロセスが,現在作業 を行っているディレクトリ 7 木構造ファイルシステムの拡張(1) 木構造ファイルシステムを更に使いやすくするための機能 リンク(ショートカット) 木構造の他の部分を,自分の子のようにみなす機能 実体は一個だけ.参照のための道筋が複数ある dir1 dir2 dir1 dir3 dir2 dir3 file1 file2 dir4 file3 file1 file1 file2 dir4 dir4 file3 リンク:仮想的な親子関係 ユーザからのビュー 8 木構造ファイルシステムの拡張(2) マウント 複数のファイルシステムを,接いでひとつにする ファイルシステム1 ひとつの大きな ファイルシステム マウント ファイルシステム2 NFSマウント: ネットワーク上にある他のマシンの ファイルシステムをマウントすること 9 ディスクマウントの例 1台のディスク内に,複数の論理的ファイルシステムを構成 マウントして,一つのファイルシステムに「見せかける」 ⇒ 運用上の利便性確保 /usr にマウント /data にマウント スワップ領域として確保 /tmp にマウント ルートファイルシステムに使用 /var にマウント 個々の分割単位:ボリューム,パーティション 10 ユーザに提供する操作 ファイルシステム:様々な操作をユーザに提供する 個々のファイルに対する操作 ファイルの中身を読む,書き換える ファイルのアクセス権を設定する ファイルの存在に対する操作 ファイル(含ディレクトリ)を作る,消す ファイルを他の場所に移動する,名前を変える ファイルをコピーする,リンクを作成する カレントディレクトリを変更する 11 ファイル内容への参照方法について ファイル内容をいかにして参照するか:2通りのサービス 順編成ファイル:柔軟性に欠けるが,負荷は小さい ファイルの先頭から順番にしか,読み書きできない 1 2 3 4 5 … 直接編成ファイル:柔軟だが,負荷が小さい ファイルの中のどこでも自由に読み書きできる 3 2 5 1 4 12 アクセス権について ファイルは,ユーザ全員の共有資源: 基本的には,誰がどのファイルを読み書きしても良い 必要に応じてアクセス制御を行う 誰がそのファイルを読めるのか 誰がそのファイルに書き込めるのか UNIXの場合: ファイルごとにアクセス権設定可能 {所有者,同グループ,他人}×{読出,書込,実行} rwx r-x --- myfile r w x 13 ファイルの存在に対する操作 ファイルの存在に対する操作 ファイルの作成,消去,移動,コピー... ⇒ ファイルシステムの実現と,密接に関係する さきに,ファイルシステムの実現法について考える ボリュームの全体設計 未使用ブロックの管理 ファイルの表現方法 ディレクトリの表現 14 ディスクボリュームの内部構成 ひとつのボリューム(パーティション) データ領域...ファイルの中身を格納 インデックス領域...ファイルの索引情報を格納 スーパーブロック...ボリューム管理用情報を格納 (未使用ブロックに関する情報など) 未使用ブロック管理:いくつかの方法が知られている ビットマップ法 連結リスト法 15 ビットマップ法 データ領域ブロックと一対一に対応させる形で,2進の ビット系列(ビットマップ)を,スーパーブロックに準備する ビットマップ中のデータで,ブロックが使用中か否か示す 未使用ブロックに対応するところは0 使用中ブロックに対応するところは1 データ領域...Bブロック 1 1 0 1 0 1 0 0 1 1 0 1 ビットマップ (Bビット) 16 連結リスト法 未使用ブロックを,連結リストの形で管理 (メモリ管理のときと同様の手法) スーパーブロックには,リストの先頭要素を格納 17 ファイルの実現 インデックス データ領域 ファイルは... インデックス領域に管理情報を保持 データ領域に中身(実体)を保持 具体的な実現法: 連続割付 リンク割付 索引割付 18 連続割付 データ領域の連続したブロックに,実体を割り付ける インデックス領域には,開始ブロックとサイズを記録 インデックス領域 name start size A 2 3 B 6 2 C 8 4 D 12 3 データ領域 0 1 2 3 4 A A A 8 9 5 6 7 B B 10 11 12 13 14 15 C C C C D D D ディスクの特性から,アクセスは効率的に行える ファイルサイズを動的に変更できない 断片化の問題 19 リンク割付 非連続に配置されたファイルの実体を,ポインタで結ぶ インデックス領域には,リストの先頭を記録 インデックス領域 name start A 13 B 1 C 10 D 8 データ領域 0 1 2 D B 8 D 9 3 4 5 C A 6 7 B C 10 11 12 13 14 15 C C A D A ファイルサイズの動的変更が容易 基本的に,順編成ファイルしか提供できない 事故(ブロック破損)に対する耐性が低い 20 索引割付 非連続に配置された実体を,索引ブロックで取りまとめる インデックス領域には,索引ブロックの位置を記録 インデックス領域 name index A 5 B 1 C 10 D 8 13 4 15 データ領域 0 1 2 D B 8 D 9 3 4 5 6 C A 7 B C 10 11 12 13 14 15 C A A 柔軟なファイル操作を提供できる 事故の影響を最小限に封じ込める 索引ブロックのために,余分なブロックを消費 21 UNIXのファイル割付 索引割付の手法を拡張したもの インデックス領域は,以下の15個のブロックの位置を保持: a) 直接ブロック×12 b) 1次索引ブロック×1...「ブロック ×256個」を格納 c) 2次索引ブロック×1...「1次索引ブロック×256個」を格納 d) 3次索引ブロック×1...「2次索引ブロック×256個」を格納 インデックス領域…「15個のブロック位置を持つ構造体」の集合 name b0 b2 … b11 i1 i2 i3 A B i ノード C 22 i ノードの構造 3次索引 ブロック i ノード 直接ブロック 2次索引 ブロック 12 1次索引 ブロック 256 間接ブロック 256 二重間接ブロック 256 三重間接ブロック 23 ファイルサイズの上限 1ブロック=4KBのとき,ファイルサイズが 4x12 = 48KB以下 ...直接ブロックのみ使用 4x12+4x256 = 1072KB以下 ...間接ブロックまで使用 4x12+4x256+4x(256)2 ≈ 256MB以下 ...二重間接ブロックまで使用 4x12+4x256+4x(256)2 +4x(256)3 ≈ 64GB以下 ...三重間接ブロックまで使用 24 ディレクトリの表現 ディレクトリ: ファイルの一種 そのディレクトリに属するファイルの情報を含む i ノード番号とファイル名からなるテキスト形式の表 i ノード i ノード番号 1118 16609 87886 9363 ファイル名 . (自ディレクトリ) ..(親ディレクトリ) .cshrc work 25 ファイルへのアクセス /home/is/kaji/abcにアクセスするには... ルートディレクトリの i ノード(固定) 995 : 995 home : : 12211 is : 12211 : 96302 abc : 34165 96302 Hello! : 34165 kaji : 26 ファイルの作成と消去 ファイルの作成: 新しい i ノードを確保 未使用ブロックを持ってきて,実体を格納する i ノードがファイルの実体を指すようにする 親ディレクトリに i ノード番号と名前を登録する ファイルの消去: 親ディレクトリから登録を抹消する 使用していたブロックを未使用ブロックとして登録する i ノードを解放する (データ部分が消去されるわけではないことに注意) 27 本日のまとめ ファイル管理について OSが提供するファイルシステムとその機能 ディスク装置について 未使用ブロックとファイル割付 次回:ユーザ管理について 実験課題(提出不要):UNIX上でmountコマンドを実行し, どのようなファイルシステムがマウントされているか確認せよ 28
© Copyright 2024 ExpyDoc