2011-11-01 129 views
0

我盡力瞭解所示的頁面翻譯概念hereUNIX中的頁面大小是多少?

偏移量是12位,這意味着有4096個條目或4K條目。內存中的每個條目都是32位或4字節。所以這意味着一個頁面大小爲4K x 4Bytes = 16KB。

但這似乎不正確。

我對尺寸的計算已經搞亂了。請幫助我理解這個尺寸的兩級翻譯。

根據給定的圖片。
框架的大小是多少?
頁面大小是多少?
頁面大小是多少?

結論: 所以我從@chill得到的答案是,在頁目錄和頁表的偏移大小爲32位,1024個條目(因此4KB),而在頁偏移是8位,4096條目(因此4KB)

+0

我絕不是這方面的專家,但我敢肯定,你對這裏測量的東西感到困惑。每個頁面的大小並不直接與每個頁面的大小相關。具有4K條目的頁表格意味着它在32位機器上的大小將爲16K,因爲它必須存儲4096個32位地址指針,其中每個_point_指向固定大小的存儲器(即頁面)中的塊, 。每個條目指向的頁面的實際大小不受此控制。如果碰巧是4K,這意味着您可以從該特定頁表中尋址16MB的內存。 – Polynomial

+0

但是如果偏移量是12位,這意味着我可以在頁表中存儲最多4096個條目?那麼對於32位地址,最大頁面大小是16KB?那是對的嗎? – SMUsamaShah

+1

不可以。請參閱寒意對他的回答的評論。 _page_中的每個條目只是一個字節,而不是四個。這導致4KB頁面(12位索引,1字節條目= 2^12 * 1 = 4096)。 _page table_中的條目在32位計算機上是4個字節,因爲它們是指向頁面的指針。由於頁表具有10位索引和4字節條目,因此頁表的大小爲2^10 * 4 = 4096字節。 – Polynomial

回答

3

因機器而異,可通過sysconf (_SC_PAGE_SIZE);獲得。

+0

對不起,我正在學習學生級別的頁面翻譯,我需要知道它是如何工作的。我看到了很多鏈接,但他們都只是搞砸了。 – SMUsamaShah

+0

@ LifeH2O,在x86上,每個字節是8位,而不是32個。 – chill

+0

是的,32位總共4bytes。頁表指向哪個地址的大小?我認爲它是32位的,所以它會使4bytes – SMUsamaShah

相關問題