1

私はどのように読んでいたのですか仮想メモリメモリ管理はオペレーティングシステムで動作します。私は、各プロセスがどのようにそれ自身の連続した論理アドレス空間を持っているかを理解しました。このアドレス空間は、物理メモリ内で連続している必要はありません。このために、ページングが使用されます。ページテーブルは、論理アドレスから物理アドレスへのマッピングを行うために使用されます。論理アドレスは2つの部分に分割され、最初の部分は論理ページ番号を与え、ページテーブルを使用して物理ページ番号に変換され、2番目の部分はそのページにオフセットされる。したがって、メモリからの内容が取り出される。
仮想メモリは、これを拡張したもので、すべてのページをメインメモリに配置する必要はなく、ページフォルトによってそこに持ち込むことができます。私の理解を使用して仮想メモリアドレス変換

私は、このページ上の第四疑問解決:私は私の答えが間違っていました、と私は正しい答えが何であるか見当もつかないwww.ics.uci.edu/~bic/courses/JaverOS/ch8-ex.pdf

を。 これは私がやったやり方です:

From the diagram in the question, Page table for Process P1 will look like this according to me: 
0-4 
1-5 
2-6 
3-7 

So when process P1 makes a reference to 0 i.e is 0000 in 4 bit binary, we divide 
it as 00|00. 
Thus logical page no = 00 and offset = 00. 
From the page table, we can see 0 is mapped to 4th physical frame. 
Offset is also 00 here. So I get the 0th entry(offset) in the 4th frame. 
The content at this memory location(i.e Frame No. 4, offset 0) is 0. 

なぜこれは間違っていますか? 誰も助けることができますか?

+0

誰かが質問を投票したい場合は、コメントに理由を明記してください! – rgamber

+0

あなたの英語は本当に読みにくいですが、私はあなたの答えが何であったかを知るのに苦労しました。多分最初にそれに取り組もうとします。 – Tobu

+0

申し訳ありません、英語は私の母国語ではありません。私は質問を言い換えようとしました。私は試験のために勉強しているので、これに対する答えに本当に感謝し、不明瞭な概念を続けることはできません。 – rgamber

答えて

3

私は仮想アドレス8で始めるでしょう、それは良いことを説明する必要があります。

8 = 2×4 + 0.物理アドレスは、プロセスのページ2のオフセット0に格納されます。我々は2番目のページを見上げる。 P1の場合、ページ2のアドレスはPA4 + 2に格納され、アドレスは28です.PA28の内容を参照して値0を取得します.P2の場合、ページ2のアドレスはPA12 + 2に格納され、アドレス24 PA24の内容は5です。

例外的なケースを示す仮想アドレス15が表示されます。

15 = 3×4 + 3物理アドレスは、プロセスのページ3のオフセット3に格納されます.P1の場合、ページ3のアドレスはPA 4 + 3に格納されます。符号ビットは、ページが物理メモリの外側にあることを示します。これは、ハードページフォールト(OSが例外的に処理するが、エラーは処理しない状況)を意味します。 P2の場合、ページ3のアドレスはPA 12 + 3に格納されますが、特殊メカニズム(毒の値、外部フレームテーブル?)は無効であることを示しています。これはエラーで、セグメンテーション違反として報告されます。

7 = 1×4 + 3:オフセットを説明するためのVA 7とP1と

一最後の例。物理アドレスはP1のページ1のオフセット3に格納されます。ページ1はPA 8にあり、ページ1のオフセット3はPA 8 + 3にあります。

+0

詳細な説明をありがとう!私は疑いがある。私は、ページテーブルが論理ページと物理的な場所の間にマップされると考えていました。たとえば。あなたが言ったようにVA = 8、論理ページは2です。物理ページは4 + 2 = 6となります。私はオフセット0で6ページ目を見てはいけませんか?どこが間違っているのか分かりませんか – rgamber

+1

仮想アドレスは2回参照解除されます。 4 + 2は、P1の第2ページの物理アドレスの物理アドレスである。あなたの推論は、P1のページテーブルのメモリ内容を無視しているようです。 – Tobu

+0

ああ、2度間接参照されていた仮想アドレスは私の本ではっきりと述べられていませんでした。ありがとう。私は実際にページテーブルのメモリの内容を無視していました。今、VA = 8の場合、6の内容は28ではなく39で、ページオフセットは2です。次にフレームのベースアドレスとして29を取り、2でオフセットします最終的な答えは?あなたの助けに本当に感謝します。 – rgamber

0

私はダイアグラムが物理メモリと物理アドレスを左側に示していると仮定しています。 p1とp2が自分と他のページテーブルに直接アクセスできるようにするのは意味がありません。

仮想アドレス0では、ページフレーム1からp1をフェッチし、ページフレーム3では0をp2にフェッチします。

VA = 1の場合、それぞれ8と-12をフェッチします。

VA = 4の場合、p1とp2の定義済みページテーブルの外にあるため、何も取得しません(つまり、「各ページとページテーブルのサイズは4です」と「p1のページテーブルはアドレス4、p2のページテーブルはアドレス12で始まります。 ";私の解釈が間違っている場合は、問題文も正しくありません)。残りのVAについてはDittoが4以上であり、定義されたページテーブルの外にあるためです。

ここから最終的な回答を得ることができます。