OS がファイル システム内のファイルをどのように見つけるのか興味があります。
たとえば、FAT ファイル システムにはファイルの DB があることは知っています。
OS はファイルを非常に高速に見つけることはわかっている
ので、FAT データベースを調べるのにバイナリ検索を使用するかどうかを知りたいです。
または、これを行うより高速な方法はありますか?
また、FAT データベースを検索せずに、OS がファイル システム内のファイルの場所をすぐに推測する方法はありますか?
答え1
正直に言うと、この質問には多くの答えがあります。ここでは数え切れないほどです。主に、タイプファイルシステムとそれを読み取る OS、そしてファイルシステムのどの機能が有効になっているかなどです。
それぞれのファイル システムには、ディスク上の 1 つ以上の場所の名前/パスを変換するための、説明したような「データベース」があります。この「データベース」の動作によって、各ファイル システムが異なります。一部の方法は、他の方法よりも特定のタスクに適しています。障害が発生した場合に回復しやすく冗長性のある方法もあれば、速度のみを重視し、単一の障害が発生した場合にはほとんど回復できない方法もあります。
OS とファイル システムの種類に応じて、「データベース」は、ディスク上の位置を特定するプロセスを高速化するために、部分的にまたは完全に RAM にロードできます。一部のファイル システムでは、ファイルをすばやく特定するために、リンク リストと B ツリーまたはその他の種類の順序付きツリーを使用します。ジャーナリングによっても、読み取り/書き込みプロセスが劇的に高速化されます (適切な条件が満たされている場合)。実際にはデータベースであるファイル システム (ほとんどが独自のもの) さえあります。
本当の質問は...なぜ知りたいのか...そして何を達成しようとしているのかです。より具体的な回答が必要な場合は、どの OS/プラットフォーム/ファイルシステムについて話しているかを詳しく教えてください。