ファイルシステム
カーネルのVFS(Virtual File System:仮想ファイルシステム)が、データ格納の仲介作業を行っている。二次記憶装置を効率的に管理
ローカルファイルシステムは、システムの起動時にVFSに登録。このときに「ext2」「ext3」といった「ファイルシステムタイプ」(file_system_type)がVFSに設定
固有の命令をVFSの統一的な命令に置き換える作業(open()という命令は、ext2_open_file()といったext2固有の命令に変換)etc..
iノード(index node)
- ディスク情報やブロック情報、位置情報を持つ。一意に識別
- iノードの消費量とディスク使用量は完全には一致しない。設計を見直す必要がある
df コマンド
df -i コマンド
- iノードを多く使用している場合、iノードのキャッシュの検索が遅くなり、アクセスに時間がかかるといった問題も生じる。B*Treeで高速化?
スーパーブロック
- iノードは書き込みなどの状態が変化すると、その都度現在の状態を示すフラグ(ビット)を更新
- 1つのファイルシステムについて1つだけ存在し、マウントされたローカルファイルシステムに対する情報を保存
- メモリ上に保持。シャットダウンせずにいきなり電源を切ってしまった場合、不整合が生じる可能性 -> 定期的にディスクにコピー
- ダーティビットが付けられたiノードは、書き込みがなされている=「汚れた」バッファであり、「ディスクに書き込まれる」ためのキュー(列)である、汚れた(DIRTY)リストにつながれる
非同期処理
- アプリケーション側で行われた書き込み操作などは、実際にはカーネルのキャッシュに対して行われる
- カーネルはユーザーの書き込み要求に対しては、メモリに「書き込んだ」というビットフラグを立ててすぐにリターンを返す
- 書き込み要求はキャッシュバッファに蓄えられて、updateデーモンが定期的にディスクに書き込む(フラッシュ)
- カーネル内部の処理
最終更新:2012年02月20日 09:56