3

ページングを理解しようとしていますが、いくつかの問題が発生しています。理解できない問題の例を見つけたので、誰かが私を正しい方向に向けてくれることを望んでいました:

問題の理論上のシステムには、64K (2^16) バイトのメモリがあります。ページ サイズは 4K バイト (2^12) で、ページ テーブルには 15 個の全体があります。理論上のプロセス X のページ テーブルの各エントリには、ページ番号、存在/不在ビット、およびページ フレーム番号があります。

物理アドレスのルックアップでは、ページ サイズをオフセットに割り当てられる量として使用し、残りのアドレス空間をページ フレーム番号に使用することを理解しています。ただし、アドレス空間番号がないと、理論上のシステムで物理アドレスを表すために必要なビット数を計算する方法がわかりません。

さらに複雑なことに、最大のアドレス空間 (たとえば 32K バイト) が与えられた場合、仮想アドレスをどのように表現するかわかりません。ページテーブルの構造を考えると、単純にアドレス空間のサイズのような気がします。これは私も正しく感じません。

このようなものがどのように機能するかを明確にするための助けはありがたいです。私の調査では、アドレス空間のサイズをページ サイズで割ることによって、テーブル エントリの数を計算できることに気付きました。これで、物理アドレスを表すために何ビットを使用するかという私の質問に答えることができると思いましたが、その仮定には欠陥があることに気付きました。

みんな、ありがとう。

MN7

4

1 に答える 1

1

この質問に答えてみます。おそらく、与えられたアドレス空間番号からどのように導出できるか知りたいでしょう:

  1. ページテーブルでページ番号を検索するために確保されているビットと、
  2. 識別されたページ内のオフセットを計算するためのビット。

これはOSの設計上の決定であり、ページ番号とオフセットのビット数を決定する前に、質問への答えが実際に事前に決定されます。

お役に立てれば。私はより良い答えを受け入れます。

于 2013-02-18T07:11:44.347 に答える