0

i ノードとディスク ブロックを使用するディスクに格納できるファイルの最大サイズを計算する方法がわからないという質問があります。

ページ サイズが 4096 バイトであると仮定すると、フレームを指すページ テーブル エントリは 8 バイト (ポインタといくつかのフラグの 4 バイト) を必要とし、別のページ テーブルを指すページ テーブル エントリは 4 バイトを必要とします。各レベルのページ テーブルが 1 つのページに収まる必要がある場合、32 ビット アドレス空間をマップするためにページ テーブルが必要ですか?

inode と 4096 バイトを格納するディスク ブロックを使用するディスクに格納できる最大ファイル サイズ。各 i ノードは 10 エントリを格納でき、最初の i ノードは最後の 2 つのエントリをカスケード i ノード用に予約します???

質問の最初の部分では、レベルの合計数は 3 でしたが、2 番目の部分のやり方がわかりません。

4

1 に答える 1

1

あなたが説明しているのは、EXTファイルシステムのように聞こえます。

EXT3 は合計 15 個のポインターを使用します。

最初の 12 エントリは直接です。データ ブロックを直接指しています。最後から 3 番目のエントリは、レベル 1 の間接エントリです。これは、レベル 1 のエントリで完全に満たされたブロックを指します。最後から 2 番目のエントリは、レベル 2 間接です。これは、レベル 1 間接で完全に満たされたブロックを指します。最後のエントリはレベル 3 間接です。

このシステムの最大ファイル サイズは通常、オペレーティング システムの制限であり、通常は 16GB から 2TB の間です。

理論上の最大値は 12I + I^2/P + I^3/P^2 + I^4/P^3 です。ここで、I はバイト単位の inode サイズ (通常は 4096 ですが、異なる値が可能です) であり、P は次のとおりです。ポインターのサイズ (バイト単位) (4)。これにより、理論上の最大サイズは 4,402,345,721,856 バイトになります。

EXT3 inode ポインタ構造

于 2012-08-03T17:32:00.577 に答える