ショボ短歌会

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

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


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

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

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

A 回答 (1件)

主記憶にあったり、補助記憶にあったりします。


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

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

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

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

お礼日時:2010/03/22 21:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!