アットウィキロゴ

ファイルシステム

ファイルシステム

カーネルの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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。