最終更新日:2026年8月31日
fe fe-technology computer-system
まず結論
ページング方式とは、プログラムを固定長のページに分け、主記憶を同じ大きさのページ枠に分けて管理する方式です。
基本情報技術者試験では、次のように判断すると選択肢を切りやすくなります。
| 用語 | 何を表す? | 判断の合図 |
|---|---|---|
| ページ | プログラム側を固定長に分けた単位 | 仮想記憶側、プログラム側 |
| ページ枠・フレーム | 主記憶側を固定長に分けた単位 | 主記憶側、物理メモリ側 |
| ページテーブル | ページとページ枠の対応表 | アドレス変換、対応付け |
| ページフォールト | 必要なページが主記憶にない状態 | 補助記憶から読み込む |
ページング方式のポイントは、プログラムを連続した領域に置かなくてもよいことです。
また、必要なページが主記憶にないときは、まずページフォールトが発生します。
主記憶に空きページ枠がない場合は、次の順番で考えます。
ページフォールト
↓
置換え対象ページを決定
↓
ページアウト
↓
ページイン
直感的な説明
ページング方式は、本を同じ大きさの紙に分けて、空いている棚にバラバラに置くイメージです。
プログラム
[ ページ1 ][ ページ2 ][ ページ3 ]
主記憶
[ 枠A ][ 枠B ][ 枠C ][ 枠D ]
ページ1、ページ2、ページ3が、主記憶上で連続して並んでいる必要はありません。
主記憶
[ ページ2 ][ 空き ][ ページ1 ][ ページ3 ]
このとき、どのページがどのページ枠に入っているかを管理するのが ページテーブル です。
つまり、ページング方式は 細かく同じ大きさに分けて、置き場所を表で管理する方式 と考えると分かりやすいです。
もし必要なページが棚にない場合は、そのページを補助記憶から持ってくる必要があります。
ただし棚に空きがなければ、先に何かを外へ出して場所を作ります。
必要なページがない
→ ページフォールト
空きがない
→ 追い出すページを決める
追い出す
→ ページアウト
必要なページを入れる
→ ページイン
定義・仕組み
ページング方式では、仮想記憶空間を固定長の ページ に分けます。
一方、主記憶は同じ大きさの ページ枠、または フレーム に分けます。
| 側 | 分け方 | 名前 |
|---|---|---|
| プログラム・仮想記憶側 | 固定長に分ける | ページ |
| 主記憶・物理メモリ側 | 固定長に分ける | ページ枠、フレーム |
ページとページ枠は、ページテーブルで対応付けます。
ページ番号 → ページ枠番号
例えば、ページ1が主記憶のページ枠3に入っているなら、ページテーブルにはその対応が記録されます。
ページ1 → ページ枠3
ページ2 → ページ枠0
ページ3 → ページ枠4
CPUが仮想アドレスを使ってアクセスすると、ページテーブルを使って物理アドレスに変換します。
ページフォールトが起きたときの流れ
CPUが必要とするページが主記憶に存在しないと、ページフォールトが発生します。
この後の処理は、主記憶に空きページ枠があるかどうかで変わります。
空きページ枠がある場合
空きがあれば、置換えは必要ありません。
ページフォールト
↓
必要なページをページイン
空きページ枠がない場合
空きがなければ、既存ページを1つ追い出して場所を作ります。
ページフォールト
↓
置換え対象ページを決定
↓
ページアウト
↓
必要なページをページイン
ここで、置換え対象を決める方法として FIFO や LRU などのページ置換アルゴリズムが使われます。
このテーマは、基本情報技術者試験の「コンピュータシステム」や「主記憶管理」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、ページング方式の役割や、関連用語の意味を問う問題が出やすいです。
判断するときは、次のように切り分けます。
| 問題文の表現 | 選びたい用語 |
|---|---|
| プログラムを固定長の単位に分割する | ページング方式 |
| 仮想記憶側の固定長単位 | ページ |
| 主記憶側の固定長単位 | ページ枠、フレーム |
| ページとページ枠の対応を管理する | ページテーブル |
| 必要なページが主記憶にない | ページフォールト |
| 最近使われていないページを置き換える | LRU |
さらに、処理順を問われたら次のように判断します。
必要なページが主記憶にない
→ ページフォールトが最初
そのうえで、空きページ枠がないなら、
置換え対象ページを決める
→ ページアウト
→ ページイン
です。
つまり試験では、
ページフォールト
→ 置換え対象決定
→ ページアウト
→ ページイン
という順番を押さえておくと、処理順の選択肢を切りやすくなります。
ページング方式では、主記憶上でページが連続している必要はありません。
そのため、可変区画方式で問題になりやすい 外部フラグメンテーション を起こしにくいという特徴があります。
ただし、固定長に分けるので、最後のページやページ枠に使われない部分が残ることがあります。
これは 内部フラグメンテーション と関係します。
どんな場面で使う?
問題文では、ページング方式そのものを長文で深く問われるより、仮想記憶や主記憶管理の説明を読むときに役立ちます。
例えば、次のような流れです。
プログラムがあるページにアクセスする
↓
ページテーブルで対応するページ枠を調べる
↓
主記憶にあればアクセスする
↓
主記憶になければページフォールトが起きる
↓
空きがあればそのページを読み込む
↓
空きがなければ置換え対象を決める
↓
ページアウトして空きを作る
↓
必要なページをページインする
ここで大切なのは、ページフォールトはエラー終了ではなく、必要なページを主記憶に読み込むきっかけ になることです。
ただし、ページフォールトが多すぎると、補助記憶との入れ替えが増えて処理が遅くなります。
この状態は、スラッシングとは?ページフォールトが多発して性能が低下する状態と関係します。
よくある誤解・混同
ページング方式では、次の混同がよく起こります。
| 誤解・混同 | 正しい見方 |
|---|---|
| ページとページ枠は同じ意味 | ページは仮想記憶側、ページ枠は主記憶側 |
| ページは必ず主記憶上で連続して並ぶ | 連続している必要はない |
| ページフォールトは必ず異常終了 | 必要なページが主記憶にない状態で、読み込みのきっかけになる |
| ページフォールトの直後は必ずページイン | 空きがなければ、先に置換え対象決定とページアウトが必要 |
| ページアウトは必要なページを読み込む処理 | ページアウトは主記憶から追い出す処理 |
| ページインは主記憶から追い出す処理 | ページインは補助記憶から主記憶へ読み込む処理 |
| ページング方式は外部フラグメンテーションが中心 | 固定長なので外部フラグメンテーションは起こしにくい |
| セグメント方式と同じ | ページングは固定長、セグメントは意味のある可変長単位 |
特に、可変区画方式との違いは重要です。
| 方式 | 分け方 | 見るポイント |
|---|---|---|
| 可変区画方式 | 必要な大きさに合わせて区画を作る | 空き領域が分かれやすい |
| ページング方式 | 固定長のページ・ページ枠に分ける | ページテーブルで対応を管理する |
| セグメント方式 | プログラムを意味のある単位に分ける | 手続き、データ、スタックなどの単位 |
試験では、固定長ならページング、意味のある単位ならセグメント、空き領域を順に割り当てるなら可変区画方式 と切り分けます。
まとめ(試験直前用)
- ページング方式は、プログラムを固定長のページに分ける方式
- 主記憶側の固定長単位は、ページ枠またはフレーム
- ページテーブルは、ページとページ枠の対応を管理する
- ページは主記憶上で連続している必要はない
- ページフォールトは、必要なページが主記憶にない状態
- 空きがなければ「ページフォールト → 置換え対象決定 → ページアウト → ページイン」
- ページアウトは主記憶から追い出す、ページインは主記憶へ読み込む
- 空きページ枠があれば置換えやページアウトは不要
- 固定長なので外部フラグメンテーションを起こしにくい
- ページングは固定長、セグメント方式は意味のある単位で分ける