TL

ページングとスワップ

仮想メモリをページという固定長の単位で物理メモリに割り当てる方式がページングです。物理に無いページはページフォルトを契機に、足りなければスワップで補います。

中級ページングスワップ仮想メモリOS最終更新: 2026-06-06
TL;DR要点だけ先に
  • 1.ページングは、メモリをページ(例: 4KB)単位で区切り、仮想ページを物理フレームに対応づける方式です。
  • 2.物理メモリに無いページへ触るとページフォルトが起き、OS がディスクから読み込みます。
  • 3.物理メモリが足りないときは、使われていないページをディスク(スワップ)へ退避して空けます。

ページングとは

ページングは、メモリを ページ と呼ぶ 固定長のブロック(典型的には 4KB)に区切って管理する方式です。仮想アドレス空間の各ページを、物理メモリ側の同じ大きさの枠 ページフレーム に対応づけます。

「どの仮想ページがどの物理フレームに置かれているか」の対応表が ページテーブル です。アドレスの変換はこう進みます。

仮想アドレス = [ ページ番号 | ページ内オフセット ]
                    │
                    ▼  ページテーブルを引く(MMU が実行)
              物理フレーム番号
                    │
                    ▼
物理アドレス = [ フレーム番号 | ページ内オフセット ]

オフセット(ページ内の位置)はそのまま使い、上位のページ番号だけを変換 します。固定長で扱うため、空き領域を柔軟に割り当てやすいのが利点です。

なぜページ単位なのか

メモリをプロセスの要求する大きさのまま連続で割り当てると、確保と解放を繰り返すうちに すき間(断片化) が増え、合計は足りても連続した空きが取れなくなります。

ページングは 固定長の枠 に切り分けることで、これを避けます。

  • 物理メモリのどの空きフレームにも置ける(連続している必要がない
  • プロセスが見るアドレスは連続でも、物理配置は バラバラでよい
  • 使う部分だけ物理に置けばよい

ページ番号からフレーム番号への変換は、メモリアクセスのたびに発生するため、CPU 内蔵の MMU がハードウェアで行い、最近の変換結果を TLB という小さなキャッシュに保持して高速化します。

ページフォルト:物理に無いページへ触ったとき

すべてのページを最初から物理メモリに載せておく必要はありません。プロセスが 物理メモリ上に存在しないページ に触ると、MMU は ページフォルト という例外を発生させ、処理を OS に委ねます。

1. プロセスがページ X にアクセス
2. ページテーブルに「物理に無い」印 → ページフォルト発生
3. OS が割り込んで、空きフレームを確保
   (空きが無ければ既存ページを1つ追い出す=ページ置換)
4. 必要ならディスクからページ X を読み込む
5. ページテーブルを更新し、止めた命令を再実行 → 何事もなく続行

追い出すページの選び方を ページ置換アルゴリズム と呼び、最近最も使われていないものを優先する LRU などが基本です。

ページフォルト=エラーではない

名前に fault と付きますが、ページフォルトは正常な仕組みの一部です。スワップからの読み戻しのほか、まだ割り当てていないメモリへの初回アクセス(デマンドページング)でも起きます。本当に不正な番地に触れた場合は、別物の セグメンテーション違反 となりプログラムが落ちます。

スワップ:物理が足りないとき

物理メモリに載り切らないページは、OS が ディスク上の領域(スワップ領域 / ページファイル) に退避します。これが スワップ です。当面使われないページをディスクへ逃がして物理メモリを空け、必要になったら読み戻します。

これにより「物理メモリより大きく使えているように見せる」ことができますが、ディスクは主記憶より桁違いに遅いため、スワップが頻発すると一気に重くなります。

観点ページフォルトスワップ
何を指すか物理に無いページへの参照例外ページをディスクへ退避する操作
必ず遅いか速い場合もある(メモリ上で完結)ディスク I/O を伴い遅い
発生契機未割り当て・退避済みページの参照物理メモリの不足
スラッシングに注意

物理メモリが足りず「追い出した直後にまた要る」を繰り返す状態を スラッシング と呼びます。CPU が処理よりページの出し入れに忙殺され、システム全体が激しく遅くなります。対策はメモリ増設や、同時に動かす量を減らすことです。

まとめ

  • ページングは 仮想ページを物理フレームに対応づける 方式で、断片化を避けつつ柔軟に割り当てられる。
  • 物理に無いページへ触ると ページフォルト が起き、OS が読み込む。
  • 物理が足りなければ スワップ でディスクへ退避し、物理より大きく見せる(ただし遅い)。

アドレス変換の全体像は 仮想記憶(ページング)、確保・解放の方針は メモリ管理 も合わせてどうぞ。

OS Article

ページングとスワップを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ページング

比較で見る軸

難易度: intermediate / カテゴリ: OS / タグ数: 4

導入後に効く点

物理メモリに無いページへ触るとページフォルトが起き、OS がディスクから読み込みます。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
intermediate
カテゴリ
OS
タグ数
4

判断チェックリスト

  • 自社の用途が「ページング / スワップ」に近いか確認する。
  • 強みである「ページングは、メモリをページ(例: 4KB)単位で区切り、仮想ページを物理フレームに対応づける方式です。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ページングスワップ仮想メモリOSページングスワップ仮想メモリOS
参考: 公式情報