先謝謝您幫忙解答
根據洪兔題庫
(1) 2^28 * 35 bits
他的 35 是用 32+3 算出來的,可是我覺得應該是 20+3 吧
所以第一題我跟你想的一樣,我會寫 2^28 * 23 bits
(2)
1. 此程式占 16 MB / 4096 B = 2^12 pages
2. virtual addr space長這樣 : 12 + 16 + 12 bit
3. 一個 page table entry 占 32 bits
level 1 僅占一個 entry = 32+1 bits
level 2 有 2^12 個 entry = 2^12 * 32 bits
total = 33 bits + 2^15 Bytes
第二小題我不懂的地方在於
一個 page table entry 應該占 20 bits 吧?
還有 level 2 應該是 2^16 個 entry 吧
所以如果是我,我會寫 21 bits + 2^16 * 20 bits
不過這樣的話,題目的
for a running process allocated three contiguous 16 MB memory blocks
這句就沒用到了
不管怎麼樣還是不太懂第二小題阿 @_@"
※ 引述《gensim (...)》之銘言:
: ※ 引述《nowar100 (拋磚引玉)》之銘言:
: : 計算page table的東西
: : http://www.lib.ntust.edu.tw/tpaper/pdf/m950903.pdf
: : 想問第六題要怎麼解
: : 謝謝
: a) Block size = 4096 byte = 2^12 byte
: => offset bit = 12
: virtual page number bit = 40-12 = 28
: physical page number bit = 32-12 = 20
: the size of a page table = (2^28)*(20+3) = (2^28)*23 bit
: b) 使用2 level page table
: => virtual address 變為 p1=12bit p2=16bit offset=12bit
: 16MB/(2^12) = 2^12 Blocks
: 2^12<2^16 第一層的一個entry可以對映一個16MB
: 所以16MB需要第2層配置 2^12*(28+1) = (2^12)*29 bit
: 需要3塊16MB的記憶體 所以第1層配置 3*16 = 48 bit
: 不知道對不對 麻煩會的人更正一下吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.93.39