先畫個圖:
再來一張:
然后是一個困擾我很久的問題:為什么多級頁表省空間
現在我的理解是這樣的:二級頁表的系統中,程序的內存中存放到頁表有:一級頁表(這個是必存的,任何程序都要存),以及該程序實際占用頁面對應的二級頁表項(一般程序的大小就幾MB,一般存幾個二級頁表就夠了,因為一個二級頁表可以指向2^10*2^12=2^22=8MB的空間。)這就是為什么多級頁表比普通頁表省空間的原因。
但如果你的程序要把整個內存全占了(假設),那你需要的頁表就包含了一級頁表和所有的二級頁表。那么這反而就不如不分級來的好了。
但實際工作中哪有這樣的程序呢?所以還是多級頁表更優秀。