---
title: "オーバーレイ・ページング・スワッピングの違いとは？主記憶管理の切り分け【基本情報技術者試験】"
description: "オーバーレイ、ページング、スワッピングを、何を単位に主記憶と補助記憶の間で扱うかという視点で整理し、仮想記憶やページイン・ページアウトとの違いをFE科目A向けに解説します。"
last_modified_at: "2026-08-05"
canonical_url: "https://stemtazoo.github.io/fe/overlay-paging-swapping/"
section: "fe"
---

## まず結論

オーバーレイ、ページング、スワッピングは、どれも主記憶を有効に使うための仕組みですが、**何を単位に扱うか**が違います。

| 用語 | 主に扱う単位 | 判断の合図 |
|---|---|---|
| オーバーレイ | プログラムを分割した部分 | 必要な部分だけ読み込む |
| ページング | 固定長のページ | 仮想記憶、ページ単位 |
| スワッピング | プロセス全体 | 一時停止、退避、再開 |

試験では、次のように切り分けます。

```text
プログラムを分割して必要な部分だけ読む
→ オーバーレイ

固定長のページで管理する
→ ページング

プロセス全体を補助記憶へ退避する
→ スワッピング
```

## 直感的な説明

主記憶は、作業机のようなものです。

机の広さには限りがあるため、大きなプログラムや多くの処理を同時に扱うには工夫が必要です。

### オーバーレイ

大きな資料を章ごとに分け、今使う章だけ机に置くイメージです。

```text
プログラム全体
├ 部分A
├ 部分B
└ 部分C

今使う部分だけ主記憶へ読み込む
```

### ページング

資料を同じ大きさのページに分け、必要なページだけ机へ置くイメージです。

```text
ページ1
ページ2
ページ3
...
```

### スワッピング

一人分の作業セットを丸ごと机から片付け、別の作業セットと入れ替えるイメージです。

```text
プロセスAを補助記憶へ退避
↓
プロセスBを主記憶へ読み込む
```

## 定義・仕組み

### オーバーレイ

オーバーレイは、主記憶に収まらない大きなプログラムを複数の部分に分け、実行時に必要な部分だけを主記憶へ読み込む方式です。

```text
大きなプログラム
↓ 分割
共通部分 + 部分A + 部分B + 部分C
```

同時に使わない部分を同じ主記憶領域へ交代で読み込むことで、限られた主記憶で大きなプログラムを実行します。

判断ポイントは次です。

```text
プログラムを幾つかの部分に分割
＋
指定された部分だけ読み込む
→ オーバーレイ
```

### ページング

ページングは、仮想記憶を実現する代表的な方式です。

プログラム側の仮想アドレス空間を**ページ**、主記憶を**ページフレーム**という固定長の単位に分けます。

```text
仮想記憶：ページ単位
主記憶　：ページフレーム単位
```

必要なページだけを主記憶へ配置するため、プログラム全体が主記憶に収まらなくても実行できます。

判断ポイントは次です。

```text
固定長
＋
ページ単位
＋
仮想記憶
→ ページング
```

### スワッピング

スワッピングは、実行中のプロセスを一時停止し、主記憶上の内容を補助記憶へ退避する方式です。

再び実行するときは、退避した内容を主記憶へ戻します。

```text
主記憶上のプロセス
↓ スワップアウト
補助記憶
↓ スワップイン
主記憶へ戻す
```

判断ポイントは次です。

```text
プロセスを一時停止
＋
主記憶の内容を退避
＋
再開時に戻す
→ スワッピング
```

このテーマは、基本情報技術者試験の「コンピュータシステム」に関係します。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html)から確認できます。

## 科目Aでどう出る？

科目Aでは、説明文から用語を選ぶ問題が中心です。

### 何を単位に扱うかを見る

最初に、何を入れ替えているかを確認します。

