2
考慮一個具有32位虛擬地址和1KB頁面的虛擬內存系統。每個頁表項都需要32位。希望將頁面大小限制爲一頁。多級頁面表分層式尋呼
- 多少頁表的水平所需的?
- 表在兩個水平的有256個條目;表在一個水平 具有64個條目(8 + 8 + 6 = 22)。如果頂級頁面表有2^6 條目,那麼可能有多少頁?
- 如果中間級別的頁表有2^6個條目,那麼可能有多少頁是 ?
- 如果底層頁面表有2^6個條目,那麼可能有多少頁面是 ?
考慮一個具有32位虛擬地址和1KB頁面的虛擬內存系統。每個頁表項都需要32位。希望將頁面大小限制爲一頁。多級頁面表分層式尋呼
有2^32/2^10 = 2^22頁這樣的系統上。這意味着只需要22位來尋址頁面。爲了簡單和實用,大多數現代系統會將其與32位對齊並使用額外的位作爲標誌,因此在32位頁表項中,頁表地址中有16 MB。一個頁面可以容納256個條目,使得最深層次的總頁數達到2^22/256 = 16384。下一級將有16384/256 = 64;因爲64 < 256,因此答案是3。
如果你忽視32位對齊(這在現實世界的場景中將是站不住腳的),那麼答案仍然是三個,因爲在22位,每頁最多有372個條目,因此,第一個爲2^22/372 = 11275,第二個爲11275/372 = 30,第三個爲1。
或者你可以從上到下解釋它,所以不是從最深層次開始從頂層開始。在這種特殊情況下,從頂部開始將導致最深層次的每頁最多未使用的條目。這顯然不理想,最好在更高級別有未使用的頁表條目。
無論使用哪種解釋,然而,答案毫無疑問是3
什麼是「希望的是頁表大小限制爲一頁。」在這個問題的意義? – 2012-07-26 22:27:40
@SaikatDas問題只是試圖說,頁面表只能適合一個頁面,這是1024kb。因此,當你找出答案時,你只需要1024字節是表中任何元素的最大尺寸,所以正如我在答案中所提到的那樣,頁表大小隻能是每個32位的256個條目,因爲32位是4個字節和1024(頁面大小)/ 4 = 256。這有意義嗎? – Dougvj 2012-07-27 19:23:55