[過去ログ] C言語なら俺に聞け 152 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
956: (バッミングク MM49-lbBw) 2019/08/14(水)17:57 ID:vUE0DVkpM(1)調 AAS
いくつか補足
>>・仮想アドレスの4KBの領域が1ページと呼ばれる。
今のx86では4MB、x64では2MBのページや1GBのページも使え、メモリ使用効率を犠牲にして大量のメモリを使うプログラムのパフォーマンスを上げられるようになっている。
>>・それぞれのページの先頭アドレスには好きな物理アドレスを割り付けることが出来る。また、ページごとに、R,W,E 属性などを ON/OFF できる。
先頭アドレスが設定できるアドレスは4kB毎。x86でのExecute指定はPAEが有効な時のみ
>>・1024個のページのをまとめてテーブルにして、
x64とPAE有効なx86では8バイト512エントリ
>>・さらに、このページテーブルの先頭アドレスを1024個分まとめて書いた配列があり、ページディレクトリと呼ばれる。
x64では512エントリのテーブルが4段で1ページ4kBだから、4*9+12=48ビットの物理メモリまで指定できる
>>例えば、仮想アドレス領域の一部だけをスタック領域にして、そこからはみ出た場合には保護例外を発生させたいような場合には、セグメンテーションが利用できる。
x86では出来るが、ページングで自動伸長やスタックオーバーフロー検出を特に問題なくできるからわざわざ使わないし、x64ではベースとリミットが廃止されたから不可能
あと、x64で互換モード(32bit)とlongモード(64bit)の切り換えはコードセグメントの設定で自動的に行われるから、そのためには最低2つのコードセグメントが必要
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s