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