ページング記憶の問題

このQ&Aのポイント
  • 大学でのOSの学期末レポートの問題。グローバルLRUアルゴリズムによるページ置き換えについての問題。
  • 問題の内容は、番号が順に参照されるページ列と主記憶容量の場合におけるページフォールト回数を求めること。
  • 解答と解説を教えていただきたいです。
回答を見る
  • ベストアンサー

ページング記憶の問題

大学でのOSの学期末レポートの問題なのですが、以下の問がどうしてもわかりません。 解答と解説、教えて頂きたいです。 ------------------------------------------------------------------------ グローバルLRUアルゴリズムによってページ置き換えを行うページング記憶において、 番号が 0,1,2,3,0,4,2,0,1,2,3,4 のページ を順に参照したとき、 (1)LRUスタックの変遷の様子を図示せよ。 (2)主記憶容量の(i.e.主記憶に置けるページ数)m=1,2,3,4,5の各々の場合に対して、ページフォールト回数は各々何回になるか? ------------------------------------------------------------------------ よろしくお願いします。

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

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

LRU,および,グローバルな置換アルゴリズム,の意味が分からないなら,下記を参照。 http://ja.wikipedia.org/wiki/ページ置換アルゴリズム (1) 左端がスタックの底です。 0 ←0 0 1 ←1 0 1 2 ←2 0 1 2 3 ←3 1 2 3 0 ←0 1 2 3 0 4 ←4 1 3 0 4 2 ←2 1 3 4 2 0 ←0 3 4 2 0 1 ←1 3 4 0 1 2 ←2 4 0 1 2 3 ←3 0 1 2 3 4 ←4 (2) m=1 の場合,12回 m=2 の場合,12回 以下,「丸囲い数字のゼロ」を◎で代用します。 ◎(1)(2)(3)(4)の丸囲い数字が何を指しているか, 零壱弐参四の漢数字が何を指しているかは, LRUの動作を勉強していれば分かるでしょう。 ページフォールトの回数はご自分で数えてみてください。 m=3 の場合 page.0 |―|◎|0|0|(3)|3|3|(2)|2|2|弐|2|2| page.1 |―|―|(1)|1|1|◎|0|0|零|0|0|(3)|3| page.2 |―|―|―|(2)|2|2|(4)|4|4|(1)|1|1|(4)| m=4 の場合 page.0 |―|◎|0|0|0|零|0|0|零|0|0|0|四| page.1 |―|―|(1)|1|1|1|(4)|4|4|4|4|(3)|3| page.2 |―|―|―|(2)|2|2|2|弐|2|2|弐|2|2| page.3 |―|―|―|―|(3)|3|3|3|3|(1)|1|1|1| m=5 の場合 page.0 |―|◎|0|0|0|0|0|以降 page fault 無し page.1 |―|―|(1)|1|1|1|1| page.2 |―|―|―|(2)|2|2|2| page.3 |―|―|―|―|(3)|3|3| page.4 |―|―|―|―|―|―|(4)|

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「どうしても」ってことは「いろんなことを考えたけど」ってことだよね? 何をどう考えたのか, (すべてを書くのは字数の制限があって無理だろうけど) いくつか考えたことを書いてみて.

