0

私は次のページテーブルを持っていますprocess1

ここに画像の説明を入力してください

16bitページングシステムがアドレスとページサイズで機能すると仮定すると、4k

16000そして、論理アドレスを物理アドレスに変換したいと思います。

私はこのトピックで少し新しいので、私に気楽に行ってください:

部分的な解決策:アドレスはページテーブルの16000セル番号に適合3しているので、そのセルとその格納されているフレームを操作する必要があると思います- 2

オフセットと物理アドレスを今すぐ見つけるにはどうすればよいですか?

ありがとう

4

1 に答える 1

6

あなたの場合、プロセス1は現在、最大4 * 4kバイトの仮想メモリにアクセスできます。
一般に、プロセスは最大 4 GB の仮想メモリにアクセスできます (実装によって異なります)。
これで、指定したテーブルが仮想メモリを実際の物理アドレス (RAM 上) にマップします。ページ テーブルの各エントリで、4k のメモリが仮想空間から物理空間にマッピングされます。
したがって、アドレス 16000 が から始まる物理アドレスにマップされるページ テーブルの 3 番目のエントリに対応する物理アドレス8192(3*4096) till 12288 (8192+4096)

16000 mod 4096 =  3712(offset).

仮想ページ 2 の 3172 バイトのオフセット、つまり物理ページ 3 の 3172 のオフセット (アドレス 8192) で、アドレス 16000 に対応するデータを見つけます
。プロセスが行うアドレス アクセス。
この概念を理解するための良いリンクはこちらです。

乾杯 :)

于 2012-07-26T04:49:42.573 に答える