看板 Grad-ProbAsk 關於我們 聯絡資訊
版上找不到,來跟各位大大討論一下 題目 https://i.imgur.com/RW8AdC9.jpg A. 即使有無限大的swap space process量太多時仍然要常常swap in 因此提升process亦會thrashing B. (半猜不太會) 若有priority更高的process一直進到ready queue thrashing process就會一直沒辦法執行 C. 這題應該就是解釋WSS的運作原理了 D. 不太懂題目想問什麼 有沒有大大願意提供想法 E. (這題也半猜不太會) 不同的VM是在不同的kernel thread底下 所以其他VM並不會受到影響 小弟硬體真的是罩門 麻煩各位大大解解惑了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.166.128 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1515778063.A.DFD.html ※ 編輯: kai3570 (114.137.166.128), 01/13/2018 01:28:46
PunchShadow: A. 恐龍本的定義是當Multiple-degree增加到一定時,C01/13 10:00
PunchShadow: PU的利用度會突然下降,造成Thrashing01/13 10:00
PunchShadow: B. 我的想法也是不會,再不減少degree的情況下,當一01/13 10:27
PunchShadow: 個程式完成時,系統會再分配一個新的程式去執行,造01/13 10:27
PunchShadow: 成thrashing的process還是thrashing01/13 10:27
PunchShadow: D的話我覺得是沒辦法完全,因為work set model是一01/13 10:31
PunchShadow: 個估價locality的近似方法,如果windows的大小取不適01/13 10:31
PunchShadow: 當仍然會出現thrashing01/13 10:31
PunchShadow: E. 我的想法跟你一樣,不同VM間應該要是互不影響的,01/13 10:33
PunchShadow: 不過這點不太確定01/13 10:33
PunchShadow: 不過如果VM是架在OS上,那kernel thread應該是共用01/13 10:35
PunchShadow: 的吧?這點還要再跟各位請教一下01/13 10:35
先感謝P大回應 E 我也有想過這個問題 不過我不確定不同的VM是不是都用同一個kernel thread 如果是用不同的kernel thread不知道會不會有不一樣的結果? ※ 編輯: kai3570 (114.137.166.128), 01/13/2018 11:51:57
PunchShadow: 我是想說如果是SMP,而且kernel thread的數量足夠01/13 14:43
PunchShadow: VMM可能可以將不同的kernel thread分配到不同VM上 01/13 14:43
PunchShadow: 這是小弟的淺見,還需要在求證 01/13 14:45
nat99up: E. VM之間共用硬體資源 有人thrashing有可能吃掉bus band 01/13 15:46
nat99up: width 01/13 15:46
PunchShadow: bus bandwidth 可能被吃掉沒錯 不過硬體資源的分配 01/13 16:05
PunchShadow: 不是也可以由VMM分配管理嗎? 01/13 16:05
kai3570: https://goo.gl/QaJcEx 01/13 18:57
kai3570: 上面網址那本書有討論到"VMM will swap out a VM to avoi 01/13 18:59
kai3570: d thrashing" 01/13 18:59
kai3570: VMM會確保不同的VM互相獨立 01/13 19:00
kai3570: 所以其他VM應該是不會受影響的 01/13 19:02
aggress5566: 如果我沒誤會A的意思 那他的意思是說某一個process 01/13 20:10
aggress5566: 要怎麼thrashing 因為unlimited swap space 我之前01/13 20:10
aggress5566: 好像寫過類似的作業 大概的做法是 讓Process去一直f01/13 20:10
aggress5566: ork要記憶體 然後讓child用exception之類的讓他變zo01/13 20:10
aggress5566: mbie 只要Process不結束就不會收回來 所以看起來第01/13 20:10
aggress5566: 二題可能就是第一題的延伸01/13 20:10
如果只是讓child變zombie而不執行的話 child佔用的記憶體空間應該都會放在swap space 因為不會執行,所以CPU也不需要將child佔有的記憶體區塊swap in memory 所以應該不會有thrashing吧? 還是我的想法有錯呢? 謝謝大大回覆 ※ 編輯: kai3570 (114.137.166.128), 01/13/2018 22:52:01
aggress5566: 正確沒有錯 但目的不是把叫CPU把child的區塊swap in 01/14 00:16
aggress5566: 無聊去跑了一下 光是一個Process一直 malloc 400MB 01/14 00:55
aggress5566: 讀寫到seg. fault Swap Space多了1G多 01/14 00:56
不太懂大大的意思 我認知的thrashing現象: 欲使用的data從VM搬進physical memory時,有些data會被swap out。 而這些被swap out的data馬上要被使用又被swap in。 這樣反覆進行的現象稱為thrashing 但是如果是zombie的話不會備CPU需要,所以也不必要swap in physical memory 因此A大的作法的話是不會產生thrashing現象的 是大大想告訴我什麼然後我沒理解到 還是是在講B小題 QQ
TWkobe: 覺得A只要把memory縮小 一直page fault就可以01/14 08:43
了解,這樣的作法感覺跟增加process數量差不多 感謝回應 ^^ ※ 編輯: kai3570 (140.115.152.9), 01/14/2018 13:03:08
aggress5566: 好像有點什麼誤會XD 題目說要讓一個process thrashi01/14 21:49
aggress5566: ng 那麼我們所知道的thrashing是multiprogramming01/14 21:49
aggress5566: 所造成的 是站在System觀點 那我理解的題意就是 要 01/14 21:49
aggress5566: 怎麼讓一個process 一直在swap 我想到的做法是把記 01/14 21:49
aggress5566: 憶體用滿 然後繼續讀寫 這樣勢必會有victim page被s 01/14 21:49
aggress5566: wap out 至於要不要swap in swap out才算thrashing01/14 21:49
aggress5566: 我覺得就見仁見智了 至於為何要用zombie只是想說把01/14 21:49
aggress5566: 可以用的swap space盡可能壓到001/14 21:49
哦哦哦 瞭解你的意思了 謝謝大大講得這麼詳細 XD ※ 編輯: kai3570 (114.137.166.128), 01/15/2018 16:29:44