理解這樣一個概念,作業系統為了方便管理記憶體,將記憶體劃分成很若干個頁,每個頁表項就代表一個頁的地址(頁的地址,不是記憶體地址)。4B大小的頁表項,意味著支援最大的頁表數是2的32次方=4294967296 (4B=32bit),一個頁的大小4K,那麼4B大小的頁表項,表示作業系統支援4294967296*4K = 16GB大的記憶體。現在問題是頁表佔用一定的記憶體。現在假設有2GB(一定要小於16GB)記憶體。那麼它一共有2GB/4KB=512K個頁,也就是說頁表項有512K項,而每個頁表項的大小4B,那麼頁表在記憶體中佔用的大小是:512K*4B=2MB,意味著,只要2MB就可以表示512K個頁(每個頁是4KB,總記憶體大小是2G),它頁表本身佔用了2MB/4K=512個頁。這一題 就是問你1個頁可以表示多少個頁表項,4KB/4B=1024個頁表項。頁面大小與頁表項沒有絕對的關係,但它們有這樣關係:1.頁面大小 * 2 ^(頁表項大小)=作業系統最大支援記憶體大小(虛擬記憶體),本題是 4K * 2^(4B) = 16GB2.頁表佔用記憶體 = 作業系統記憶體/頁面大小 * 頁表項大小,本題是,假設作業系統記憶體為2GB。 2GB/4KB*4B = 2MB3.頁表佔用的頁數是=頁表佔用記憶體/頁面大小,這題同上假設2MB/4K=512個頁。
理解這樣一個概念,作業系統為了方便管理記憶體,將記憶體劃分成很若干個頁,每個頁表項就代表一個頁的地址(頁的地址,不是記憶體地址)。4B大小的頁表項,意味著支援最大的頁表數是2的32次方=4294967296 (4B=32bit),一個頁的大小4K,那麼4B大小的頁表項,表示作業系統支援4294967296*4K = 16GB大的記憶體。現在問題是頁表佔用一定的記憶體。現在假設有2GB(一定要小於16GB)記憶體。那麼它一共有2GB/4KB=512K個頁,也就是說頁表項有512K項,而每個頁表項的大小4B,那麼頁表在記憶體中佔用的大小是:512K*4B=2MB,意味著,只要2MB就可以表示512K個頁(每個頁是4KB,總記憶體大小是2G),它頁表本身佔用了2MB/4K=512個頁。這一題 就是問你1個頁可以表示多少個頁表項,4KB/4B=1024個頁表項。頁面大小與頁表項沒有絕對的關係,但它們有這樣關係:1.頁面大小 * 2 ^(頁表項大小)=作業系統最大支援記憶體大小(虛擬記憶體),本題是 4K * 2^(4B) = 16GB2.頁表佔用記憶體 = 作業系統記憶體/頁面大小 * 頁表項大小,本題是,假設作業系統記憶體為2GB。 2GB/4KB*4B = 2MB3.頁表佔用的頁數是=頁表佔用記憶體/頁面大小,這題同上假設2MB/4K=512個頁。