我在youtube上观看了很多有关RR调度的教程,我在考试中遇到了这个问题,但我不知道自己做错了什么,教授的解决方案与我的解决方案不同,我现在很困惑。
Job | Arrival | Burst
P1 | 0 | 4
P2 | 2 | 5
P3 | 3 | 3
P4 | 8 | 4
QT = 1
她的答案是:P1,P1,P2,P3,P1,P2,P3,P1,P4,P2,P3,P4,P2,P4,P2,P4
我的答案是:P1,P1,P2,P1,P3,P2,P1,P3,P2,P4,P3,P2,P4,P2,P4,P4
那么哪一个是正确答案,如果是她那么为什么呢?
答案 0 :(得分:3)
两者都是正确的!!!
我会说你的解决方案看起来是正确的(但你没有考虑优先级调度队列)。但这取决于你的教授是如何接近的。以下是方法:
您的方法:
您正在执行正常的队列操作。只有enque()和deque()。所以使用这些2,你的方法是正确的!!!
你教授的方法:
每当一个新进程到来时,他就把它放在队列的顶端。他正在考虑优先级队列,而不是每个新流程都具有最高优先级。
如果你和你的教授讨论,那就更好了。我会说你没错!!!!
答案 1 :(得分:3)
新到达的最高优先级,在等待队列中通过FIFO考虑第二优先级。
Queue
front P1 P2 P3 P4
-----------------------------------
0 P1 | [3]
1 P1 | [2] >>
2 P2 | 2 [4] >> <- P2 arrives
3 P3 | 2 4 [2] <- P3 arrives
4 P1 | [1] >> 4 2
5 P2 | 1 [3] >> 2
6 P3 | 1 3 [1]
7 P1 | [0] >> 3 1
8 P4 | 3 1 [3] <- P4 arrives. FIFO disrupted.
9 P2 | [2] >> 1 3 <- FIFO regained.
10 P3 | 2 [0] >> 3
11 P4 | 2 [2]
12 P2 | [1] >> 2
13 P4 | 1 [1]
14 P2 | [0] >> 1
15 P4 | [0]
答案 2 :(得分:2)
她的回答是正确的。
您可以像这样解决问题:
希望这有帮助!
答案 3 :(得分:1)
你的老师有不同的方法。每当新进程到达系统时,它的优先级高于完成突发的进程。