【ぺーじんぐ】

ページング とは?

最終更新:
💡 仮想メモリと物理メモリを「ページ単位」で対応付ける

仮想メモリを固定サイズのページに分け、ページテーブルを使って物理メモリの位置などを管理する方式。スワップへの退避は、その管理に組み合わせる仕組みの一つ。

📌 このページのポイント
ページテーブルで位置を対応付ける 仮想ページ 対応表 物理メモリ ページ 0 ページ 1 ページ 2 ページ 3 0 → 枠2 1 → 枠0 2 → 枠3 3 → 退避先 枠0:ページ1 枠1:空き 枠2:ページ0 枠3:ページ2 スワップ領域(利用する場合) ページ3を使う際には読み戻しが必要 対応表は位置の例。退避は常に行うわけではない
実線は仮想ページと物理メモリの対応、破線は退避先の情報を表します。スワップの利用は設定とメモリの状況によります。
ひよこ ひよこ
ページングって何をするの?
ペンギン先生 ペンギン先生
仮想メモリを「ページ」に分け、ページテーブルで物理メモリのどこに対応するかを管理するよ。仮想側で連続していても、物理側では離れた位置に置ける。ページサイズは4KBの環境もあるけれど、CPUやOSの構成で異なり、大きなページを使う仕組みもあるんだ。
ひよこ ひよこ
スラッシングって何?
ペンギン先生 ペンギン先生
必要なページをメモリに置ききれず、退避と読み込みなどに追われて処理が進みにくくなる状態だよ。通常のページ管理だけで遅くなるという意味ではない。スワップが使われている量だけで判断せず、出し入れの頻度や実際の応答速度も確認するんだ。
ひよこ ひよこ
「ページネーション」(画面の次へ)と何か関係あるの?
ペンギン先生 ペンギン先生
名前には同じ「ページ」が入るけれど別の概念だよ。Webのページネーションは大量の表示データを複数の画面に分ける仕組み。ここでいうページングはOSのメモリ管理だね。
ひよこ ひよこ
メモリが足りなくなったらどうなるの?
ペンギン先生 ペンギン先生
Linuxでは、不要になったファイルのキャッシュを回収したり、設定されていれば匿名ページをスワップへ退避したりして空きを作るよ。必要なページがまだメモリにないと、ページフォールトをきっかけに確保や読み込みを行う。それでも確保できない場合は、OOM Killerによるプロセスの終了などが起こり得るんだ。
ひよこ ひよこ
メモリ不足にはどう対処すればいいの?
ペンギン先生 ペンギン先生
まずどの処理がメモリを使っているか、使用量が増え続けていないかを調べよう。同時に動かす処理を減らす、メモリリークを直す、必要なメモリを増やすなどが対策になる。スワップは不足時の助けになることもあるけれど、実際に必要なメモリ量を減らす仕組みではないよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ページング」って出てきたら「メモリをページ単位で管理するOSの仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Paging」 = ページ単位の管理
💬 本のページのように一定サイズの単位でメモリを扱う。ページテーブルで位置を管理し、必要に応じてページの読み込みや退避も行う。

参考資料

← 用語集にもどる