📜  门| GATE-CS-2006 |第 65 题

📅  最后修改于: 2021-09-26 03:24:33             🧑  作者: Mango

考虑三个进程,都在时间 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 提供
这个问题的测验