看板 Grad-ProbAsk 關於我們 聯絡資訊
關於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不夠的問題,應該就可以正確執行吧?? 抱歉問題有點多…… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.30.43 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1543593634.A.4B3.html ※ 編輯: Aa841018 (39.12.30.43), 12/01/2018 00:10:55
decoder: 1.在swap的過程就會bolck等待資料 2.因為剩下的frame很少 12/01 00:43
decoder: 一個缺frame的process去搶別人的 結果被搶的也不夠frame 12/01 00:43
decoder: 所以也要去搶別人的 如此惡性循環 3.已經沒有多的frame了 12/01 00:43
decoder: 又加新的process進來搶情況會更嚴重。 應該是這樣 有錯 12/01 00:43
decoder: 請指正 12/01 00:43
q79236: 1.是 2.因為在block狀態 所以Os會判定Cpu可以做更多的工 12/01 01:14
q79236: 作 所以引進更多的process 3.你可以再看你的敘述一次 12/01 01:14
q79236: 裡面有矛盾點 12/01 01:14
q79236: 不是敘述有矛盾點 是敘述跟thrashing發生的條件有矛盾 12/01 01:18
Aa841018: decoder大大,(3),可是這是假定新進的process frame 12/01 01:45
Aa841018: 不夠,會page fault的前提吧?因為如果所有process都blo 12/01 01:45
Aa841018: ck,能被新進的process搶嗎? 12/01 01:45
Aa841018: q79236大大,抱歉我沒有很懂你講的矛盾點,可以在講細一 12/01 01:46
Aa841018: 點嗎? 12/01 01:46
decoder: 不是所有process被block 他們還是有在跑 是花在page faul 12/01 02:05
decoder: t的處理時間大於正常執行時間就叫trashing 12/01 02:05
decoder: process在不同時期所需要的足夠頁框數也不同 就算後來加 12/01 02:17
decoder: 進process的frame是足夠的 執行到後面也可能需求增加而再 12/01 02:17
decoder: 去跟別人搶frame 所以trashing會加劇 剛剛翻筆記裏面寫的 12/01 02:17
eggy1018: 同意樓上,補充幾點,在thrashing 時程式還是可以跑的, 12/01 02:40
eggy1018: 但就是跑的很慢,因為可以global 搶其他 process 的 fra 12/01 02:40
eggy1018: me ,加上系統本身 frame 不夠,加上互相搶奪的情況下會 12/01 02:40
eggy1018: 花太多時間paging —>spend more time paging than exec 12/01 02:40
eggy1018: uting,就是thrashing 的定義 12/01 02:40
q79236: “那只要引進的process沒有frame不夠的問題” thrashing 12/01 09:42
q79236: 發生的條件就是frame不足呀 12/01 09:42
Aa841018: 哦!謝謝…有比較清楚了! 12/01 12:45
EXPCDR: 因為IO很慢 非常慢 超級慢 12/01 17:23