こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

基本情報技術者 ページング、ページテーブルについて

基本情報技術者 ページング、ページテーブルについて

こんにちは。
2010年1月末のJava2級に合格し、今年度秋期の基本情報技術者を
受験できないかと考えて、教科書と過去問に取り組んでいる者です。
その過程において、わからないことが出てきましたので、
質問させていただきます。


「プログラムの実行方法」の「小容量のメモリで実行する方法」の
ページングについてなのですが、
教科書では、「仮想記憶と主記憶の対応表としてページテーブルを用意する」
とありますが、「ページテーブル」とは、コンピュータ上のどの部分に
存在するのでしょうか

受験対策の本筋からは逸れているのかもしれませんが、
気になってしまったので、質問させていただきました。

もしよろしければ、回答のほう、よろしくお願いします。

投稿日時 - 2010-03-18 21:41:27

QNo.5762408

困ってます

質問者が選んだベストアンサー

主記憶にあったり、補助記憶にあったりします。
というのは、最近のいわゆるマルチタスクOSでは、
複数のタスクを独立したアドレス空間上で実行させるために、
タスクごとにページテーブルを持っているためで、
実行中のタスクのページテーブルは必ず主記憶上にあります。
それはMMU(Memory Management Unit)がページテーブルの所在を
管理しており、その所在を(主記憶上の)アドレスで教えてあげる
必要があるためです。

逆に実行状態でないプロセスのページテーブルに関しては主記憶上にあっても
補助記憶にあっても構いません。
これはプロセスが実行状態に遷移する(コンテキストスイッチの)タイミングで
該当ページテーブルが確実に主記憶上にロードされていればそれで不都合がないためです。
で、ロードした後にそのロード先アドレスをMMUに伝えれば良いわけです。

パフォーマンス重視で全プロセスのページテーブルを主記憶に置くOSもあれば、
メモリ消費量節約のために、その時に使わないページテーブルは補助記憶に退避しておくOSもあるかと思います。

投稿日時 - 2010-03-21 02:12:35

お礼

回答していただいたのにお礼が遅れてしまい
申し訳ありません。
丁寧に解説していただきありがとうございます。
貴重な時間をさいての回答、ありがとうございました。

投稿日時 - 2010-03-22 21:21:52

ANo.1

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問