ページング
英語表記: Paging
概要
ページングは、OSの基本機能に含まれるメモリ管理技術の一つであり、仮想記憶を実現するための核心的な手法です。実行中のプログラム(プロセス)が必要とするアドレス空間を、一定の固定サイズに分割した「ページ」という単位で管理します。これにより、物理メモリの連続性を考慮することなく、巨大な仮想アドレス空間を効率的かつ安全に利用できるようになるのです。
この技術は、OSの基本機能(プロセス管理, メモリ管理)の中でも、特に「メモリ管理」における「仮想記憶」の実現に特化しており、現代のマルチタスクOSの動作に不可欠な要素となっています。
詳細解説
ページングの主な目的は、第一に物理メモリの容量制限を超えたプログラムの実行を可能にすること、そして第二にメモリの外部断片化を解消することにあります。この仕組みを理解することは、OSのメモリ管理機能の深部に触れることになりますので、非常に興味深いですよ。
仕組みと主要な構成要素
ページングは、論理アドレス空間と物理アドレス空間を固定長のブロックで対応付けることで機能します。
- ページ (Page): プロセス(プログラム)の論理アドレス空間を分割した固定サイズのブロックです。一般的に、4KBや8KBなどのサイズが用いられます。
- ページ枠(フレーム / Page Frame): 物理メモリ(RAM)をページと同じ固定サイズに区切った区画です。
- ページテーブル (Page Table): OSが管理する非常に重要なデータ構造で、論理アドレスのページ番号と、対応する物理メモリのページ枠番号(フレーム番号)を記録したマッピング表です。
アドレス変換の動作
CPUがプログラムを実行する際、アクセスするのは論理アドレス(仮想アドレス)です。この論理アドレスは、メモリ管理ユニット(MMU)によって物理アドレス(実アドレス)に変換されます。
具体的な変換の流れは以下の通りです。
- CPUが発行した論理アドレスは、「ページ番号」と「オフセット(ページ内の位置)」に分割されます。
- OSは、プロセスが持つページテーブルを参照し、ページ番号に対応する物理メモリ上の「ページ枠番号」を検索します。
- このページ枠番号と元のオフセットを結合することで、最終的な物理アドレスが確定し、メモリへのアクセスが行われます。
このアドレス変換は、プロセスがメモリにアクセスするたびに発生するため、非常に高速に行われる必要があります。そのため、最近のCPUには、頻繁に使用されるページテーブルのエントリをキャッシュするためのTLB (Translation Lookaside Buffer) という専用のハードウェア機構が搭載されており、変換処理を劇的に加速させています。この技術的な工夫があるからこそ、仮想記憶は実用的なものになっているのですね。
仮想記憶とページイン/ページアウト
ページングの真価は、物理メモリに収まりきらない巨大なプログラムでも実行できる点にあります。
物理メモリが不足した場合、OSは使用頻度の低いページを一時的に補助記憶装置(HDDやSSDなど)に退避させます。これをページアウト(またはスワッピングアウト)と呼びます。退避された領域は、一般的にスワップ領域やページファイルと呼ばれます。
そして、CPUがアクセスしようとしたページが物理メモリ上に存在しない場合(これをページフォールトと呼びます)、OSは即座に動作を中断し、補助記憶装置から該当ページを読み込み直します。これをページインと呼びます。
このページイン/ページアウトの動作は、利用者からは完全に隠蔽されており、あたかも物理メモリが無限にあるかのように感じられます。このように、物理的な制約を超えて広大なメモリ空間を提供するのが、仮想記憶の役割であり、ページングはその実現手段として不可欠なのです。
断片化の解消
ページングは、固定長でメモリを管理するため、セグメンテーション(可変長管理)で問題となる外部断片化を根本的に解消します。物理メモリ上の空いているページ枠であれば、どこにでもデータを配置できるため、メモリの利用効率が非常に高いのも大きなメリットです。ただし、ページ内部に生じるわずかな未使用領域(内部断片化)は残りますが、これは通常許容範囲とされています。
具体例・活用シーン
ページングの概念は、日常の管理業務に置き換えると、その効率性と合理性がよく理解できます。
- 大規模図書館の書架管理のメタファー
巨大な図書館(仮想メモリ)を想像してください。蔵書(プログラム)は非常に多いですが、実際に閲覧室(物理メモリ)に置ける本の量は限られています。- 固定サイズの棚(ページ枠): 図書館のすべての書架は、固定サイズで区切られています。
- 固定サイズのファイル(ページ): どの本も、固定サイズのファイルボックス(ページ)に収納されます。
- 目録(ページテーブル): どのファイルボックスが、閲覧室のどの棚にあるか、あるいは巨大な倉庫(補助記憶装置)に保管されているかを正確に記録した目録(ページテーブル)があります。
閲覧室の棚がいっぱいになったとき、司書(OS)
