作者ok8752665 ()
看板Grad-ProbAsk
標題[理工] OS Inverted Page Table的問題
時間Sat Sep 21 21:20:10 2019
想問說
為什麼這種方法可以縮減page table size
即使有多個page table其entry總數也比實體記憶體的entry少吧
我哪裡搞錯了嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.46.77.184 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1569072014.A.B23.html
推 bitetw: 如果每個process的page table會比physical memory小的話 09/21 22:19
→ bitetw: 就不用virtual memory 了吧 09/21 22:19
推 bitetw: 啊抱歉以上有誤xd 09/21 22:34
→ ok8752665: 目前上課講的是main memory 應該還跟virtual沒關係吧 09/21 22:34
→ DLHZ: page table每個process都一個 inverted的話整個系統只有一個 09/21 23:50
→ DLHZ: 所以會說inverted無法share memory 09/21 23:50
推 KaryuuIssen: Page table是Lookup table entry總數是固定的 09/22 04:18
→ KaryuuIssen: 總大小隨Process數目等比例增長 09/22 04:19
→ ok8752665: 所以 一般的page table裡面可能會有一堆空白欄位嗎 09/22 08:04
→ ok8752665: @DLHZ 你的意思是藉由去除share memory特性來降低table 09/22 09:21
→ ok8752665: 大小嗎 09/22 09:21
→ DLHZ: 原本每個process都拿一個table process一多自然table就開始 09/22 11:15
→ DLHZ: 佔空間了 如果用inverted那就是用一個table記錄哪些記憶體被 09/22 11:15
→ DLHZ: 那個process拿去 但是當然就只能記錄一個 所以就算其他proce 09/22 11:15
→ DLHZ: ss要用同樣的內容也沒辦法 只能自己再找個記憶體搬進去 09/22 11:15
→ ok8752665: 所以各個table大小是一樣的嗎 我是想說每個process的en 09/22 12:11
→ ok8752665: try都對到一個memory的frame 所以總數不會超過那張大ta 09/22 12:11
→ ok8752665: ble 09/22 12:11
→ ok8752665: are的情況下 左邊的entry小於等於右邊的entry數 09/22 13:27
→ DLHZ: 這邊不太確定 process的page table大小應該是取決於binding 09/22 13:27
→ DLHZ: 時分配的大小 給的大一點page table就要大一點 09/22 13:27
→ DLHZ: 大部分都有提到是最大的size怎麼計算但好像沒特別說到底多大 09/22 13:30
→ ok8752665: 好ㄅ 09/22 15:04
推 KaryuuIssen: 知道Virtual address是幾bit 知道Page size多大 09/22 17:28
→ KaryuuIssen: 自然就可推得Page table的entry數 09/22 17:28
→ KaryuuIssen: Page table裡面可能會有一堆無效欄位(valid bit=0) 09/22 17:29
→ KaryuuIssen: 代表Page上的資料不在記憶體中 09/22 17:30
→ ok8752665: 喔喔 忘了有些不會全部載進去了 謝謝 09/22 17:49