3

オペレーティングシステムとページテーブルに関して、ページングとページテーブルには4つの一般的な方法があるようです

基本 - ページ番号とオフセットを格納する単一のページ テーブル

Hierarchical - 仮想アドレスを複数の部分に分割する多層テーブル

Hashed - 同じエントリへの複数のハッシュ マッピングを含むことが多いハッシュ ページ テーブル

Inverted - The logical address also includes the PID, page number and offset. Then the PID is used to find the page in to the table and the number of rows down the table is added to the offset to find the physical address for main memory. (Rough, and probably terrible definition)

I am just wondering what are the pros and cons of each method? It seems like basic is the easier method but may also take up more space in memory for a larger address space. What else?

4

1 に答える 1

3

使用可能なページ モデルを構築するための鍵は、不要なエントリの未使用スペースを最小限に抑えることです。メモリ ルックアップの計算コストを低く抑えながら、必要なメモリ量を最小限に抑えたい場合。

  • Basic は大量のメモリを消費する可能性があり (4 GB のメモリを使用する最新のシステムの場合、テーブルだけで 300 MB になる場合があります)、そのため実用的ではありません。

  • Hierarchical は、実際に使用されているサブテーブルのみを追加することで、そのメモリを大幅に削減します。それでも、すべてのプロセスにはルート ページ テーブルがあります。また、プロセスのメモリ フットプリントが分散している場合でも、セカンダリ テーブルに多くの不要なエントリが残っている可能性があります。これはメモリに関して Basic よりもはるかに優れたソリューションであり、わずかな計算の増加のみをもたらします。

  • ハッシュ衝突のため、ハッシュは機能しません

  • Inverted は、Hashed を機能させるソリューションです。メモリの使用量は非常に少ないです (1 つのプロセスの Basic テーブルと、PID およびチェーンのオーバーヘッドと同じ大きさです)。問題は、ハッシュの衝突 (複数のプロセスが同じ仮想アドレスを使用する) がある場合、一致する PID を持つエントリが見つかるまで、(リンクされたリストのように) チェーン情報をたどらなければならないことです。これにより、ハッシュ コンピューティングに加えて多くのコンピューティング オーバーヘッドが発生する可能性がありますが、メモリ フットプリントは可能な限り小さく保たれます。

于 2015-07-22T23:01:21.570 に答える