7

ページ サイズとページ テーブル エントリ サイズの違いがわかりません。

私の理解では、ページサイズはページテーブルを均等に分割するために使用されます。Pages と呼ばれるブロックと同じサイズを使用して、メイン メモリをフレームに分割します。

ページ サイズ = フレーム サイズ。

絵が下手でごめんなさい。これは、ページ テーブルの視覚化です。

ここに画像の説明を入力

ページテーブルエントリサイズは、各ページエントリが占めるサイズです。そう、

ページ テーブル エントリ サイズ = ページ サイズ。

ただし、ページ テーブル エントリのサイズは、フレーム番号のビット数によって計算されます。

ページ サイズがページ テーブル エントリのサイズとどのように異なるのか、誰でも説明できますか? ページ テーブル エントリのサイズが、ページではなくフレームのビット数に基づいて計算されるのはなぜですか?

上記のすべてのコンポーネントでページテーブルがどれほど正確になるかを視覚化するのを手伝ってください

4

3 に答える 3

4

ページ テーブル エントリのサイズが、ページではなくフレームのビット数に基づいて計算されるのはなぜですか?

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 ビットが残ります。

于 2016-10-04T14:37:22.957 に答える
1

「ページサイズ=コマサイズ」 正解です。「ページフレーム」と呼ばれるチャンクに分割された物理メモリ。「ページ」と呼ばれるチャンクに分割された仮想メモリ。PTE にはページ フレームのベース アドレスが含まれており、オフセットに基づいて実際のアドレスを決定します。Linux カーネルの理解を参照してください。2 メモリアドレッシング。

ここでは、図 3.1 で説明します。

于 2016-09-24T03:56:08.033 に答える