2017-02-14 16 views
0

ページテーブルのエントリサイズは物理アドレスが22、ダーティビットなどが26ビットしか必要ではないという問題を解決しました。しかし、それは32に丸められました。なぜなら、26は2の累乗ではないからです。私が紛失している単純なものでなければならないのですが、なぜそれをしなければならないのですか?ありがとう!ページテーブルエントリサイズ - なぜ2の累乗ですか?

答えて

1

ここでは、ページテーブルエントリに他のデータと同様にアクセスする必要があることを理解する必要があります。通常、これはバイトまたはワードに収まる必要があることを意味します。

バイトは8ビットしか保持しないため、十分なスペースがありません。多くのマシン(と私はあなたのマシンもそうだと思う)では、単語は32ビットです。

したがって、ページテーブルエントリには32ビットのスペースが割り当てられます。

0

ページテーブルエントリのエントリ数とサイズは2つのものです。明らかに、サイズは、エントリの数と単一のエントリのサイズとの比に等しい。どの仮想ページがどの物理ページにマップされているかを示すページテーブルエントリがあります。つまり、ページテーブルエントリに必要なエントリ数は、所有している仮想ページの数です。これは総アドレス可能スペースをページのサイズで割ることによって計算することができる。 (例えば、32ビットのアドレスと4kのページサイズは、2をパワー20のエントリに与えます)、エントリの仮想部分は20ビットになります。物理的な部品エントリのサイズは、利用可能な物理メモリによって決まります。通常、ページサイズは変わりません。このようにして、1つのエントリに必要なビットを計算することができます。次に、これにエントリーの数を掛けることができ、合計サイズが得られます。

関連する問題