[理工] OS 2level page table

看板Grad-ProbAsk作者 (Ellison)時間13年前 (2013/02/17 15:54), 編輯推噓8(8037)
留言45則, 7人參與, 最新討論串1/1
logical address space : 32-bit page table size : 4KB Assume two-level paging level-1 : 10-bit level-2 : 10-bit page offset : 12-bit page table entry : 4B (each) 假設有一個40MB的process,利用此種 方法配置 最少需要多少memory space才可以儲 存所有page table? 請問有高手能幫我解答這題嗎@@ 看解答有點混亂.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.80.18.32

02/17 16:18, , 1F
40MB/4KB = 10240,所以此process會有10240個pages
02/17 16:18, 1F

02/17 16:18, , 2F
這麼多的pages,想必無法用連續空間配置
02/17 16:18, 2F

02/17 16:19, , 3F
所以採用2level paging
02/17 16:19, 3F

02/17 16:20, , 4F
然後由level-1:10 bit得知 level-1 PT最多可以記錄
02/17 16:20, 4F

02/17 16:21, , 5F
2^10=1024個 pages
02/17 16:21, 5F

02/17 16:22, , 6F
然後由level-2:10 bit得知 level-2 PT最多可以記錄
02/17 16:22, 6F

02/17 16:22, , 7F
2^10=1024個 pages
02/17 16:22, 7F

02/17 16:23, , 8F
所以10240個pages 需要10240/1024 = 10個 level-2 PT
02/17 16:23, 8F

02/17 16:24, , 9F
而這10個level-2 PT 需要1個level-1 PT記錄它們
02/17 16:24, 9F

02/17 16:25, , 10F
所以所有的"PT"在記憶體就佔了11個frames
02/17 16:25, 10F

02/17 16:25, , 11F
一個frame和一個page大小是一樣的=2^12=4KB
02/17 16:25, 11F

02/17 16:26, , 12F
所以需要11*4KB=44KB的memory space
02/17 16:26, 12F

02/17 16:28, , 13F
這樣應該跟答案一樣吧 XD
02/17 16:28, 13F

02/17 17:42, , 14F
先算process要多少2-level table,再算這些2-level要多少one-
02/17 17:42, 14F

02/17 17:42, , 15F
level來point,
02/17 17:42, 15F

02/17 18:35, , 16F
謝謝兩位!! :)
02/17 18:35, 16F

02/17 19:37, , 17F
不懂 為什麼不是 11*4 B = 44 byte?
02/17 19:37, 17F

02/17 19:38, , 18F
存一個地址 不是用到一個frame去存 而是用一個entry吧
02/17 19:38, 18F

02/17 20:26, , 19F
因為一個PT在frame裡面 不管你是只用了一個entry
02/17 20:26, 19F

02/17 20:27, , 20F
還是用了所有的entries 它就是佔用了一個frame
02/17 20:27, 20F

02/17 20:28, , 21F
而且一直以來考古題碰到這樣的題目都是這樣解的
02/17 20:28, 21F

02/17 20:54, , 22F
K大是對的 板上lexa問過一樣的問題 可搜尋看看解答
02/17 20:54, 22F

02/17 20:59, , 23F
同樣題目那篇?
02/17 20:59, 23F

02/17 21:00, , 24F
它答案也是求44KB
02/17 21:00, 24F

02/17 21:00, , 25F
2^10 * 4B + 10 * 2^10 * 4B = 44K這個的意思
02/17 21:00, 25F

02/17 21:01, , 26F
不是跟1*4KB+10*4KB的意思一樣嗎?
02/17 21:01, 26F

02/17 21:03, , 27F
另外它推文我不清楚它的意思 level-2 PT確實是只有10個
02/17 21:03, 27F

02/17 21:04, , 28F
1024個應該是一個level-2 PT有1024個entries才對
02/17 21:04, 28F

02/17 21:05, , 29F
這樣算式採"去計算總共有幾個entries 一個entry 4B"
02/17 21:05, 29F

02/17 21:05, , 30F
才搭得起來
02/17 21:05, 30F

02/17 21:08, , 31F
總之就是兩個想法 兩個公式 答案應都要一樣
02/17 21:08, 31F

02/17 21:20, , 32F
不好意思我還有個疑問是,為什麼40MB
02/17 21:20, 32F

02/17 21:21, , 33F
除以PT size 4KB,而不是Page size 4Byte?
02/17 21:21, 33F

02/17 21:22, , 34F
如果要算40MB佔多少page,不是除以每個page的size嗎?
02/17 21:22, 34F

02/17 21:22, , 35F
4B是 "Page Table entry"的大小 不是一個Page的大小
02/17 21:22, 35F

02/17 21:23, , 36F
另外4KB和一個Page的大小相等是不謀而合的
02/17 21:23, 36F

02/17 21:23, , 37F
一個Page的大小=4KB也可以從offset=12 bit得知
02/17 21:23, 37F

02/17 21:24, , 38F
每個page size是4KB啊 offset 12bits->4KB
02/17 21:24, 38F

02/17 21:24, , 39F
我會說不謀而合 是因為multilevel paging的技術
02/17 21:24, 39F

02/17 21:24, , 40F
就是讓某些frame內 只放Page Table
02/17 21:24, 40F

02/17 21:25, , 41F
所以整塊PT的大小 = frame的大小 = page的大小
02/17 21:25, 41F

02/17 21:29, , 42F
可是應該是要除以PAGE大小~不是PAGE TABLE大小吧?
02/17 21:29, 42F

02/17 21:29, , 43F
對吼!!!@@...感謝大家不吝教導T__T
02/17 21:29, 43F

02/17 21:31, , 44F
樓樓上 沒錯 不過在這裡這兩個東西相等罷了
02/17 21:31, 44F

02/18 15:27, , 45F
我看錯題目意思了= = 我這樣11個頁面存不到全部
02/18 15:27, 45F
文章代碼(AID): #1H88ojKs (Grad-ProbAsk)