仮想記憶方式とは
仮想記憶方式とは、メモリの容量を「見かけ上(利用上)」実際よりも大きく見せる方法です。
メモリの容量が増えると、一度に記憶しておける量が増え、効率的に処理を進めることができるようになります。
基本的にメモリ容量はパソコンやサーバーを構築した段階で搭載した物理的なメモリ数によって決まります。
ハードディスク等(補助記憶装置)の記憶領域の一部を仮想記憶用部分として利用して、物理的なメモリ容量以上のパフォーマンスを発揮する技術が仮想記憶方式です。
仮想記憶方式は大きく分けて以下の2種類があります。
- ページング方式
- セグメント方式
本記事では、「ページング方式」について分かりやすく解説していきます。
ページング方式
ページング方式の仕組み
ページング方式では、メモリが保持している記憶内容(データ)を一定の(同じ)間隔で区切り、区切った区画(ページ)を基準に仮想メモリ内(「メモリ⇔ディスクの一部」間)で記憶内容を小まめに入れ替えながら使う方法です。
ページイン:メモリ ⇐ ディスクの一部(必要なページをメモリに移す)
ページアウト:メモリ ⇒ ディスクの一部(不要なページをディスクに戻す)
ページフォールト:必要なページが仮想メモリ(メモリ・ディスクの一部)上に見当たらない
ページ入れ替えパターン
- FIFO
- LRU
- LIFO
- LFU
基本情報技術者試験で問われることが多いのは、「FIFO」と「LRU」です。
本記事では、「FIFO」と「LRU」を解説します。
FIFO
FIFOとは、「First In First Out」の略で、「最初にメモリに入ったページが最初にディスクに戻る」パターンのことです。
「メモリに入った順番」を基準とした方式です。
年功序列企業のようなイメージです。
最初に入った人が定年を迎え、最初に定年退職するような感じです。
実際の利用実績に関わらず、順番にページを入れ替えます。
LRU
LRUとは、「Least Recently Used」の略で、「最後に実際に利用されてからの期間が一番長いページが最初にディスクに戻る」パターンのことです。
「実際の利用実績」を基準とした方式です。
実力主義企業(外資・ベンチャー)のようなイメージです。
最後にプロジェクトに呼ばれて仕事をしてから期間が一番空いている人が最初にクビを切られるような感じです。
入った順番に関わらず、利用頻度の高いページを優先してメモリ上に残します。
ページング方式の注意点
ページング方式を採用した仮想メモリを利用する場合、「メモリ⇔ディスクの一部」間のページの入れ替えが頻発すると、CPUの待ち時間が増え、処理速度が低下します。
ページの入れ替えが頻発することを「スラッシング」といいます。
「スラッシング」を防ぐ対策としては、物理的なメモリ容量を増やすことが効果的です。
物理的なメモリ容量が増えれば、メモリ内でキープできる記憶量(データ量)が増えるため、ページの入れ替え回数は減少します。
1.メモリの持っているデータを区切る(ページに分ける)
2.「メモリ⇔ディスクの一部」間でページごとに入れ替え(ページリプレースメント)