ページイン ページアウト
ページイン ページアウト
ページイン
テキストの様に、仮想アドレスの3番を参照すると、ハードディスクのD番にプログラムがあるので、このままではプログラムは実行できません。
そこで主記憶の空き領域にハードディスクからデータを移します。
テキストでは、主記憶の6番が空いているので、ハードディスクのD番のプログラムを、主記憶の6番に移しています。
そして、マッピングテーブルの3番のフラグを1にして、ページ番号をDから6に書き換えます。
これで、主記憶の6番のProg B3がOSから実行可能となります。
このように、主記憶上にないページをハードディスクからもって来ることを、ページインといいます。
ページアウト
また、逆にハードディスクからページインしたいけれど、主記憶が一杯の場合は、主記憶に空き領域を作ってやる必要があります。
この際に、いずれかのページをハードディスクに移して空き領域をつくります。
テキストの例では、主記憶が一杯なので、主記憶の3番のProg C3をハードディスクのC番へ移しています。
そして、仮想アドレスの302番のマッピングテーブルを、フラグを1から0にして、内容を3からCに変更します。
これで、主記憶の3番が空き領域となります。
このように、主記憶のデータをハードディスクに移すことを、ページアウトといいます。
仮想記憶方式では、プログラムを実行しながら、必要なページは主記憶にもってきて、不要なページはハードディスクに残しておきます。
これにより、主記憶の容量を超えるプログラムであっても、必要なページをハードディスクから自動的にもってきて、見かけ上は無限の主記憶を使っていることと同じになります。
次に、プログラムの実行中に必要なプログラムやデータが主記憶にないことを、「ページフォールト」といいます。
このページフォールトが発生した場合は、先ほど説明したように、主記憶上の不要なページをハードディスクへ移して空き領域を作り、そこへハードディスクから必要なページを主記憶上へ移します。
ページフォールトが発生すると、このようにページアウトとページインが発生することになります。
ページイン、ページアウトの様に、主記憶とハードディスクとの間で、やりとりが頻繁に行われると、実行効率(スループット)が低下するこがあります。
このような現象を「スラッシング」と呼びます。
スループットは、別の講習で詳しく説明しますが、コンピューターの処理能力の指標の一つです。
また。ページアウトが発生する際に、主記憶のどのページをハードディスクに戻すかを決める方法を、ページ置き換えアルゴリズムといい、いくつかの方法があります。
続きはこちら ↓↓↓
コンテンツの利用について
こちらをお読みください