仮想記憶管理によって、主記憶の容量以上の領域が使えるようになります。例えば、パソコンに1Gバイトの主記憶が搭載されているとしましょう。仮想記憶管理によって、4Gバイトでも8Gバイトでも使えるようになります。仮想記憶管理があれば、メモリ不足でプログラムが動作しないという心配がなくなるのです。
1:ページング方式
コンピュータに実際に搭載されている主記憶の領域を実記憶空間と言います。一方で、OSがプログラムに見せているメモリ領域を仮想記憶空間と言います。実記憶空間よりも大きなサイズの仮想記憶空間を見せることで、プログラムでは、主記憶の容量以上のメモリ領域を使うことができます。
OSでは、サイズの小さな実機置く空間をやりくりして、サイズの大きな仮想記憶空間が実在するかのように振る舞います。ページング方式は、実記憶空間をやりくりする方法の一つです。ページング方式では、実記憶空間と仮想記憶空間をページと呼ばれる一定サイズに区切りページ単位で管理します。
実行するページが実記憶空間に存在しないことをページフォルト、実記憶空間にページを入れることをページインと言います。
ページインを行うときに、実空間に空きがない場合もあります。この場合には、最も不要と思われるページを一旦補助記憶装置(ハードディスクやSSD)に待避させて空きをつくってからページインを行います。ページを補助記憶装置に退避させることをページアウトと言います。
2:ページ置き換えアリゴリズム
ページアウトを行う際には、実記憶空間の中で最も不要と思われるページを選んでページアウトします。どうれを選ぶのかを決める方法がページ置き換えアルゴリズムです。代表的なページ置き換えアルゴリズムとは
①LRU(Least Recently Used):最後にアクセスしてから、最も長い時間経過しているページを選ぶ。
②FIFO(First In First Out):最初にページインさせたページを選ぶ。
LRUは、例えば、何年もの間使わずに、押入れの奥でホコリをかぶっているものを選んで捨てるということと同じ考え方です;。
3:スラッシング
実記憶空間(主記憶の容量)が仮想記憶空間に比べて、極端に小さいと、ページインとページアウトを頻繁に繰り返す現象が発生します。この結果、補助記憶装置に頻繁にアクセスするようになり、システム全体の性能が極端に低下します。これをスラッシングと言います。スラッシングが発生する場合、プログラムの同時起動数を減らしたり、主記憶を増設して容量を増やしたちする必要があります。