ページ内変位の役割について

さん  
(No.1)
参考書を見てみると、実記憶のアドレスとページ内変位を足して

m----------------
↑  n

------------------
みたいに図が書かれているのですが(図が下手くそですいません・・・)

この「n」の距離の意味はなんですか?普通に「m」ではだめなんでしょうか?

2019.03.27 23:43
助け人さん 
AP ゴールドマイスター
(No.2)
この投稿は投稿者により削除されました。(2019.03.28 21:56)
2019.03.28 21:56
助け人さん 
AP ゴールドマイスター
(No.3)
犬さんの図がよくわからないので、ページ内変位について書いてみます。

例えば、ページサイズが100バイト、仮想ページ番号が0~4(全部で100バイト×5=500バイト)、物理ページ番号が0~2(全部で100バイト×3=300バイト)、ページテーブルが以下のようになっているとします。

仮想ページ番号  存在ビット  物理ページ番号
0                  1            1
1                  0
2                  0
3                  1            2
4                  1            0

仮想アドレス320番地にアクセスしたいとき、320番地は、仮想ページ番号3のページ内変位20番地ですから、仮想ページ番号3に対応する物理ページ番号2にページ内変位20番地を加算して、主記憶上の220番地にアクセスします。

仮想記憶のページ内変位に関する問題として、以下のものがあります。
ソフトウェア開発技術者 平成19年秋期 午前問23
https://www.ap-siken.com/kakomon/19_aki/q23.html
平成26年春期 午前問18
https://www.ap-siken.com/kakomon/26_haru/q18.html
2019.03.28 22:01
さん  
(No.4)
詳しい解説ありがとうございます。

ページ内変位というのはメモリが例えば4kバイトに区画されているとして
プログラムのページ枠が2kバイトに分割されていたときはページ内変位の値は2となる

ということでしょうか?
2019.03.28 23:55
助け人さん 
AP ゴールドマイスター
(No.5)
違います。

例えば、上記No.3では、ページサイズが100バイトで、仮想アドレス320番地は、仮想ページ番号3のページ内変位20番地です。

ページサイズをN、仮想アドレスをL、仮想ページ番号をP、ページ内変位をOとすると、
P=L / N  (小数以下切捨て)
O=L mod N
です。
2019.03.29 00:34
さん  
(No.6)
すいません。間違えてました。

あと一つだけ質問です。

なぜか仮想アドレスはページの先頭を指示さないのでしょうか?
2019.03.29 22:09
助け人さん 
AP ゴールドマイスター
(No.7)
仮想アドレス0番地(仮想ページ番号0のページ内変位0番地)から命令を順番に実行してきて、仮想アドレス10番地(仮想ページ番号0のページ内変位10番地)の命令を実行したとします。その結果、仮想アドレス320番地にジャンプすることになった場合、仮想ページ番号3のページ内変位20番地にアクセスしなければなりません。
2019.03.29 22:24

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop