ページ テーブル エントリのサイズが、ページではなくフレームのビット数に基づいて計算されるのはなぜですか?
PAGE FRAME サイズは常に PAGE サイズと同じです。
ページ サイズがページ テーブル エントリのサイズとどのように異なるのか、誰でも説明できますか?
PAGE TABLE ENTRY サイズは PAGE サイズに依存しますが、そこから計算されません。
PAGE TABLE は、プロセスの論理アドレス空間を定義するデータ構造です。プロセスのアドレス空間は、ページのセットで構成されます。ページのサイズは 2 の倍数にできます。私が確認した最小のページ サイズは 512 バイトで、最大のページ サイズはメガバイト (またはギガバイト) になる可能性があります。
PAGE TABLE は PAGE TABLE ENTRIES で構成されます。PAGE TABLE ENTRY は、プロセスの論理アドレス空間内の単一のページを記述します。PAGE TABLE ENTRY は、論理ページがマップされる物理ページ フレームとページの属性を識別します。
PAGE TABLE ENTRY は、ページを記述するためにいくつかのビット数と、ページを物理ページ フレームにマップするためにいくつかのビット数を必要とします。
PAGE TABLE ENTRIES のサイズは常に 2 の累乗であり、通常は 4、8、または 16 バイトの長さです。したがって、PAGE サイズは、PAGE TABLE ENTRIES サイズよりも桁違いに大きくなります。
PAGE を PAGE FRAMES にマップするために使用されるビット数は次のとおりです。
maximum amount of physical memory / page size
より大きな物理メモリのサポート => 大きなページ テーブル エントリ。
大きい PAGE サイズ => 小さいページ テーブル エントリ。
システムが 512 (2^9) バイトの PAGES を使用して 2^32 バイトのメモリをサポートする場合、論理ページを物理ページ フレームにマップするために PAGE TABLE ENTRY に 2^23 ビットが必要です。これにより、32 ビットの PAGE TABLE ENTRY の PAGE 記述用に 9 ビットが残ります。