はじめに:-ディスク領域が限られているので、削除されたファイルの領域を新しいファイルに再利用する必要があります。 空きディスク領域を追跡するために、システムは空き領域リストを維持します。 空き領域リストには、ファイルやディレクトリに割り当てられていない空きディスクブロックがすべて記録されます。 この空き領域リストは、次のいずれかとして実装できます。
a)ビットベクトル–空き領域リストは、ビットマップまたはビットベクトルとして実装され 各ブロックは1ビットで表されます。 ブロックが空きの場合、ビットは1であり、ブロックが割り当てられている場合、ビットは0である。
このアプローチの主な利点は、相対的な単純さと、ディスク上の最初の空きブロックまたはn個の連続した空きブロックを見つける効率です。 ブロック番号の計算は、(ワードあたりのビット数)*(0値ワードの数)最初の1ビットのオフセット
b)リンクリスト-空き領域管理への別のアプローチは、ディスク上の特別な場所に最初の空きブロックへのポインタを保持し、それをメモリにキャッシュするすべての空きディスクブロックをリンクすることです。 最初のブロックには、次の空きディスクブロックへのポインタが含まれています。
c)グループ化–空きリストアプローチの変更は、最初の空きブロックにn個の空きブロックのアドレスを格納することです。
d)カウント–別のアプローチは、連続した割り当てアルゴリズムまたはクラスタリングでスペースが割り当てられたときに、複数の連続したブロックが同時に割り当てられたり解放されたりするという事実を利用することである。
効率とパフォーマンス
ディスクは、最も遅いメインコンピュータコンポーネントであるため、システムパフォーマンスの大きなボトルネックを表 効率性:-ディスク領域の効率的な使用は、使用中のディスク割り当てとディレクトリアルゴリズムに大きく依存します。
パフォーマンス:-ほとんどのディスクコントローラには、トラック全体を一度に格納するのに十分な大きさのオンボードキャッシュを形成するローカルメ シークが実行されると、トラックはディスクヘッドの下のセクタからディスクキャッシュに読み込まれます。 ディスクコントローラは、その後、OSにセクタ要求を転送します。 一部のシステムでは、バッファキャッシュ用のメインメモリの別のセクションを維持しており、ブロックは再び使用されるという前提の下で保 他のシステムでは、ページキャッシュを使用してファイルデータをキャッシュします。 ページキャッシュは、仮想メモリ技術を使用して、ファイルシステム指向のブロックとしてではなくページとしてファイルデータをキャッシュします。 仮想アドレスを使用してファイルデータをキャッシュすることは、ファイルシステムではなく仮想メモリとのアクセスインターフェイスとして、物理 いくつかのシステムでは、プロセスページとファイルデータの両方をキャッシュするためにページキャッシュを使用しています。 これは、統合バッファキャッシュと呼ばれます。
ファイルシステムへの書き込みが同期的に行われるのか非同期的に行われるのかなど、I/Oのパフォーマンスに影響を与える可能性のある他の問 同期書き込みは、ディスクサブシステムがそれらを受信する順序で発生し、書き込みはバッファリングされません。 非同期書き込みはほとんどの場合行われます。 一部のシステムでは、ファイルのアクセスタイプに応じて異なる置換アルゴリズムを使用してページキャッシュを最適化します。 シーケンシャルアクセスは、free behindとread aheadとして知られている技術によって最適化できます。 Free behindは、次のページが要求されるとすぐにバッファからページを削除します。 先読みを使用すると、要求されたページと後続のいくつかのページが読み取られ、キャッシュされます。