仮想記憶とは(全体像)
仮想記憶とは、実際の主メモリより大きなメモリがあるように見せかけて、プログラムを動かす技術のことだ。
なぜ必要かというと、主メモリ(実際のメモリ)の容量には限りがあるから。大きなプログラムや、たくさんのアプリを同時に動かすと、主メモリだけでは足りなくなる。そこで、主メモリに収まらない部分を、補助記憶(SSDやHDD)の「スワップ領域」に一時退避して、見かけ上のメモリを増やす。この退避をスワップという。
机と引き出しでたとえると分かりやすい。机(主メモリ)が狭いとき、今すぐ使わない書類を引き出し(補助記憶)に一時しまっておく。必要になったら、また机に戻す。こうして、机が広いかのように作業できる。
ここで一番のポイント。スワップは、補助記憶を使うので「遅くなる」方向だ。「スワップすると速くなる」と思い込むと誤りになる。主メモリより遅い補助記憶を使うからだ。
詳しく:ページングと、スラッシング
ここが心臓部。ポイントを表で押さえよう。
仮想記憶のポイント
| 項目 | やさしい意味 |
|---|---|
| 仮想記憶 | 実メモリより大きく見せる技術 |
| スワップ | 収まらない分を補助記憶に一時退避すること |
| ページング | メモリを固定サイズの「ページ」で管理する方式 |
| スラッシング | スワップが多すぎて、性能が落ちる現象 |
メモリの管理方式でよく使われるのが、ページング。これは、メモリを固定サイズの「ページ」という単位に分けて、管理する方式だ。
そして、注意したいのがスラッシング。これは、スワップ(退避と書き戻し)が頻繁に起こりすぎて、かえって処理が遅くなる現象だ。机と引き出しの間で、書類をしょっちゅう出し入れしていると、本来の作業が進まなくなる、というイメージ。ここで一番のポイント。仮想記憶は無制限ではない。「仮想記憶があれば、いくらでもメモリを使える」と思い込むと誤りで、使いすぎると、スラッシングで性能が落ちる。
わかりやすく言い換えると
身近なたとえで整理しよう。
仮想記憶は、「机(主メモリ)が狭いとき、引き出し(補助記憶)も使って、広い机のように見せる工夫」のイメージ。
スワップは、「今すぐ使わない書類を、引き出しに一時しまうこと」。要するに、主メモリに収まらない分を、補助記憶に退避する。
スラッシングは、「書類をしょっちゅう出し入れしすぎて、かえって作業が遅くなること」。つまり、スワップが多すぎると、性能が落ちる。
試験のツボ
🔴 一番出る:仮想記憶のしくみ
①実際の主メモリより大きく見せる技術
②収まらない分を補助記憶(スワップ領域)に退避(スワップ)
🔴 次に出る:ページング
①メモリを固定サイズの「ページ」で管理する方式
②現代の主流の方式
🟡 押さえると安定:スラッシング
①スワップが多すぎて、かえって性能が落ちる現象
②スワップは補助記憶を使うので、遅くなる方向
よくある間違い
①「スワップすると、処理が速くなる」→ ✗ スワップは、主メモリより遅い補助記憶を使うので、遅くなる方向。
②「仮想記憶があれば、いくらでも無制限にメモリを使える」→ ✗ 無制限ではない。使いすぎると、スラッシングで性能が落ちる。
③「スラッシングとは、処理がとても速くなる状態のことだ」→ ✗ 逆で、スワップが多すぎて、かえって処理が遅くなる現象。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(仮想記憶の正体)
仮想記憶に関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
- 実際の主メモリより大きなメモリがあるように見せる技術である
- 完成したシステムを宣伝して、より多く売るための広告活動である
解答は 3 だよ!
仮想記憶は、実際の主メモリより大きなメモリがあるように見せる技術なんだよ!狭い机を、引き出しも使って広く見せるイメージだね!
選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告で、どれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✓ | 実メモリより大きく見せる技術で正しい |
| 4 | ✗ | 広告活動ではない |
オリジナル問題2(スワップ)
仮想記憶のスワップに関する次の記述のうち、最も適切なものはどれか。
- 主メモリに収まらない分を、補助記憶に一時退避することである
- 社員の給与を計算するときだけ、行われるものだとされている
- 取引先へ請求書を郵送するときだけ、行われるものだとされる
- 主メモリを使わずに、処理を高速化するしくみだとされているのだ
解答は 1 だよ!
スワップは、主メモリに収まらない分を、補助記憶に一時退避することなんだよ!使わない書類を引き出しにしまうイメージだね!
選択肢2の給与、選択肢3の請求書、選択肢4の「高速化」は、いずれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | 収まらない分を補助記憶に退避で正しい |
| 2 | ✗ | 給与計算のときだけではない |
| 3 | ✗ | 請求書のときだけではない |
| 4 | ✗ | スワップは遅くなる方向 |
オリジナル問題3(スラッシング)
スラッシングに関する次の記述のうち、最も適切なものはどれか。
- 社員の給与の計算しだいで、起こるとされているものである
- 取引先への請求書の枚数しだいで、起こるとされているものだ
- 処理がとても速くなる、よい状態のことだとされているのである
- スワップが多すぎて、かえって性能が落ちる現象のことである
解答は 4 だよ!
スラッシングは、スワップが多すぎて、かえって性能が落ちる現象なんだよ!書類をしょっちゅう出し入れしすぎて、作業が進まないイメージだね!
選択肢1の給与、選択肢2の請求書、選択肢3の「速くなるよい状態」は、いずれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算で起こるのではない |
| 2 | ✗ | 請求書の枚数で起こるのではない |
| 3 | ✗ | 性能が落ちる現象(よい状態ではない) |
| 4 | ✓ | スワップ過多で性能が落ちるで正しい |
まとめ
押さえどころ
- 🔴 仮想記憶 = 実際の主メモリより大きなメモリがあるように見せる技術。
- 🔴 スワップ = 主メモリに収まらない分を、補助記憶(スワップ領域)に一時退避すること。遅くなる方向。
- 🟡 スラッシング = スワップが多すぎて、かえって性能が落ちる現象。仮想記憶は無制限ではない。
次に学ぶ
執筆: SikakuQuest編集部