[理工] OS thrashing之定義!

作者: Aa841018 (andrew)   2018-12-01 00:00:31
關於thrashing 的流程有些不懂:
因為有個process frame不夠,page fault,所以不是swap out就是swap in 都在做I/O,
因此process等待I/O完成,而被block,然後ready queue中的process一個個進入runing
,然後A搶B B搶C一個個都page fault,一個個被block.....
然後我有幾個問題
1.只要遇到page fault一定要做I/O那是代表一定會被block的意思嗎?
2.很怪!真的缺少frame的只有一個process,因為他去搶別人的,所以才會造成別人的pa
ge fault,但他一搶,自己不就沒事了?那就算搶來搶去,真正有page fault應該也只有
一個process吧?怎麼會造成每個process都page fault?
3.為何在thrashing時引進更多process會更慘?當process都block時,沒人在running,
那只要引進的process沒有frame不夠的問題,應該就可以正確執行吧??
抱歉問題有點多……
作者: decoder (解碼器)   2018-12-01 00:43:00
1.在swap的過程就會bolck等待資料 2.因為剩下的frame很少一個缺frame的process去搶別人的 結果被搶的也不夠frame所以也要去搶別人的 如此惡性循環 3.已經沒有多的frame了又加新的process進來搶情況會更嚴重。 應該是這樣 有錯請指正
作者: q79236 (昕翔)   2018-12-01 01:14:00
1.是 2.因為在block狀態 所以Os會判定Cpu可以做更多的工作 所以引進更多的process 3.你可以再看你的敘述一次裡面有矛盾點不是敘述有矛盾點 是敘述跟thrashing發生的條件有矛盾
作者: Aa841018 (andrew)   2018-12-01 01:45:00
decoder大大,(3),可是這是假定新進的process frame不夠,會page fault的前提吧?因為如果所有process都block,能被新進的process搶嗎?q79236大大,抱歉我沒有很懂你講的矛盾點,可以在講細一點嗎?
作者: decoder (解碼器)   2018-12-01 02:05:00
不是所有process被block 他們還是有在跑 是花在page fault的處理時間大於正常執行時間就叫trashingprocess在不同時期所需要的足夠頁框數也不同 就算後來加進process的frame是足夠的 執行到後面也可能需求增加而再去跟別人搶frame 所以trashing會加劇 剛剛翻筆記裏面寫的
作者: eggy1018 (羅密歐與豬過夜)   2018-12-01 02:40:00
同意樓上,補充幾點,在thrashing 時程式還是可以跑的,但就是跑的很慢,因為可以global 搶其他 process 的 frame ,加上系統本身 frame 不夠,加上互相搶奪的情況下會花太多時間paging —>spend more time paging than executing,就是thrashing 的定義
作者: q79236 (昕翔)   2018-12-01 09:42:00
“那只要引進的process沒有frame不夠的問題” thrashing發生的條件就是frame不足呀
作者: Aa841018 (andrew)   2018-12-01 12:45:00
哦!謝謝…有比較清楚了!
作者: EXPCDR (EXPCDR)   2018-12-01 17:23:00
因為IO很慢 非常慢 超級慢

Links booklink

Contact Us: admin [ a t ] ucptt.com