考虑三个进程,它们全部在零时间到达,总执行时间分别为10、20和30个单元。每个进程将前20%的执行时间用于I / O,接下来的70%的时间用于计算,而后10%的时间再次用于I / O。操作系统使用最短的剩余计算时间优先调度算法,并在正在运行的进程在I / O上被阻塞或正在运行的进程完成其计算突发时调度新进程。假定所有I / O操作都可以尽可能地重叠。 CPU保持空闲状态的时间百分比是多少?
(A) 0%
(B) 10.6%
(C) 30.0%
(D) 89.4%答案: (B)
解释:
最短剩余时间(SRT)调度算法选择要执行的过程,该过程具有最短的剩余完成时间。
设三个过程为p0,p1和p2。它们的执行时间分别是10、20和30。
p0首先在I / O中花费2个时间单位,在CPU时间中花费7个单位,最后在I / O中花费1个单位。
p1首先在I / O中花费4个单位,在CPU时间中花费14个单位,最后在I / O中花费2个单位。
p2首先在I / O中花费6个单元,在CPU时间中花费21个单元,最后在I / O中花费3个单元。
PID | AT | IO | BT | IO |
---|---|---|---|---|
P0 | 0 | 2 | 7 | 1 |
P1 | 0 | 4 | 14 | 2 |
P2 | 0 | 6 | 21 | 3 |
AT到达时间,IO输入/输出,BT突发时间
第一个进程p0将在IO中花费2个单元,接下来的7个单元将在BT中使用,然后进程p1将在BT中花费14个单元(因为它的4个IO单元在上一个进程运行时已经被使用),十个进程p2将花费21个单元在BT中(因为在运行先前的进程时已经消耗了它的6个IO单元),在IO中至少有3个单元(包括进程p0,p1,p2的最后一个IO)。
idle p0 p1 p2 idle
0 2 9 23 44 47
Total time spent = 47
Idle time = 2 + 3 = 5
Percentage of idle time = (5/47)*100 = 10.6 %
参见http://www.geeksforgeeks.org/operating-systems-set-15/的问题2
该解决方案由Nitika Bansal提供
这个问题的测验