看板 Grad-ProbAsk 關於我們 聯絡資訊
設有一台電腦,邏輯位址(logical address)為32 bit,所使用的虛擬記憶體(virtual Memory)分頁法(paging)為二階分頁(two-level paging),如果每頁的大小為4K,求如果 有一個程式5M,假設所需要的分頁表(page tables)有n個,求n mod 4為? 請高手解答~感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.71.68.193
icrts:我算n=6,老群你確定一下 XD 05/20 13:20
ysbh:這題答案是 n mod 4 =2 所以你算的應該是對的 05/20 15:04
ysbh:請問一下,該如何算呢? 05/20 15:04
icrts:ok首先"每頁大小為4K"指的應該是每個分頁表的大小 05/20 18:46
icrts:不然算不出來 05/20 18:46
icrts:接著將32bit分為 level1+level2+offset 05/20 18:47
icrts:level1和level2的bit數由4K=2^12可得各為12bit 05/20 18:47
icrts:所以offset為 32-12-12=8bit 05/20 18:48
icrts:也就是每個page的容量為2^8 05/20 18:48
icrts:那5M的話,5M=5*2^20,除以2^8,可得需要5*2^12個page 05/20 18:49
icrts:才能裝完整個程式 05/20 18:50
icrts:所以需要5個level2 的分頁表,外加1個level1的分頁表 05/20 18:51
icrts:故n=6 05/20 18:51
icrts:即可求得n mod 4為多少 05/20 18:51
whisp1222:蔡高手 你把我當招換獸嗎= = 05/20 19:13
icrts:方便的咧~ 應該是這樣:就決定是你了!老群! (丟寶貝球) 05/20 21:26
ysbh:請問~ 5*2^12個page,為何需要5個Level2的分頁表 05/20 22:35
ysbh:外加1個Level1的分頁表呢? 05/20 22:36
icrts:......你應該去讀二階分頁的定義 05/21 10:59
icrts:讀不懂再問一下 05/21 14:33
icrts:XD 05/21 14:33
ysbh:我查網路試試~我的兩本書這個部份都沒寫XD 05/21 18:11
icrts:好的 05/26 00:11