| 問題文の表現 | 選ぶ用語 |
|---|---|
| プログラムを複数の部分に分ける | オーバーレイ |
| 固定長のページで管理する | ページング |
| プロセス全体を退避する | スワッピング |

### 固定長が出たらページング

「固定長」は、ページングを選ぶ強い判断材料です。

```text
プログラムと主記憶を固定長に分割
→ ページング
```

オーバーレイは、機能や処理のまとまりに沿ってプログラムを分けるため、固定長とは限りません。

### 一時停止・退避・再開ならスワッピング

次の表現が並んでいれば、スワッピングが有力です。

```text
プログラムを一時停止
主記憶の内容を補助記憶へ退避
再開時に元へ戻す
```

### 試験中の判断手順

```text
1. 分割対象はプログラムの部分か、固定長ページか、プロセス全体か
2. 固定長という表現があるか
3. 一時停止・退避・再開という表現があるか
4. 必要な部分だけ読むという表現があるか
```

## どんな場面で使う？

### オーバーレイ

主記憶容量が小さい環境で、大きなプログラムを実行するときに使われます。

プログラムのどの部分を同時に使うかを考えて分割する必要があります。

### ページング

現在のOSで広く使われる仮想記憶方式です。

プログラムから見ると大きな連続した記憶領域を使えるように見えますが、実際の主記憶上ではページ単位に分かれて配置されます。

### スワッピング

複数のプロセスを切り替えて実行するときに、主記憶を空けるために使われます。

ただし、補助記憶とのデータ転送は主記憶内の処理より遅いため、頻繁に発生すると性能が低下します。

## よくある誤解・混同

### オーバーレイとページングは同じ

どちらも必要な部分だけを主記憶へ置くように見えますが、分割方法と管理主体が異なります。

```text
プログラムを論理的な部分に分ける
→ オーバーレイ

固定長のページに分けてOSが管理する
→ ページング
```

### ページングとスワッピングは同じ

どちらも主記憶と補助記憶の間でデータを移動しますが、単位が異なります。

```text
ページ単位
→ ページング

プロセス全体
→ スワッピング
```

### ページイン・ページアウトとスワップイン・スワップアウト

用語が似ていますが、試験では次のように整理すると分かりやすいです。

| 用語 | 主な単位 |
|---|---|
| ページイン・ページアウト | ページ |
| スワップイン・スワップアウト | プロセス全体 |

### スワッピングはCPUのプロセス切替えと同じ

CPUが実行対象を切り替えるコンテキストスイッチと、プロセスを主記憶から補助記憶へ退避するスワッピングは別の処理です。

```text
CPUの実行対象を切り替える
→ コンテキストスイッチ

プロセスの記憶内容を補助記憶へ退避する
→ スワッピング
```

## 確認問題（基本情報技術者試験対策）

主記憶管理に関する説明として、スワッピングに該当するものはどれか。

- ア. プログラムを複数の部分に分け、必要な部分だけを主記憶へ読み込む
- イ. 仮想アドレス空間と主記憶を固定長の単位に分けて管理する
- ウ. 実行中のプロセスを一時停止し、主記憶上の内容を補助記憶へ退避する
- エ. 主記憶上の空き領域を連続した一つの領域にまとめる

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ウ**

プロセスを一時停止し、主記憶上の内容を補助記憶へ退避して、再開時に戻す方式はスワッピングです。

- アはオーバーレイです。
- イはページングです。
- エはメモリコンパクションに関する説明です。

</details>

## まとめ（試験直前用）

- オーバーレイは、プログラムを分割して必要な部分だけ読み込む
- ページングは、固定長のページ単位で仮想記憶を管理する
- スワッピングは、プロセス全体を主記憶と補助記憶の間で入れ替える
- 固定長・ページ単位ならページング
- 一時停止・退避・再開ならスワッピング
- 必要なプログラム部分だけ読み込むならオーバーレイ
- ページイン・ページアウトはページ単位、スワップイン・スワップアウトはプロセス単位
