ページテーブル【page table】

概要

ページテーブルとは、オペレーティングシステム(OS)が仮想メモリを管理する際に使用するデータ構造の一つ。実行中のプログラムが使用する仮想アドレスと実際の物理メモリアドレスとの対応関係を記録した「変換表」である。
ページテーブルのイメージ画像

現代のOSでは、各プログラムが実際の物理メモリを直接操作するのではなく、「仮想アドレス空間」と呼ばれる仮想的なメモリ空間を通じてメモリにアクセスする仕組みを用いるのが一般的である。この仕組みにより、複数のプログラムが互いのメモリ領域を干渉することなく独立して動作できるようになるが、実際にデータを読み書きする際には仮想アドレス物理メモリ上の実際のアドレスに変換する必要がある。ページテーブルはこの変換を行うための対応表である。

仮想メモリは「ページ」と呼ばれる固定サイズ(数キロバイト程度)の単位に分割されており、物理メモリも同じサイズの「ページフレーム」に分割されている。ページテーブルは仮想ページ番号と物理ページフレーム番号の対応を記録しており、CPUメモリにアクセスするたびにこの表を参照して変換処理が行われる。

この変換処理は通常、「MMU」(Memory Management Unitメモリ管理ユニット)と呼ばれるCPUに内蔵されたハードウェア透過的に実行するため、ソフトウェアは変換の過程を意識する必要はなく、あたかも連続したメモリ領域が割り当てられているかのようにメモリアクセスを行うことができる。

ページテーブルの各エントリには物理アドレスの情報だけでなく、そのページが現在物理メモリ上に存在するかどうかを示す「存在ビット」、書き込み可否を示す「保護ビット」、最近アクセスされたかどうかを示す「参照ビット」なども含まれている。存在ビットが「0」の場合、そのページは現在ストレージ上のスワップ領域に退避されており、アクセスが発生すると「ページフォールト」と呼ばれる割り込みが生じてOSがストレージから物理メモリへページの内容を読み込む処理を行う。

アドレス変換のたびにページテーブルを参照するとメモリアクセスのために膨大な追加処理(オーバーヘッド)が生じることになるため、直近に参照した変換結果をキャッシュする「TLB」(Translation Lookaside Buffer)と呼ばれる高速なハードウェアを併用し、変換回数を減らすよう対策するのが一般的である。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。