作者ysbh (烏龜回娘家)
看板Grad-ProbAsk
標題[問題] 作業系統分頁法問題
時間Wed May 20 12:52:30 2009
設有一台電腦,邏輯位址(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
1F:→ icrts:我算n=6,老群你確定一下 XD 05/20 13:20
2F:→ ysbh:這題答案是 n mod 4 =2 所以你算的應該是對的 05/20 15:04
3F:→ ysbh:請問一下,該如何算呢? 05/20 15:04
4F:→ icrts:ok首先"每頁大小為4K"指的應該是每個分頁表的大小 05/20 18:46
5F:→ icrts:不然算不出來 05/20 18:46
6F:→ icrts:接著將32bit分為 level1+level2+offset 05/20 18:47
7F:→ icrts:level1和level2的bit數由4K=2^12可得各為12bit 05/20 18:47
8F:→ icrts:所以offset為 32-12-12=8bit 05/20 18:48
9F:→ icrts:也就是每個page的容量為2^8 05/20 18:48
10F:→ icrts:那5M的話,5M=5*2^20,除以2^8,可得需要5*2^12個page 05/20 18:49
11F:→ icrts:才能裝完整個程式 05/20 18:50
12F:→ icrts:所以需要5個level2 的分頁表,外加1個level1的分頁表 05/20 18:51
13F:→ icrts:故n=6 05/20 18:51
14F:→ icrts:即可求得n mod 4為多少 05/20 18:51
15F:推 whisp1222:蔡高手 你把我當招換獸嗎= = 05/20 19:13
16F:→ icrts:方便的咧~ 應該是這樣:就決定是你了!老群! (丟寶貝球) 05/20 21:26
17F:→ ysbh:請問~ 5*2^12個page,為何需要5個Level2的分頁表 05/20 22:35
18F:→ ysbh:外加1個Level1的分頁表呢? 05/20 22:36
19F:→ icrts:......你應該去讀二階分頁的定義 05/21 10:59
20F:→ icrts:讀不懂再問一下 05/21 14:33
21F:→ icrts:XD 05/21 14:33
22F:→ ysbh:我查網路試試~我的兩本書這個部份都沒寫XD 05/21 18:11
23F:→ icrts:好的 05/26 00:11