Skip to content

ページテーブルエントリを作成する際の挙動・メモリレイアウトについて #19

Closed Answered by nuta
keisuke713 asked this question in Help
Discussion options

You must be logged in to vote

ページテーブルを辿る処理についてはどちらも正しいです 💯 PTE_PADDRは物理ページ番号から物理メモリアドレスへの変換をするマクロです。

なぜエントリが物理ページの先頭アドレスではなく、物理ページ番号を持っているのかは(おそらく)エントリ中のビット数の節約です。先頭アドレスをページの固定長を割ったより小さな数値を持っておけば良いので、節約できたところに他の情報(有効ビット・書き込み可ビットなど)を埋め込めます。

「おそらく」とはぐらかしたのは、CPUの設計次第で「物理アドレスをもつページテーブルエントリ」というのも実現できるはずだからです。ただ、x86-64含め基本的には物理ページ番号を持っていることが一般的だと思います。

Replies: 1 comment 4 replies

Comment options

You must be logged in to vote
4 replies
@keisuke713
Comment options

@keisuke713
Comment options

@nuta
Comment options

@keisuke713
Comment options

Answer selected by keisuke713
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Help
Labels
None yet
2 participants