[理工] OS thrashing之定義!

看板Grad-ProbAsk作者 (andrew)時間7年前 (2018/12/01 00:00), 7年前編輯推噓5(5023)
留言28則, 5人參與, 7年前最新討論串1/1
關於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

12/01 00:43, 7年前 , 1F
1.在swap的過程就會bolck等待資料 2.因為剩下的frame很少
12/01 00:43, 1F

12/01 00:43, 7年前 , 2F
一個缺frame的process去搶別人的 結果被搶的也不夠frame
12/01 00:43, 2F

12/01 00:43, 7年前 , 3F
所以也要去搶別人的 如此惡性循環 3.已經沒有多的frame了
12/01 00:43, 3F

12/01 00:43, 7年前 , 4F
又加新的process進來搶情況會更嚴重。 應該是這樣 有錯
12/01 00:43, 4F

12/01 00:43, 7年前 , 5F
請指正
12/01 00:43, 5F

12/01 01:14, 7年前 , 6F
1.是 2.因為在block狀態 所以Os會判定Cpu可以做更多的工
12/01 01:14, 6F

12/01 01:14, 7年前 , 7F
作 所以引進更多的process 3.你可以再看你的敘述一次
12/01 01:14, 7F

12/01 01:14, 7年前 , 8F
裡面有矛盾點
12/01 01:14, 8F

12/01 01:18, 7年前 , 9F
不是敘述有矛盾點 是敘述跟thrashing發生的條件有矛盾
12/01 01:18, 9F

12/01 01:45, 7年前 , 10F
decoder大大,(3),可是這是假定新進的process frame
12/01 01:45, 10F

12/01 01:45, 7年前 , 11F
不夠,會page fault的前提吧?因為如果所有process都blo
12/01 01:45, 11F

12/01 01:45, 7年前 , 12F
ck,能被新進的process搶嗎?
12/01 01:45, 12F

12/01 01:46, 7年前 , 13F
q79236大大,抱歉我沒有很懂你講的矛盾點,可以在講細一
12/01 01:46, 13F

12/01 01:46, 7年前 , 14F
點嗎?
12/01 01:46, 14F

12/01 02:05, 7年前 , 15F
不是所有process被block 他們還是有在跑 是花在page faul
12/01 02:05, 15F

12/01 02:05, 7年前 , 16F
t的處理時間大於正常執行時間就叫trashing
12/01 02:05, 16F

12/01 02:17, 7年前 , 17F
process在不同時期所需要的足夠頁框數也不同 就算後來加
12/01 02:17, 17F

12/01 02:17, 7年前 , 18F
進process的frame是足夠的 執行到後面也可能需求增加而再
12/01 02:17, 18F

12/01 02:17, 7年前 , 19F
去跟別人搶frame 所以trashing會加劇 剛剛翻筆記裏面寫的
12/01 02:17, 19F

12/01 02:40, 7年前 , 20F
同意樓上,補充幾點,在thrashing 時程式還是可以跑的,
12/01 02:40, 20F

12/01 02:40, 7年前 , 21F
但就是跑的很慢,因為可以global 搶其他 process 的 fra
12/01 02:40, 21F

12/01 02:40, 7年前 , 22F
me ,加上系統本身 frame 不夠,加上互相搶奪的情況下會
12/01 02:40, 22F

12/01 02:40, 7年前 , 23F
花太多時間paging —>spend more time paging than exec
12/01 02:40, 23F

12/01 02:40, 7年前 , 24F
uting,就是thrashing 的定義
12/01 02:40, 24F

12/01 09:42, 7年前 , 25F
“那只要引進的process沒有frame不夠的問題” thrashing
12/01 09:42, 25F

12/01 09:42, 7年前 , 26F
發生的條件就是frame不足呀
12/01 09:42, 26F

12/01 12:45, 7年前 , 27F
哦!謝謝…有比較清楚了!
12/01 12:45, 27F

12/01 17:23, 7年前 , 28F
因為IO很慢 非常慢 超級慢
12/01 17:23, 28F
文章代碼(AID): #1S0LwYIp (Grad-ProbAsk)