4

通常のメモリアクセスはページテーブルを経由して、仮想アドレスから物理アドレスへの変換を行うことを知っています。しかし、pteの変更はどうですか?OSがプロセスのページテーブルエントリを変更したいとしますが、プロセスのページテーブルも通過しますか?言い換えると、ページテーブルにそれ自体を指すエントリがありますか?

4

2 に答える 2

2

それはCPU/MMU/ハードウェアに大きく依存します。

x86では、PTEは通常、ページ変換がすでに有効になっている場合に変更されます(ページ変換を有効にする前に実行できるページテーブルの初期設定と混同しないでください)。したがって、メモリアクセスには仮想アドレスから物理アドレスへの変換が必要です。

もちろん、ページの翻訳をオフにすることもできます。または、DMAまたは他の回路(またはCPU)を使用して、CPUの外部からメモリの内容を変更できます。しかし、それは非常に珍しいことです。

多くの異なるCPUを知りませんが、それらの一部には、アクセス時にアドレス変換なしでPTEを直接操作する特別な機能がある可能性があります。

x86では、エントリの1つがページディレクトリを指すようにページディレクトリ(最上位のページテーブル)を設定することも一般的です。これにより、仮想アドレスのサブ範囲内のすべてのPDEおよびPTEにアクセスできます。

于 2012-08-15T17:09:27.880 に答える
0

それは正しい。仮想アドレス空間からアクセスできるように、ページディレクトリ自体の物理アドレスを指すPTEを1つ持つのが一般的です。

于 2012-08-15T09:43:58.703 に答える