先畫個圖:
再來一張:
然後是乙個困擾我很久的問題:為什麼多級頁表省空間
現在我的理解是這樣的:二級頁表的系統中,程式的記憶體中存放到頁表有:一級頁表(這個是必存的,任何程式都要存),以及該程式實際占用頁面對應的二級頁表項(一般程式的大小就幾mb,一般存幾個二級頁表就夠了,因為乙個二級頁表可以指向2^10*2^12=2^22=8mb的空間。)這就是為什麼多級頁表比普通頁表省空間的原因。
但如果你的程式要把整個記憶體全佔了(假設),那你需要的頁表就包含了一級頁表和所有的二級頁表。那麼這反而就不如不分級來的好了。
但實際工作中哪有這樣的程式呢?所以還是多級頁表更優秀。
頁表管理及多級頁表
頁表說需空間大小計算 32 位位址空間 4kb 的頁大小 頁表的每項大小為 4byte。位位址空間 4kb 的頁大小 頁表的每項大小為 4b。多級分頁 32 位執行模式情形 級分頁 對 4kb 的頁大小 因為每頁pgd 的pt項為 kb 4b 2 10條 實際4g 32 2 12 2 10 2 10...
頁式管理 多級頁表
作業分成若干個相等的 頁 記憶體分成相等的 塊 使 頁 的大小等於 塊 以 頁 為單位,將作業的 頁 裝入記憶體的 塊 中。特點 1.可以不連續地使用記憶體 2.實現內外存統一管理 靜態頁面管理的思想 作業 程序開始執行前,把作業 程序的程式和資料全部裝入記憶體的 塊 中 通過位址變換機構實現虛位址...
多級頁表的優點和缺點
多級頁表是基於虛擬位址的分段來劃分等級的,最低等級的頁表上儲存了最終的虛擬頁號和物理頁號的對應關係。例如拿32位的虛擬位址來說,如果頁面的大小為4k,也就是12位,那麼位址空間內將有20位,也就是1m的頁表專案,每個專案對應乙個虛擬頁面。那麼對於位址空間中用於表示頁號的20位位址再次分級,分成10位...