web-dev-qa-db-ja.com

ブロックとセクターの違い

this の記事を参照すると、次のような行があります。

オペレーティングシステムが処理できるブロックまたはドライブアドレスの数には制限があるためです。ブロックをいくつかのセクターとして定義することにより、OSはブロックアドレスの数を増やすことなく、より大きなハードドライブで動作できます。

どういう意味ですか? 「オペレーティングシステムが対処できる」とはどういう意味ですか?そして、その後の数学も明確ではありません。 64 * 512はどのようにして64 * 4未満にすることができますか?

18
SexyBeast

このように見てください。オペレーティングシステムのファイルシステムでデータを格納するために使用されるすべてのブロックには、書き込む実際のファイルデータと共に一定量のメタデータを格納する必要があります。例:タイムスタンプ(作成、変更)、ファイル名、所有権/許可ビット。複数のブロックにまたがるファイルの場合は、それらの各ブロックのIDとそれらが一緒にチェーンされる順序なども保存する必要があります。

OSでのブロックサイズの決定は、トレードオフの例です。ファイルの長さが0バイトであっても、すべてのファイルは少なくとも1つのブロックを占有する必要があるため、ファイルのメタデータを添付する必要があります。ファイルが常にブロックサイズの倍数であることを保証できない場合(例:4kブロックOSでは、すべてのファイルが4k)、正確に収まらないファイルには一定量の無駄が生じます。そのブロック。

小さなブロックサイズは、多くの小さなファイルを格納する必要がある場合に適しています。一方、ブロック数が増えるとメタデータも増えるため、オーバーヘッドでストレージシステムのチャンクを無駄にし、すべてのファイルの場所を追跡することになります。

反対に、大きなブロックはメタデータが少ないことを意味しますが、小さなファイルを保存する場合の無駄が多くなることも意味します。例えば1バイトのファイルを4kブロックに保存すると、そのブロックの3.99kが無駄になります。

これらの各ブロックには、OSによってID番号が付与される必要があるため、一意に識別できます。 8ビットのIDフィールドを使用するOSは、256ブロックしか追跡できないため、拡張すると256ファイルしか追跡できません。ただし、これらの各ブロックのサイズが実際には1メガバイトの場合、最大256メガバイトのデータを格納できます。

リンク先の記事にタイプミス/論理上の欠陥があります:512 [〜#〜] bytes [〜#〜]を意味し、512kではないため、64 * 512バイトは64 * 4kよりも小さく、別名64 * 4096バイト。ほとんどのハードドライブは、512バイトのセクター/ブロックサイズで出荷されました。

ただし、前述のように、小さなブロックはより多くのメタデータを意味します。ドライブサイズが3+テラバイトの範囲になり、512バイトのブロックになったため、3TB/512バイト= 64.4億ブロックのメタデータストレージが必要でした。これは、スペースの無駄遣いの1つです。そのため、現在は8倍の4kブロックのドライブを出荷しているため、8億5000万ブロックのメタデータストレージのみが必要です。可能なファイルの総数は8分の1に削減されましたが、メタデータの量が減ったため、実際に使用可能なデータをより多く保存できます。

ちなみに、64億ブロックは、32ビットシステムで直接処理できるものよりも大きいです。 2 ^ 32の上限は約42億です。したがって、古い32ビットマシンは3TBドライブ全体を使用できませんでした。したがって、より大きなブロックサイズに切り替えます。 32ビットボックスは、8億5000万ブロックを簡単に処理できます。

44
Marc B