ページテーブルのデータ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/24 20:24 UTC 版)
「ページテーブル」の記事における「ページテーブルのデータ」の解説
最も単純なページテーブルシステムはフレームテーブルとページテーブルから構成される。 フレームテーブルは最も基本的なシステムであり、どのフレームがマップされているかという情報を保持する。より高度なシステムではフレームテーブルにはどの仮想アドレス空間にそのページが属しているかという情報、統計情報、その他の情報も格納される。 ページテーブルはページの仮想アドレスと物理フレームのアドレスのマッピングを保持する。その他の補助的情報として、present(存在)ビット、dirtyまたはmodified(書き込み)ビット、アドレス空間識別子やプロセス識別子などの情報も格納される。 ハードディスクなどの二次記憶は物理メモリを増やすためにも使われる。ページはメモリからディスクにスワップアウトしたり、逆にスワップインしたりすることができる。presentビットはページがどのレベルに存在するかを示すものであり、スワップアウトやスワップインの基本的な情報として使用される。 dirtyビットは性能最適化に使用される。あるページを物理メモリにスワップインしたとする。このページに書き込みが行われるかもしれないし、内容を読むだけかもしれない。そして、後でそのページをスワップアウトする必要が生じたとき、そのページがスワップインされてから変更されていなければ、スワップアウトを実際に行う必要はない(再度スワップインしたければ、以前の内容を持ってくればよい)。しかし、書き込みを行っていれば dirtyビットが立っているので、スワップアウトを行わなければならない。 アドレス空間識別子あるいはプロセス識別子はページの対応するプロセスを識別するのに必要である。各プロセスの仮想メモリマップは同じなので、二つのプロセスの間で同じ仮想アドレスが別の用途に使われている。したがってページテーブル上で仮想アドレスの属しているプロセスを識別しなければならない。このためにユニークなアドレス空間識別子かプロセス識別子を使用するのである。 なお、ページテーブルのエントリはそのままTLBに書き込める形式になっていることが多い。したがって、ハードウェアの仕様としてTLBのエントリにはハードウェアが使用しないビットがいくつか用意されていて、ソフトウェアがページテーブルに追加の情報を格納するのに使うことができるようになっている。
※この「ページテーブルのデータ」の解説は、「ページテーブル」の解説の一部です。
「ページテーブルのデータ」を含む「ページテーブル」の記事については、「ページテーブル」の概要を参照ください。
- ページテーブルのデータのページへのリンク