OS14-1
暗記
-
UFSとは
UFS (UNIX File System) は、UNIX系OSで用いられ
ているファイルシステムの総称である
4.2BSDで実装された Fast File System (FFS) のことを 指す場合が多い(元のUFSよりも高速)
ハードディスクの効率的な利用を前提に設計
各ファイルはiノードと呼ばれる管理部とデータの実体からなる
ファイル実体、iノードともに固定長領域 大容量ファイルにも、小規模ファイルにも効率的に
ファイル割り付けができる工夫をしている
ファイルの保護機能(パーミッション)がある
-
UFSの構成要素
-
UFSとは
ボリュームをシリンダ単位のシリンダグループに分け、さらにセクタ単位でブロックに分ける(FFS)
-
UFS iノードによるファイル割り付け方式
iノードから記憶ブロックを直接参照する場合と、間接ブロックを使う(1段~3段)場合がある
ブロックアドレス配列の0番~11番は記憶ブロックを直接 参照
- ブロックサイズが8KiB、ディスクアドレスが64ビット(8 バイト)なら、1024エントリ × 8KiB = 8MiB
12番は間接ブロックを使う
13番は二重間接ブロックを使う
- 1024エントリ × 1024エントリ × 8KiB = 8GiB
14番は三重間接ブロックを使う
- 1024 × 1024 × 1024エントリ × 8KiB = 8TiB
iノードの個数は固定(多めに用意)
最近の新しいファイルシステムでは動的に構成可能
-
iノードの様子 次図でます
-
ハードリンクとは
UNIXでは、同じボリューム内であれば、異なるパスが 同一のファイル(iノード)を参照できる
ディレクトリ内のエントリからiノードへの参照をハード リンクと呼ぶ
- コマンドラインからは ln コマンドを使って設定する
iノードには、何カ所から参照されているか(ハードリン
クの数)を数えているカウンタがある
- カウンタが0になるとファイルは削除される
- 通常は1
- UNIXには「ファイルを削除する」ためのOSの機能はな く、「ハードリンクを切る」機能(unlink)がある
-
シンボリックリンクとは
UNIXでは、あるパスAを持つファイルに対し、別の ファイルBを「パスAを持つファイル」であるかのように振る舞わせることができる
iノードのファイル属性がシンボリックリンクである ファイルは、その実体のデータブロックに記述され
たパス名のファイルの別名であるように振る舞う
- 対象となるファイルは別ボリュームにあってもよい
- ハードリンクのカウント数は変化しない
- 参照している先にファイルがなくなると、アクセスできな
くなる
- コマンドラインからは ln -s コマンドで設定する
-
シンボリックリンクの利用例
シンボリックリンクは便利な機能として Unix(macOSも含
む)で使われ続けている
ディスク装置の容量を増やすため、新しい装置を増設し、一部の
ディレクトリを新しいディスクに移し、以前のディスク装置からは
シンボリックリンクで参照する
。
*移動したディレクトリには、今までと同じパスでアクセスできる
*異なるバージョンをそれぞれにディレクトリで管理しつつ、常に
同じパスで最新のバージョンが参照できる
-
ジャーナリング
データの整合性を保つため、操作の失敗を取り消し/やり直すための仕組み
装置に対する操作列(ログ)を記録領域(ジャーナリング領域)に登録してゆき、ひとまとまりの操作が揃った
ら実際の変更を行う
ログが揃う前に操作が失敗したら、そのジャーナルは破棄
ファイルシステムに不整合が生じても、ジャーナルに基づいて 操作をやり直すことができる
-
NTFSの特徴
Windows NT/2000/XP以降で使われる 理論上、約264クラスタが管理可能(推奨は2TiB)
所有権や保護、ハードリンク、シンボリックリンクの機 能を有する(UNIXの規格であるPOSIXに準拠)
ファイルの管理は B+木で行われるため、高速である 暗号化や圧縮などの機能も備えている ジャーナリングなどにより、堅牢性が向上している 小型の機器に搭載するには処理が複雑すぎる→exFAT
仕様が公開されていない。従って、他のOS(各種UNIX 系OS、macOSなど)では、安全に直接のアクセスがで きない →異種OS間ではネットワーク共有機能を使う
-
APFSとは
Apple File System
macOS、iOS 向けのApple社のファイルシステム
これまでの HFS+(Mac OS 拡張フォーマット)の問題点を解消するために新たに開発され、2017年からmacOS、iOS、AppleWatch (watchOS) までで採用されている
ディスク全体の暗号化に対応
効率的かつ高い耐故障性を持つジャーナリングシステム
ローカルなスナップショット領域(パージ可能領域)を持つ。例えば iCloudや TimeMachineによるバックアップの情報を保存しておき、スタンドアローンで の動作に備える。このパージ可能領域が領域を圧迫することもある。
-
フォーク 特にリソースフォークとは
旧Mac OSのファイルシステム HFS+ では、アイコンなどの定 型的なデータを格納する部分をリソースフォークと呼ぶ(通常 のデータ格納部分はデータフォーク)。
-
拡張ファイル属性とは
ファイルシステムによっては、メタデータを格納する場所を持 つことができる。
macOSのファイルシステムでは、使用している文字コード、ダ
ウンロードしたファイルかどうか、などを保持できる。 - これらは xattrコマンドで操作可能。
他のファイルシステム(FATなど)にコピーすると「._元の名前」 という別のファイルが作られる
-
キャッシュメモリとは
大容量の保持が可能なメモリの一部を、容量が小さ いがアクセス速度に優れる別のメモリにコピーしてお くことで全体的な効率の向上を図る手法他の規則装置と比べて早い
CPUの次
-
ディスクキャッシュとは 主なの2つ
プロセスが一度アクセスしたファイルの内容を主記憶上に保持しておき、高速なアクセスを実現する
複数のプロセスからアクセスされるファイルも1箇所に保持しておけばよい
書き込みがあって内容が変更される場合:
ライトスルー (write through)
- 変更があるたびに二次記憶装置に変更を反映させる - 変更が多い場合、効率が悪化する
ライトバック (write back)
- 処理が終了するか、キャッシュから情報が追い出される時だけ、
二次記憶装置に変更を反映させる(仮想記憶の手法)
- 効率は良いが、異常終了などの場合にキャッシュの内容が二次記 憶装置に反映されないため、データが破壊される危険がある(定 期的に書き戻すなどで対応)
-
メモリマップトファイルとは
ファイルの内容を、仮想記憶上にマップしてアクセス する方式。
(1) OSが管理するキャッシュとして実現する場合と、 (2) アプリケーションがファイル入出力の1つの形態と
して利用する場合とがある。
**仮想記憶機構が、必要な時だけファイル装置と主記憶の間で読み出し/書き戻しを行う。
特にファイルの内容をランダムアクセスするような処理に対して効果的。
-
メモリマップトファイル 利点欠点
利点
入出力の性能を向上させる
- 全データを同時に主記憶にロードする必要はない。 - 書き戻すのは変更があったページだけでよい。
- データをプロセスの領域にコピーする手間がない。 複数プロセスで1つのファイルを共有できる
欠点
ファイルの先頭から順に処理するフィルタのようなプログ ラムでは効果がそれほど期待できない
常に最善の方法ではなく、通常の入出力のシステムコール に比較して、ページフォールトの処理コストが無視できな い場合も存在する
-
非同期入出力とは
(1) プロセスが入力/出力のためにSVCを呼び出す
(2) OSがデバイスに命令を出す
(3) プロセスはブロックされずに次の実行に移る。入力の場 合、すでに利用できるデータがあれば読み込みが行われ るが、そうでなければ読み込みしない
ブロック待ちしないため、リアルタイム処理や柔軟な処理の実
現が可能になるが、安易にビジーウェイトと組み合わせるとシステム全体の効率が低下する場合がある
-