関連するQ&A

  • LRUアルゴリズムのページフォールト回数

    LRUアルゴリズムで、利用可能な主記憶のページ枠数が増えると、ページフォールト回数は決して増えることがないのはなぜでしょうか? 理由を教えて頂きたいです。

  • 仮想記憶システムの問題で…

    主記憶容量-----------------64Kバイト 仮想アドレス空間容量-------8Mバイト ページサイズ---------------8Kバイト ページ追い出しアルゴリズム-LRU (1)ページテーブルの各エントリは物理ページアドレスと9ビットの付加情報から構成されている。ページテーブルのサイズを求めよ。 (2)現在、主記憶上にはどのページも存在していないとする。この状態で、以下に示す仮想ページアドレスに対応する仮想ページが順にアクセスされた。  0, 1, 2, 3, 4, 5, 6, 7, 0, 3, 8, 4, 1, 0, 8 このときのページフォルトが発生する回数を求めよ。 …の2つがどうしてもよく分からないので、解説付きで教えてください。 よろしくお願いします。

  • ページング方式について

    ページング方式のページサイズを大きくしたり小さくしたりするメリットやデメリットについて 私の思いつく限りでは ページサイズを大きくすることでのメリットは、一回のページインで大きな情報(プログラムの情報)を得ることができ、ページインを少なくすることができる。 デメリットしては、主記憶の容量を多く取ってしまう。 小さくすることでのメリットは、主記憶の容量をあまりとらない。 デメリットとしては、頻繁にページインを起こしてしまい、補助記憶とのアクセスを起こして時間がロスする。 ぐらいしか思いつきません・・・ 何かほかにありましたら教えてもらえると幸いです。 又、間違ってましたら指摘をお願いします。

  • ページング・スワップの起こし方。

    情報処理の勉強をしているのですが、仮想記憶方式の説明において、 主記憶の容量が少ないと、プログラムの実行時にページ入れ替えが多発することになる これが起きるとレスポンス悪化するとあるのですが、スワップとの区別がいまひとつイメージがつかめません。 実際に自分のマシンで動かしてイメージを作っておきたいのですが、 スワップや、ページングというものはどうやって起こせばよいのでしょうか。

  • SE初心者の質問(ページング編)

    仮想メモリと実メモリの間のやりとりを ページングというと思いますが、 私の持っている書籍には、 「実メモリ」と「仮想メモリ」を部分的にスワップしながら プログラムを実行する。 Windowsは、仮想記憶の仕組みが「ページング方式」である。 と書いています。 もう、質問内容がおわかりかもしれませんが、 「ページング」と「スワップ」の違いがわかりません。 IT用語辞典でも、スワップはプロセス単位で ページングはページ単位、と書いていますが、 やっていること(目的)は同じようにみうけられます。 どのような使い分けがなされているのでしょうか? また、各々の仕組みも違うのでしょうか?

  • ページ置き換え LRU方式

    アーキテクチャについてです。 ページ置き換えアルゴリズムにおいて、LRUは「専用のハードウェアが無いと実装が困難」とありますが何故でしょうか? メモリ上のページテーブル(ページ枠テーブル・・?)に、アクセスした時刻を添えて記録し、ページフォルト時に一番古いものを検索してページアウトするという風にすれば、OSの仕組みで(ソフトウェア的に)できそうなきがするのですが・・・。 実現は可能でもないが、その古いページ枠の検索に時間がかかかってしまうということでしょうか?

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

    基本情報技術者 ページング、ページテーブルについて こんにちは。 2010年1月末のJava2級に合格し、今年度秋期の基本情報技術者を 受験できないかと考えて、教科書と過去問に取り組んでいる者です。 その過程において、わからないことが出てきましたので、 質問させていただきます。 「プログラムの実行方法」の「小容量のメモリで実行する方法」の ページングについてなのですが、 教科書では、「仮想記憶と主記憶の対応表としてページテーブルを用意する」 とありますが、「ページテーブル」とは、コンピュータ上のどの部分に 存在するのでしょうか 受験対策の本筋からは逸れているのかもしれませんが、 気になってしまったので、質問させていただきました。 もしよろしければ、回答のほう、よろしくお願いします。

  • 情報処理の質問

    ネットワークの午前の問題: 平成13年午前問3: ---------------------- 主記憶へのアクセスを1命令当たり平均2回行い、ページフォールトが発生すると 1回当たり40ミリ秒のオーバヘッドを伴うシステムがある。ページフォールトによる 命令実行の遅れを1命令当たり0.4マイクロ秒以下にするには、ページフォールトの 発生率を少なくともどこまで下げなくてはならないか。ここで、ページフォールトが 発生しない場合のオーバヘッドは無視するものとする。 ------------------- とありますが、解説を見ると、 0.2マイクロ秒 / 40ミリ秒 = 0.2マイクロ秒 / 40,000マイクロ秒 = 5 * 10(-6乗) とあります。 この 0.2マイクロ秒がどのようにして出てきた値なのかがわかりません。 基本的なことかもしれませんがお願いします。

  • 仮想メモリ

    16ビットの仮想アドレス空間を持つ場合のページング処理について考える。 ページテーブルサイズを8とする。 主記憶の実ページ(物理ページ)の大きさを求めよ。 という問題がわかりません。 仮想メモリについて理解できてきないのだと考え色々調べましたがよくわからなかったです。 仮想アドレス空間と主記憶上の実ページの関係が上手くイメージできないです。 どなたか答えと解説をお願いします。

  • 再帰的(リカーシブ)プログラムの説明について。

    以下は、再帰的(リカーシブ)プログラムの説明を記載しました。 この説明文でおかしい箇所の添削をお願い出来ないでしょうか? 宜しくお願い致します。 以下からになります。 再帰的(リカーシブ)プログラムとは、プログラムの中から自分自身を呼び出して実行することを再帰的(リカーシブ)アルゴリズムといい、この形式で再帰呼び出しを行うプログラムのこと。 まずは、再帰的アルゴリズムについて、例を使って説明を行いたい。 主プログラムとサブルーチンaがある。 主プログラムは、文字通り、主(メイン)となるプログラム。 サブルーチンは、主プログラムが呼び出して利用する処理をひとまとめにしたもの。 文字通り、サブとなる処理を行う。 主プログラムには、CALL aという命令が記述されている。 これはサブルーチンaを読み出すという命令。 この再帰的プログラムは、処理が終わったら、読み出された場所に帰っていく。 このため、戻り場所を記憶しておかないと帰る事が出来ない。 この戻り場所を記憶するのが、LIFO方式による記憶領域になる。 LIFO方式の記憶領域だから、スタック領域になる。 スタック領域だから、後入れ先出しで戻り場所を記憶していく。 まずは、1回目の呼び出しとして、主プログラムがサブルーチンaを呼び出している。 1回目の戻り場所を記憶しておく。 次にサブルーチンaを見ると、CALL a、つまり自分自身を読み出している。 これが2回目の読み出し。 このように自分自身を呼び出すことを再帰呼び出しという。 同じプログラムの中で自分自身を読み出しているのだが、コンピューターは、あたかも別のサブルーチンがあるように処理が行われている。 この場合、それぞれの処理で、別の変数を用意しながら処理を行う。 このサブルーチンで処理が終わった場合にも、もとに戻る必要がある。 これは2回目の呼び出しになるため、2回目の戻り場所を記憶しておく。 更に、3回目として再びサブルーチンaを呼び出す。 3回目の戻り場所を記憶し、また別の変数を用意しながら処理を行う。 ここで最後のサブルーチンで処理が終わったとする。 処理が終わったら、呼び出された場所に戻る。 戻り場所の記憶を見てみると、上から戻る順番に記録されていることがわかる。 戻り場所はLIFO方式、後入先出しで記録されているから、最後に呼び出した3回目の戻り場所が1番上に記録され、次に2、最後に1が記録されている。 最初は戻り場所を記憶した記憶領域を参照して、3回目に呼び出された場所に戻る。 ここで3の戻り場所が消える。 そして引き続き処理が行われる。 次に、2回目に呼び出した処理が終わり、2回目に呼び出された場所に戻り、2の戻り場所が消える。 また引き続き処理が行われ、1回目に呼び出した処理が終わり、1回目に呼び出された場所(主プログラム)に戻り、1の戻り場所が消える。 そして処理が行われ、プログラム全体が終了する。 このように、プログラムの中で自分自身を呼び出し、戻り場所を記憶しながら実行するようなプログラムを再帰的(リカーシブ)プログラムという。