我有很難計算頁面大小,從下面的鏈接來計算:如何頁表的大小,這裏
http://www.embedded-bits.co.uk/2011/mmucode/
正如我們在此表中知道的頁表項是4個字節長,並且有最大4096項(一個用於地址空間的每個1MB),我們可以計算出表的大小爲16KB
頁表的現在總的大小是4096個條目* 4個字節寬條目= 16384個字節= 16KB
但是從上面開始每個4096條目對應於1 Mb的地址空間,這意味着1條目= 1MB。
由於有4096個條目,存儲它所需的空間是4096MB,但我們只有16kb的頁表大小。
另外,這1MB的節有多少虛擬地址,250000?
編輯:
對不起,如果它從我的結尾會更愚蠢。我試圖再次理解它。這1 Mb的部分是物理內存的一部分,而不是虛擬內存/頁表(這是我之前瞭解的)。
現在每個條目都是4個字節長,這是否意味着4個虛擬地址將覆蓋1 Mb的物理內存部分?
虛擬地址空間的1MB包含_by定義1048576個虛擬地址_...我實在無法理解的問題的其餘部分是什麼,因爲「我們知道一個頁表項佔用了4個字節,並描述了1MB區域是如何映射的,因此4 == 1048576並且我沒有剩餘內存「推理顯然是荒謬的。 – Notlikethat
你能告訴我,你是怎麼計算出來的。 1MB = 1024KB和1024KB = 1024 * 1024字節= 1048576,每個地址佔用4byets,所以虛擬地址= 1048574%4 = 262144? –
什麼?沒有。有4096個虛擬1MB區域,每個區域可映射到4096個物理1MB區域中的一個區域(或者什麼都不是,或者是由2級表格描述的更細粒度的佈局,但我們忽略它)。這就是PTE中12位地址所表示的內容。 VA的較低位形成該虛擬區域的偏移,並且到物理區域的相同偏移產生所得到的PA。見例如[這些插圖](http://infocenter.arm.com/help/topic/com.arm.doc.den0024a/ch12s03.html)(公衆AArch64版本的插圖,但註冊一個帳戶,並獲取ARMv7-A指南細節)。 – Notlikethat