→ ken52011219: 這題應該是OS 恐龍本的習題 11/16 00:01
→ ken52011219: A. 可以使該 Process 跑複數次 11/16 00:03
→ ken52011219: B. 優勢: 不用變換Scheduler Algorithem 就可以保證 11/16 00:05
推 kyuudonut: 可以讓它pritority較高的意味 獲得的時間會相對比較多 11/16 00:05
→ ken52011219: 藉由複數的pointer 來完成以下兩項事情 11/16 00:06
→ ken52011219: 1. 重要的Process可以藉由多次的running來完成 11/16 00:07
→ ken52011219: 2.避免Low-priority 的process被餓死 11/16 00:07
→ ken52011219: 劣勢: Context Switch 變更多 11/16 00:08
→ ken52011219: C. 允許 quantum time 依情況不同而改變 11/16 00:10
→ ken52011219: 關於題目 它是指 Ready Queue 中 你可以把它想像成 11/16 00:13
→ ken52011219: 「Link list」別想像成 Array , 我在每個Process 11/16 00:14
→ ken52011219: 某個Process 旁邊接了複數個 Link 指向自己 11/16 00:15
→ ken52011219: Dispatcher依照順序,Process 會持續重複的被select 11/16 00:16
→ ken52011219: 這個功用目的 優劣是為何 11/16 00:16
→ ken52011219: context switch會增加 是因為每次 time quantum到了 11/16 00:24
→ ken52011219: 之後 time interrupt被觸發 dispatcher會先將原proce 11/16 00:24
→ ken52011219: ss的 資料傳回 在載入下一個PCB 不管前後process是否 11/16 00:24
→ ken52011219: 是一樣的 11/16 00:24
推 windwaker112: 他怎麼避免low-priority process 餓死,是指原本R 11/16 10:47
→ windwaker112: R本身的功能嗎? 11/16 10:47
→ ken52011219: 我的理解是 因為 RR 是平均給予process time quantum 11/16 10:52
→ aa06697: 時間到就會換~大家一定都輪得到 11/16 10:53
→ ken52011219: 若要避免Low-priority process starvation 只要在該 11/16 10:54
→ ken52011219: 輪中給它加入pointer 就可避免 11/16 10:55
→ windwaker112: 我的誘惑是避免飢餓不是本身rr就有的特性嗎?這樣 11/16 11:16
→ windwaker112: 算是這個做法的"優點"嗎? 11/16 11:16
→ windwaker112: 這個做法會讓原本平衡的time sharing不公平不是有 11/16 11:37
→ windwaker112: 機會造成飢餓,反而是劣勢@@? 11/16 11:37
→ ken52011219: RR算是FCFS 藉著time quantum 來preemptive 依然有 11/16 11:46
→ ken52011219: 可能starvation 11/16 11:46
→ ken52011219: 雖然照你說好像真的哪裡怪怪的 QQ 11/16 11:49
→ ken52011219: 剛剛看洪逸筆記真的如wind大所說的 11/16 11:57
→ windwaker112: 沒關係我們一起QQ,OS簡直天坑 11/16 12:02
→ ken52011219: 我是這麼猜想的 洪逸說的公平和避免飢餓是在Process 11/16 12:12
→ ken52011219: 完成時間並無限制的情況下,可以達到該效果 11/16 12:13
→ ken52011219: 而實際上各 Process 皆會有一個限制時間 11/16 12:13
→ ken52011219: 很難真得藉由RR達到實際情況的公平 11/16 12:14
推 windwaker112: 意思是說,我看誰比較餓,就讓他多跑幾次以達到公 11/16 12:33
→ windwaker112: 平這樣嗎? 11/16 12:33
→ ken52011219: RR再加上multiple pointer 本身就是額外加priority 11/16 12:50
→ ken52011219: 給某process 就已經論不上公平了 這是優點 也感覺如 11/16 12:50
→ ken52011219: 你所說的是缺點 11/16 12:50
→ ken52011219: 這個缺點是違法RR Algorithms 的精神 但對於整個OS 11/16 13:08
→ ken52011219: 可以不用換scheduler algo就可以達到 若不需要這樣 11/16 13:08
→ ken52011219: 當然在該輪就不用加pointer就好 11/16 13:08
→ ken52011219: 話說我感覺我自己在繞圈圈了QQ 11/16 13:12
推 windwaker112: 所以解答的好處第二個拿去下面壞處第二個剛好是兩 11/16 13:15
→ windwaker112: 個這樣嗎XD,因為壞處第二個看不太懂 11/16 13:15
→ ken52011219: 討論過後我覺得壞處可以寫@@~ 11/16 13:30
→ ken52011219: 壞處第二項我覺得是在講整個LINK變複雜了吧(? 11/16 13:31
推 krusnoopy: 我的想法是他的做法是一個process可能有兩個pointer幫 11/16 13:41
→ krusnoopy: 他在queue排隊,壞處第二項就是因為一個process執行結 11/16 13:41
→ krusnoopy: 束,也要結束掉queue裡面的另外一個pointer,所以要搜尋 11/16 13:42
→ krusnoopy: 整個串列 11/16 13:42
→ krusnoopy: 這篇解答說會餓死是缺點 11/16 13:51
推 windwaker112: 我懂了,我把他看成pointer是連續放進去的才想說 11/16 14:06
→ windwaker112: ,做完只要把後面一樣的砍掉就好,那照這個邏輯來 11/16 14:06
→ windwaker112: 看是不會有飢餓產生,只是時間分配不均而已,只是 11/16 14:06
→ windwaker112: 有的process在一輪裡面跑的時間比較長而已 11/16 14:06
推 krusnoopy: 嗯嗯那我更正,只是低priority會分配較少但不會餓死 11/16 14:10
→ windwaker112: yeah~終於有結論了,感謝各位大大 11/16 14:47
→ h9638512: 非常感謝各位的回答 11/20 10:47