)(3)上位となる仮想ページ番号が20ビット、下位となるページ内変位が12ビットである。ページ内変異:0xeadが答え。(4)ページテーブルのエントリの大きさは問題文より4バイトである。それぞれのページごとに4バイトのエントリが必要なので、(ページ数)×(エントリの大きさ)でページサイズを求めることができる。2^{20}\]と求めたほうが早い。ページフォルトとは基本的に仮想アドレス空間に比べ、物理アドレス空間(メインメモリ)は少ないです。そのため、仮想アドレス空間上にはデータがあっても、物理アドレス空間上にはデータがないことがあります。Unit)により検知されます。ページフォルト発生時の流れでは、実際に1つ例を挙げながらページフォルトが発生したときの流れを説明していきましょう。下の図の仮想ページ番号7のデータ「G」をアクセスすることを考えます。仮想ページ番号7のページテーブルの存在ビットを確認すると、0になっていますね。物理アドレス空間にデータがないことがわかります。よってMMUがページフォルトを検知し、割込みが発生します。Step2:いらなさそうなデータを補助記憶へ避難(ページアウト)ページフォルトが発生すると、まず物理アドレス空間のいらなさそうなデータを補助記憶装置に書き込みます。これをページインと呼びます。今回は物理ページ番号1にある「C」を補助記憶装置に書き込みます。メインメモリに空いている枠があれば、このステップ(ページアウト)は行われません。Step3:今必要なデータをメインメモリへ(ページイン)つぎにアクセスしたいデータを、先程書き込んだデータがあるページへ読み込みます。今回は「G」にアクセスしたいので、「G」を補助記憶から先程データを退避させたページ番号1に読み込みます。これをページアウトと呼びます。(もともとあったデータ「C」は上書きされてなくなります。)なお、メインメモリに空いている枠があれば、空いている枠にページが読み込まれます。物理アドレス空間のデータが書き換わったのでページテーブル(対応付け)も当然変化します。今回は物理ページ1のデータが「C」から「G」に変化したので、「C」の存在ビットは1→0となり、「G」の存在ビットは0→1となり、Gのデータの場所である「ページ番号1」もページテーブルに記録されます。以上がページフォルト発生時の処理内容です。ページテーブルの存在ビットが0のときにページフォルトによる割込みが発生し、1~4の流れで処理される。ページフォルトと速度低下ページフォルトが発生すると、メインメモリに比べてアクセスが遅い補助記憶装置のページ読み込みを待つ必要がありますよね。そのため、ページフォルトが発生するとシステムのスループット(実行効率)が低下します。ページフォルトは仮想記憶に対して主記憶が少なければ少なくなるほど発生します。主記憶が仮想記憶に対して少なすぎるとページフォルトが多発し、システムのスループットが極端に低下します。この現象のことをスラッシングと呼びます。5.ページ置き換えアルゴリズム(発展)先程のページフォルト発生時の処理で、「いらなさそうなデータ」を補助記憶装置に避難させると説明しましたね。この「いらなさそうなデータ」を選ぶアルゴリズム、つまりページ置き換えアルゴリズムにはいくつか種類があります。FIFOアルゴリズム(最も古くページイン(読み込み)したページを置き換える)LRUアルゴリズム(過去最も参照されていないページを置き換える)があります。ページ置き換えアルゴリズムについては、こちらの記事で詳しく説明しているので、もしよかったらご覧ください!www.momoyama-usagi.com(基本情報や応用情報など出てくるページ置き換え問題の解き方などもこちらで説明しています!)6.練習問題では、何問か基本情報や応用情報の過去問で練習をしてみましょう!練習1仮想記憶を用いたコンピュータでのアプリケーション利用に関する記述のうち,適切なものはどれか。午前問20]ア:アプリケーションには、仮想記憶を利用するためのモジュールを組み込んでおく必要がある。イ:仮想記憶は、磁気ディスクにインストールされたアプリケーションだけが利用できる。ウ:仮想記憶を使用していても主記憶が少ないと、アプリケーション利用時にページフォールトが多発してシステムのスループットは低下する。エ:仮想記憶を利用するためには、個々のアプリケーションで仮想記憶を使用するという設定が必要である。練習2仮想記憶方式の一つに、仮想アドレス空間を固定長の領域に分割して管理するものがある。この固定長の領域を示す用語はどれか。午前問30]ア:セクタイ:セグメントウ:フレームエ:ページ練習3ページング方式の仮想記憶において、ページフォールトの発生回数を増加させる要因はどれか。バイトで表すとすると、xを表す式はどれか。バイトとし、その他の情報については考慮しないものとする。E練習5(応用問題)仮想記憶方式に関する次の記述を読んで、設問1~3に答えなさい。午後問2]仮想記憶方式は、OSが提供する論理的な記憶領域(以下、仮想記憶という)上のアドレスと物理的な主記憶上のアドレスを対応付けて管理する方式である。仮想記憶方式では、補助記憶装置を仮想記憶の実装媒体として用いることによって、プログラムが主記憶の容量を超える大きさであっても、これを仮想記憶上のデータとして格納し、実行することができる。仮想記憶上のアドレス空間を仮想アドレス空間、主記憶上のアドレス空間を物理アドレス空間と呼び、それぞれの空間における記憶場所は仮想アドレス、物理アドレスで指定する。仮想記憶方式の実現方法の一つにページング方式がある。この方式では、仮想アドレス空間と物理アドレス空間をそれぞれ仮想ページ、物理ページと呼ぶ固定長の領域に分割し、管理する。ページング方式では、プログラムの実行過程で、実行に必要な仮想ページのデータが物理アドレス空間に存在していないときは、そのデータが格納されている仮想ページからデータを物理ページに読み込んで利用する。ページング方式のページ管理方法の例を次の1~3に示す。仮想アドレス空間及び物理アドレス空間の各ページには、1から順に番号を付け、それぞれを仮想ページ番号、物理ページ番号と呼ぶ。仮想ページと物理ページの対応は、ページテーブルで管理する。ページテーブルの各要素は仮想ページと1対1に対応付けられており、要素の個数は仮想ページの個数と同じである。ページテーブルには、仮想ページのデータが物理アドレス空間に存在しているかどうかを示すビット(以下、存在ビットという)と、存在している場合に対応する物理ページ番号を登録する領域がある。存在ビットは、当該仮想ページのデータが物理アドレス空間に存在している場合は1、存在していない場合は0である。仮想アドレス空間の仮想ページと物理アドレス空間の物理ページとの対応例を、図1に示す。ここで、図1中のA~Hは、仮想ページ及び物理ページに格納されているデータを示す。入れる正しい答えを、解答群の中から選べ。ここで、a1~a4に入れる答えは、aに関する解答群の中から組合せとして正しいものを選ぶものとする。入れる適切な答えを、解答群の中から選べ。ここで、b1とb2、c1とc2に入れる答えは、それぞれb、cに関する解答群の中から組合せとして適切なものを選ぶものとする。ページング方式では、プログラムの実行過程で、実行に必要なデータが物理アドレス空間に存在していないときには、ページフォールトという割込みが発生する。ページフォールトが発生すると、仮想ページに格納されているデータを物理ページに読み込む処理(以下、ページフォールト割込み処理という)を行う。物理ページのうち、仮想ページと対応付けられていない物理ページ(以下、空きページという)を一つ探す。その後、対応するページテーブルの要素の存在ビットを0にする。これによって空きページを確保する。その後、対応するページテーブルの要素に物理ページ番号を登録して、その存在ビットを1にする。入れる正しい答えを、解答群の中から選べ。ページング方式において、ページフォールトの発生回数を少なくするためには、どの物理ページを空きページにするかが重要になる。一般的に知られているアルゴリズムであるFIFOとLRUについて、あるプログラムの実行過程で仮想ページが次の順で参照される場合を考える。ここで、プログラムの実行開始時点では、このプログラムの実行のために割り当てられた物理ページは全て空きページである。〔仮想ページの参照順〕4→2→1→5→4→2→3→4→2→1→5→3→5FIFOを用いると、割り当てられた物理ページの個数が3のときは、ページフォールトの発生回数は9回である。LRUを用いると、物理ページの個数が3のときは、ページフォールトの発生回数は10回である。7.練習問題の答え解答1解答:ウ選択肢ごとに見ていきましょうア:アプリケーションには、仮想記憶を利用するためのモジュールを組み込んでおく必要がある。→仮想記憶はアプリケーション(プログラム)側で何か組み込む必要なしに実現が可能(OS側で提供される)なので間違い。イ:仮想記憶は、磁気ディスクにインストールされたアプリケーションだけが利用できる。→磁気ディスクに限定なしに仮想記憶は利用可能なので間違い。ウ:仮想記憶を使用していても主記憶が少ないと、アプリケーション利用時にページフォールトが多発してシステムのスループットは低下する。主記憶が少ないとページフォルトが多発し、スループットが低下する(スラッシングと呼ばれます)。エ:仮想記憶を利用するためには、個々のアプリケーションで仮想記憶を使用するという設定が必要である。→設定なしに仮想記憶は利用可能。解答2解答:エ仮想アドレス空間を固定長の領域に分割して管理するときの領域は、ページと呼ばれます。ちなみに、アの「セクタ」は磁気ディスクのデータ領域の最小単位を表します。解答3解答:アメインメモリ(主記憶)に存在しない仮想アドレス空間上のページにアドレスしようとしたときにページフォルトが発生します。主記憶に存在しないページへのアクセスが増加すればするほどページフォルトもたくさん発生します。2^{L-N}\]で求められます。2^E\]で求められます。なり、ウが答えとなります。[存在ビット]データがどの物理ページ番号にあるかを表しています。3なので、組み合わせとして正しいのはウとなります。設問2物理ページが空いていない場合は、物理ページからデータを1つ選び、いったん補助記憶装置に退避させます。(待避させたいデータは必ず物理ページにありますよね。)そして、仮想ページにあるデータを、補助記憶装置から先程退避させたページに読み込みます。(今からメインメモリ、つまり物理ページに読み込むデータが物理ページにあるわけないですよね。消去法で仮想ページと選ぶのもありです。)よって答えは(d)がエ、(e)がアなります。順番を間違えないようにしましょう。設問3FIFOは、一最も古く読み込んだページを置き換えるアルゴリズムでしたね。ページ枠が4のときのページ枠の変化、ページフォルトの発生場所を表にすると、下のようになります。よってページフォルトは10回となるので、3枠のとき(ページフォルト9回)よりも1回ページフォルトが増え、答えはアとなります。LRUは、過去最も参照されていないページを置き換えるアルゴリズムでしたね。先程と同じようにページ枠が4のときのページ枠の変化、ページフォルトの発生場所を表にすると、下のようになります。よってページフォルトは8回となるので、3枠のとき(ページフォルト10回)よりも2回ページフォルトが減り、答えはエとなります。8.さいごに今回は仮想記憶、およびページングについてまとめていきました。次回からはアセンブリ言語についてまとめていきたいと思います。次回、さらば!*1:理由としては、仮想アドレス空間と物理アドレス空間はページテーブル(後ほど説明します)で1対1対応させるので、仮想アドレス空間の容量以上に物理アドレス空間を対応させることができないからです。システムオートマトンPrologCLOSEサイト内検索を行います。はてなブログPro数学と情報が得意な大学生です。累計:リアルタイム現在の閲覧者数:。