---
title: "ページング方式とは？ページとフレームで主記憶を管理する考え方【基本情報技術者試験】"
description: "ページング方式を「プログラムを固定長のページに分け、主記憶のフレームに割り当てる方式」として整理し、ページ、ページ枠、ページテーブル、ページフォールト、可変区画方式やセグメント方式との違いをFE試験向けに解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/paging/"
section: "fe"
---

## まず結論

ページング方式とは、**プログラムを固定長のページに分け、主記憶を同じ大きさのページ枠に分けて管理する方式**です。

基本情報技術者試験では、次のように判断すると選択肢を切りやすくなります。

| 用語 | 何を表す？ | 判断の合図 |
|---|---|---|
| ページ | プログラム側を固定長に分けた単位 | 仮想記憶側、プログラム側 |
| ページ枠・フレーム | 主記憶側を固定長に分けた単位 | 主記憶側、物理メモリ側 |
| ページテーブル | ページとページ枠の対応表 | アドレス変換、対応付け |
| ページフォールト | 必要なページが主記憶にない状態 | 補助記憶から読み込む |

ページング方式のポイントは、**プログラムを連続した領域に置かなくてもよい**ことです。

## 直感的な説明

ページング方式は、本を同じ大きさの紙に分けて、空いている棚にバラバラに置くイメージです。

```text
プログラム
[ ページ1 ][ ページ2 ][ ページ3 ]

主記憶
[ 枠A ][ 枠B ][ 枠C ][ 枠D ]
```

ページ1、ページ2、ページ3が、主記憶上で連続して並んでいる必要はありません。

```text
主記憶
[ ページ2 ][ 空き ][ ページ1 ][ ページ3 ]
```

このとき、どのページがどのページ枠に入っているかを管理するのが **ページテーブル** です。

つまり、ページング方式は **細かく同じ大きさに分けて、置き場所を表で管理する方式** と考えると分かりやすいです。

## 定義・仕組み

ページング方式では、仮想記憶空間を固定長の **ページ** に分けます。

一方、主記憶は同じ大きさの **ページ枠**、または **フレーム** に分けます。

| 側 | 分け方 | 名前 |
|---|---|---|
| プログラム・仮想記憶側 | 固定長に分ける | ページ |
| 主記憶・物理メモリ側 | 固定長に分ける | ページ枠、フレーム |

ページとページ枠は、ページテーブルで対応付けます。

```text
ページ番号 → ページ枠番号
```

例えば、ページ1が主記憶のページ枠3に入っているなら、ページテーブルにはその対応が記録されます。

```text
ページ1 → ページ枠3
ページ2 → ページ枠0
ページ3 → ページ枠4
```

CPUが仮想アドレスを使ってアクセスすると、ページテーブルを使って物理アドレスに変換します。

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

## 科目Aでどう出る？

科目Aでは、ページング方式の役割や、関連用語の意味を問う問題が出やすいです。

判断するときは、次のように切り分けます。

| 問題文の表現 | 選びたい用語 |
|---|---|
| プログラムを固定長の単位に分割する | ページング方式 |
| 仮想記憶側の固定長単位 | ページ |
| 主記憶側の固定長単位 | ページ枠、フレーム |
| ページとページ枠の対応を管理する | ページテーブル |
| 必要なページが主記憶にない | ページフォールト |
| 最近使われていないページを置き換える | LRU |

ページング方式では、主記憶上でページが連続している必要はありません。

そのため、可変区画方式で問題になりやすい **外部フラグメンテーション** を起こしにくいという特徴があります。

ただし、固定長に分けるので、最後のページやページ枠に使われない部分が残ることがあります。

これは **内部フラグメンテーション** と関係します。

## どんな場面で使う？

問題文では、ページング方式そのものを長文で深く問われるより、仮想記憶や主記憶管理の説明を読むときに役立ちます。

例えば、次のような流れです。

```text
プログラムがあるページにアクセスする
↓
ページテーブルで対応するページ枠を調べる
↓
主記憶にあればアクセスする
↓
主記憶になければページフォールトが起きる
↓
補助記憶から必要なページを読み込む
```

ここで大切なのは、**ページフォールトはエラー終了ではなく、必要なページを主記憶に読み込むきっかけ** になることです。

ただし、ページフォールトが多すぎると、補助記憶との入れ替えが増えて処理が遅くなります。

この状態は、スラッシングと関係します。

## よくある誤解・混同

ページング方式では、次の混同がよく起こります。

| 誤解・混同 | 正しい見方 |
|---|---|
| ページとページ枠は同じ意味 | ページは仮想記憶側、ページ枠は主記憶側 |
| ページは必ず主記憶上で連続して並ぶ | 連続している必要はない |
| ページフォールトは必ず異常終了 | 必要なページが主記憶にない状態で、読み込みのきっかけになる |
| ページング方式は外部フラグメンテーションが中心 | 固定長なので外部フラグメンテーションは起こしにくい |
| セグメント方式と同じ | ページングは固定長、セグメントは意味のある可変長単位 |

特に、可変区画方式との違いは重要です。

| 方式 | 分け方 | 見るポイント |
|---|---|---|
| 可変区画方式 | 必要な大きさに合わせて区画を作る | 空き領域が分かれやすい |
| ページング方式 | 固定長のページ・ページ枠に分ける | ページテーブルで対応を管理する |
| セグメント方式 | プログラムを意味のある単位に分ける | 手続き、データ、スタックなどの単位 |

試験では、**固定長ならページング、意味のある単位ならセグメント、空き領域を順に割り当てるなら可変区画方式** と切り分けます。

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

- ページング方式は、プログラムを固定長のページに分ける方式
- 主記憶側の固定長単位は、ページ枠またはフレーム
- ページテーブルは、ページとページ枠の対応を管理する
- ページは主記憶上で連続している必要はない
- ページフォールトは、必要なページが主記憶にない状態
- 固定長なので外部フラグメンテーションを起こしにくい
- ページングは固定長、セグメント方式は意味のある単位で分ける
