設定的過程的話大概是
1. 進保護模式
2. 選擇使用的 segment
3. 初始化 page table
4. 開啟分頁和PAE
pae 跟非 pae 差在你有 4個 PDPT 可以去用
一般直覺可以拿每一個來指到 1G的 MEM 剛好 4G
PAE 就是有一個 4bit 的欄位讓你去存取更高位址的記憶體
代表實體記憶體的 31bit~35bit
指來指去.看你分頁要設多少就設多少, 很彈性,
但如果真的要做到管理的話應該要花一番功夫吧。
以上如果有錯請指正
※ 引述《final01 (牛頓運動定律)》之銘言:
: ※ 引述《james732 (紫雁)》之銘言:
: : 我有一些關於 PAE 觀念上的問題,想詢問一下
: : 根據找到的資料
: : http://en.wikipedia.org/wiki/Physical_Address_Extension (維基百科)
: : http://0rz.tw/4647U (PDF檔案)
: : 當硬體開啟 PAE 之後,影響只在
: : Linear -> Physical 這個部份
: : 每個 Process 能用的 Virtual Memory Space 仍然是 2^32 = 4G
: : 開啟 PAE 的作用,只是讓實體記憶體有更多的分頁可以用
: : 也就是說,實體記憶體可以載入更多的 Process
: : 但每個 Process 能用的空間(virtual space 與 linear space)
: : 並沒有變多,仍然是 4G (除非OS另外支援)
: 我想你如果對X86有點概念,應該都看過這張圖吧?
: ____________ _________
: logic address => |segment unit| => linear address => |page unit| => Physical address
: (virtual)
: 不知道你講的Process 能用的空間跟我想的一不一樣
: 我覺得Process 能用的空間其實是一種"抽象"的概念,
: 實際的運作是用32bit 暫存器去"定址",所以這樣就能解釋
: Process 能定址的linear space是4G是不變的.
: 順道一提因為現代OS的機制都是忽略segment
: 所以virtual address 跟linear address是一樣的
: 至於page機制要如何將4G的linear space對應到實體記憶體又是一回事了
: 我也不知道是不是這樣!"感覺"好像是這樣啦
: 底下這個圖也不會改變
: 當然吧!因為Process能"定址"就是4G
: : +--------------+ 4G (不會變成64G)
: : | stack |
: : +--+-----------+
: : | | ^ |
: : | v | |
: : | 空 | |
: : | | |
: : +----------+---+
: : | heap |
: : +--------------+
: : | code |
: : +--------------+ 0
: : 請問這樣的觀念正確嗎?我不太確定
: : 如果我想錯了,也請指教 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.87.127