[理工] 100 交大 作業系統

作者: TampaBayRays (光芒今年拿冠軍)   2017-12-04 23:12:37
https://i.imgur.com/Y2MGL4M.jpg
想請問這題,雖然他frame不夠,一直page fault,可是他有thrashing嗎?他page fault不是因為他還沒用到後面的資料嗎?多給他幾個frame會改善?
https://i.imgur.com/yvJ87wC.jpg
另外想請問這題答案是不是怪怪的啊?C是對的嗎?他的effective memory access time比一次讀取memory的時間還短欸....便條紙是我算的
最後想請問這年是不是考的有點偏門啊?
怎麼有很多沒看過的東西QQ
作者: clonsey1314 (Clonsey)   2017-12-05 00:56:00
C應該是你對
作者: aggress5566 (哩賀)   2017-12-05 01:05:00
跟thrashing有什麼關係@@
作者: TampaBayRays (光芒今年拿冠軍)   2017-12-05 07:47:00
從<30跟答案看起來,他是想考thrashing,可是我覺得沒有啊感謝C大~
作者: clonsey1314 (Clonsey)   2017-12-05 11:54:00
不一定是thrashing啊,如果系統process數變多,這樣一個process分到的frame就變少,就更容易page fault, CPU利用度就可能會變低(e) process配置更多frame, 些許"後面會用到的frame"就會更多被先載到memory裡, page fault次數就會變少
作者: TampaBayRays (光芒今年拿冠軍)   2017-12-05 12:17:00
請問:1.如果再加入process進來,新的process發生page fault的話,應該是lru把舊的array資料swap out,這些資料可能已經不會再用到了,所以CPU utilization感覺不一定會下降吧?2.為什麼給他們多一點frame會讓他們把之後可能用到的frame swap in ? Prepaging嗎?感謝~
作者: clonsey1314 (Clonsey)   2017-12-05 13:01:00
1. CPU utilization下降是因為 每發生一次page fault就會stall數百萬個cycles, 若page fault更常發生,就會再stall更多cycles, cpu utilization就會又更低2. 以process A為例, processA共有10個frames,若配置給它5個frames, 這樣至少要swap 5次,但若配置給它8個frames, 就可能至少swap 2次就好。
作者: TampaBayRays (光芒今年拿冠軍)   2017-12-05 14:00:00
請問不是都是9次page fault嗎?所以frame數影響的是swap out的次數? 那如果我用page buffering不就可以解決了?
作者: clonsey1314 (Clonsey)   2017-12-05 17:34:00
如果用prepaging的話,以process A為例,如果猜的夠準,最好的情況,一開始載入memory的為a[0...99], a[100...199], ..., a[400...499]共5個frames, 前面5個frame在執行for loop時都會hit, 會發生page fault的只有後面5個frames; 如果一開始memory裡載入8個frames且這8個frames都被for loop reference到,則page fault只會發生在剩下的兩個frames。"一般而言"置換policy都不會"太不準"。跟page buffering無關
作者: TampaBayRays (光芒今年拿冠軍)   2017-12-05 18:13:00
如果用prepaging的話好像是這樣沒錯,那如果我假設是pure demand paging的話,不是lazy swap嗎?這樣好像就沒差了?
作者: aggress5566 (哩賀)   2017-12-05 19:25:00
是這樣沒錯啊 但如果現在情況是分給A 10個 B 20個那情況是不是又不一樣了 我覺得如果出在非選就寫清楚你的假設 如果選擇就選適當或選的出來的答案吧
作者: TampaBayRays (光芒今年拿冠軍)   2017-12-05 19:29:00
說的也是,也只能這樣了XD感謝願意和我討論的各位大大!

Links booklink

Contact Us: admin [ a t ] ucptt.com