2017-05-05 21 views
2

page-size4KBpage-entryサイズの4B 32ビットマシンがあれば今、私は、階層ページテーブル構造ではOS階層ページテーブル

にメモリ管理を勉強しています。

アドレスは私が20 - 12を知っ10-10-12

に分けビットである理由、12ビットは4Kバイトでoffset値です -

> 2^12しかし、20ビットは10-10

がそれであるになる理由11-9または12-8に不可能ですか?

答えて

1

2つのレベルのページテーブルを使用しているためです。 20-12は1レベルのページテーブルのみを使用し、メモリを消費します。

最初の10ビット(0-9)は、PGDIRの対応するエントリです。そのエントリはページテーブルを指します。このページテーブルでは、2番目の10ビットに対応するエントリにアクセスします。 (10-19)

動機:
は、1つのプロセスを維持するために必要なすべてのページテーブルを格納するためのオーバーヘッドを考慮してください。
#pages * size_entry = 2^20 * 4 = 4MB

これはかなりです!
しかし、追加の1024ページテーブルを指し示す1024個のエントリを持つ第1レベルのページテーブルを使用するとどうなりますか?前のように1024 * 1024 = 1Mのエントリです。

今、メモリオーバーヘッドは何ですか? 1K×4 + 1×4 = 4KB + 4B~ = 4KB