考虑三个进程,都在时间 0 到达,总执行时间分别为 10、20 和 30 个单位。每个进程将前 20% 的执行时间用于 I/O,接下来的 70% 的时间用于计算,最后 10% 的时间再次用于 I/O。操作系统使用最短剩余计算时间优先调度算法,并在运行进程被 I/O 阻塞或运行进程完成其计算突发时调度新进程。假设所有 I/O 操作都可以尽可能地重叠。 CPU 保持空闲的时间百分比是多少?
(A) 0%
(B) 10.6%
(C) 30.0%
(四) 89.4%答案:(乙)
解释:
最短剩余时间 (SRT) 调度算法选择在完成前剩余时间最少的进程进行执行。
设三个进程为 p0、p1 和 p2。它们的执行时间分别为 10、20 和 30。
p0 在 I/O 上花费了前 2 个时间单位,7 个 CPU 时间单位,最后在 I/O 上花费了 1 个单位。
p1 在 I/O 上花费了前 4 个单位,在 CPU 时间上花费了 14 个单位,最后在 I/O 上花费了 2 个单位。
p2 在 I/O 上花费了前 6 个单位,21 个 CPU 时间单位,最后在 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-Burst时间
第一个进程 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 提供
这个问题的测验