作者keke0421 (zrae)
看板Grad-ProbAsk
標題[理工] OS-Round-robin(RR)
時間Sun Nov 18 19:18:10 2012
題目是
p1:cpu burst(11 times)
p2:cpu burst(4times) -> I/O(9times) ->CPU burst(3times)
p3:cpu burst(8times)
p4:cpu burst(6times)
please draw the Gantt chart and calculate the average waiting time when
system applies round-robin algorithm(time quantum=5)
我的解答是
ans:
-------------------------------------------------------------->
p1 | p2 | p3 | p4 | p1 | p2 | p3 | p4 | p1 |
-------------------------------------------------------------->
0 5 9 14 19 24 27 30 31 32
p1: 11 -> 6 ->1 ->0
p2: 4 -> 0 , 在18秒時wake up
p3: 8 -> 3 -> 0
p4: 6 -> 1 -> 0
average wating time
= ( (19-5)+ (31-24) + (5-0)+(24-9) + (9-0)+(27-14) + (14-0)+(30-19) ) /4
= 22
我比較不確定的是 在p2的部分
我知道在18秒wake up但應該也是不能插隊吧?就是趕在p1之前就出來..
不知道對不對也沒有答案
所以請教各位大大惹..
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.177.194
推 Bearcome:24之後P3會先做才對 因為P3做完的時候P2還在I/O 11/18 21:08
推 Bearcome: ^9-14的 11/18 21:10
推 Bearcome:還有洪兔友說I/O時間造理說是不能算在等待時間內的 11/18 21:14
→ Bearcome:因為這段時間他還是有在做事(考試說明清楚就好) 11/18 21:14
→ keke0421:wake up時間不是18嗎?怎麼會24完就變成p3做呢? 11/18 21:48
推 Bearcome:你要想像RR是有一個READY QUEUE 11/18 21:50
→ Bearcome:做完的process就會進到READY QUEUE的尾端 11/18 21:51
→ Bearcome:所以P3早在14的時候就進去了 P2 WAKE UP是18 11/18 21:52
所以想法是
一開始
P1 P2 P3 P4
之後P1執行完後-5,新的QUEUE變成
P2 P3 P4 P1
之後P2 -4 跑去做IO 不再ready queue
所以queue變成
P3 P4 P1
之後P3再扣-5,所以QUEUE變成
P4 P1 P3
直到WAKE UP,此時QUEUE才會在加回來P2,P2才可以開始搶CPU?
這樣的想法對嗎
※ 編輯: keke0421 來自: 114.37.177.194 (11/18 21:58)
推 Bearcome:恩 如果到達時間不同的話 就依序進入即可 11/18 22:03
→ keke0421:感恩^^ 11/18 22:05