仮想化ページテーブル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/24 20:24 UTC 版)
「ページテーブル」の記事における「仮想化ページテーブル」の解説
仮想アドレス空間の全仮想ページについてのマッピングを含むページテーブル構造は非常に無駄が多いことは上述の通りである。しかし、ページテーブルを仮想記憶システム内に置くことでページテーブル用のメモリを仮想記憶方式で管理することができる。つまり、多段ページテーブルのサブページテーブルに相当するものを仮想空間上で連続に並べ、現在のプロセスが使用している仮想空間全体がカバーされる仮想化ページテーブルを作成するのである。当然、もともとのサブページテーブルがない部分には何もマッピングされない。32ビットシステムで4Kページ、ページテーブルエントリが32ビットであれば、4Mバイトの仮想空間をページテーブルのマッピングに使用することになる。 仮想化ページテーブルはハードウェアがページテーブルを自動的に参照しない場合に、TLBミスの処理を高速化する手段として使われることが多い。例えば、MIPSアーキテクチャでこれが使われているし、SPARCでも類似の手法が使われている。ただし、この場合に一部のページテーブルは必ず常駐していないと、ページフォールトの連鎖が発生する。つまり、ページフォールトのハンドラ内でアクセスする可能性のある部分でページフォールトが発生すると、ページフォールトが解決できなくなってシステムがストールしてしまう。 ItaniumおよびItanium2では、多段ページテーブルを前提とした仮想化ページテーブルと、逆引きページテーブルを前提とした仮想化ハッシュアンカーテーブルをサポートしており、オペレーティングシステムがいずれかを選んで使用することができる。
※この「仮想化ページテーブル」の解説は、「ページテーブル」の解説の一部です。
「仮想化ページテーブル」を含む「ページテーブル」の記事については、「ページテーブル」の概要を参照ください。
- 仮想化ページテーブルのページへのリンク