作者liataian (柴油)
看板Grad-ProbAsk
標題[理工] [OS] Page table中加上Dirty bit之後?
時間Sat Sep 3 00:06:36 2011
板友好~
想請教一下page replacement那部分 有個小問題
以下為恐龍敘述
當page fault發生但是無free frame使用的時候
OS必須執行page replacement選出victim page將它swap out回Disk
然後再把missed page swap in到Physical memory
這段過程比起直接有free frame可用會多一次swap out回Disk之I/O運作
所以為了降低此額外之I/O運作
可以在page table中加上modify bit(dirty bit)
到這邊我都還看得懂
可是恐龍後面敘述加上dirty bit確實可以降低額外I/O運作那邊我就看不懂了
恐龍說dirty bit=0的victim page(沒有被修改過的victim page)不用被swap out
如此可以降低額外I/O運作
請問究竟是為什麼呢? 看不大懂為什麼這樣可以降低額外I/O運作@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.0.214.44
→ qqoil:dirty bit=0 表該page未曾被修改過 也就是說該page內容跟 09/03 00:10
→ qqoil:在disk中的copy一樣 所以就不需寫回disk 直接覆寫即可 09/03 00:12
→ liataian:意思是說 面對dirty bit=0的victim page 當要從Disk把 09/03 00:17
→ liataian:missed page載入Physical memory可以直接覆蓋它 不用將它 09/03 00:17
→ liataian:因為它的內容跟原本它在Disk內的內容還是一樣 所以不用 09/03 00:18
→ liataian:swap out它也沒關係 是這樣沒錯吧^^? 09/03 00:18
推 jackbll:如果dirty bit=1資料被更新過,須寫回disk(讀寫各一次,I/O 09/03 19:27
→ jackbll:突然發現有人回答了XD 09/03 19:28