2013-07-15 100 views
4

下面是問題:確定給定地址的頁碼和偏移量

考慮具有32位邏輯地址和4KB頁面大小的計算機系統。該系統支持高達512MB的物理內存。

傳統單層頁面表中有多少條目?

Conventional single-level page table: 2^32/2^12 (4000) = 2^20 = 1,048,576 

爲什麼我必須要divide 2^32/2^12才能得到答案?

倒頁表中有多少條目?

倒置的頁面表需要的內存中有頁面框架的條目數量儘可能多。

Inverted page table: 2^29 (512mb)/ 2^12 (4000) = 2^17 = 131,072 

我爲什麼要做512MB的頁面大小劃分來獲得倒置頁表項?

哪些頁號和偏移以下地址引用:1)30000,B)256,c)中0xbcf034

一個)30000以十六進制:x7530 頁#:X7 = 7 偏移:X530以十六進制X100 = 1328

b)中256 頁#:X0 = 0 偏移:X100 = 256

c)中0xbcf034 頁碼:xbcf = 3023 偏移:x034 = 22

如何根據給定的十六進制地址找出這些頁碼?那我該如何計算抵消?

我知道答案,但我想了解爲什麼和如何。有人可以請詳細解釋一下嗎? :)。謝謝。

+0

在倒排頁表中,所有框架都不是頁面映射的。因此,倒排頁表中的條目由FRAMES的總數組成,這就是你正在計算的內容。 – Sanketssj5

回答

0

2^12 => 4096 2^32/2^12 => 2^32/4096 =>有多少4K頁面=>我們需要多少頁表項。

物理頁面表的相似計算,即我們需要多少頁表項作爲反轉頁表。

有了上面的提示,給這個問題一個鏡頭,讓我們知道你想出了什麼。一旦你在操作系統課程中學到更多東西,你會發現每個頁面表設計都有優點和缺點。

+0

爲什麼你需要知道倒頁表的物理頁表項? PS - thx – user2562409

+0

爲此,您需要研究倒置頁面表上的一些理論......一個快速的答案是倒置的頁面大小與系統中物理頁面的數量成正比。正常(或邏輯)頁表的大小是針對整個虛擬地址空間的,即根據進程中虛擬頁面的數量來確定。即反轉頁面表:一個物理頁面的一個條目;邏輯或虛擬頁面表:一個虛擬頁面的條目。希望能幫助到你。 – lsk

0

指定頁面大小和地址的引用:要計算頁碼和偏移
最好的辦法,
假設,是1KB和地址引用頁面大小爲256


Page number = (address reference/page size) = 256/1024 = 0 

Offset = (address reference % page size) = (256 % 2014) = 256 


應用相同的程序fo r地址引用的其餘部分。

1

爲什麼我必須除以2^32/2^12才能得到答案?

2^32 ==>總虛擬內存的大小

4KB = 2^12 ==>單頁的大小

2^32/2^12 = 2^20 == >的虛擬內存的頁面總數

所以頁表將是具有2^20 = 1M條目

在倒置頁表中有多少項有哪些?

2^29 = 512 ==>總物理存儲器

2^12 =頁面大小=幀大小

2 ^2分之29^ 12 = 2^17 ==>總數物理存儲器中的幀的

所以倒頁表將具有2^17 = 128K條目

該圖可清除剩餘的疑惑:

enter image description here

0

因爲頁大小=幀大小= 2^12 數倒頁表條目=沒有幀的 所以我們計算沒有幀的