[問題] 作業系統分頁法問題

看板Grad-ProbAsk作者 (烏龜回娘家)時間16年前 (2009/05/20 12:52), 編輯推噓1(1022)
留言23則, 3人參與, 最新討論串1/1
設有一台電腦,邏輯位址(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

05/20 13:20, , 1F
我算n=6,老群你確定一下 XD
05/20 13:20, 1F

05/20 15:04, , 2F
這題答案是 n mod 4 =2 所以你算的應該是對的
05/20 15:04, 2F

05/20 15:04, , 3F
請問一下,該如何算呢?
05/20 15:04, 3F

05/20 18:46, , 4F
ok首先"每頁大小為4K"指的應該是每個分頁表的大小
05/20 18:46, 4F

05/20 18:46, , 5F
不然算不出來
05/20 18:46, 5F

05/20 18:47, , 6F
接著將32bit分為 level1+level2+offset
05/20 18:47, 6F

05/20 18:47, , 7F
level1和level2的bit數由4K=2^12可得各為12bit
05/20 18:47, 7F

05/20 18:48, , 8F
所以offset為 32-12-12=8bit
05/20 18:48, 8F

05/20 18:48, , 9F
也就是每個page的容量為2^8
05/20 18:48, 9F

05/20 18:49, , 10F
那5M的話,5M=5*2^20,除以2^8,可得需要5*2^12個page
05/20 18:49, 10F

05/20 18:50, , 11F
才能裝完整個程式
05/20 18:50, 11F

05/20 18:51, , 12F
所以需要5個level2 的分頁表,外加1個level1的分頁表
05/20 18:51, 12F

05/20 18:51, , 13F
故n=6
05/20 18:51, 13F

05/20 18:51, , 14F
即可求得n mod 4為多少
05/20 18:51, 14F

05/20 19:13, , 15F
蔡高手 你把我當招換獸嗎= =
05/20 19:13, 15F

05/20 21:26, , 16F
方便的咧~ 應該是這樣:就決定是你了!老群! (丟寶貝球)
05/20 21:26, 16F

05/20 22:35, , 17F
請問~ 5*2^12個page,為何需要5個Level2的分頁表
05/20 22:35, 17F

05/20 22:36, , 18F
外加1個Level1的分頁表呢?
05/20 22:36, 18F

05/21 10:59, , 19F
......你應該去讀二階分頁的定義
05/21 10:59, 19F

05/21 14:33, , 20F
讀不懂再問一下
05/21 14:33, 20F

05/21 14:33, , 21F
XD
05/21 14:33, 21F

05/21 18:11, , 22F
我查網路試試~我的兩本書這個部份都沒寫XD
05/21 18:11, 22F

05/26 00:11, , 23F
好的
05/26 00:11, 23F
文章代碼(AID): #1A4uoF-P (Grad-ProbAsk)