考虑三个过程,它们都到达时间零点,总执行时间分别为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个时间单位,7个CPU时间单位,最后1个I/O时间单位。 p1在I/O中花费前4个单位,14个单位的CPU时间,最后2个单位的I/O时间。 p2在I/O中使用前6个单位,在CPU时间中使用21个单位,在I/O中使用最后3个单位。
PID | 在 | 木卫一 | 英国电信 | 木卫一 |
---|---|---|---|---|
P0 | 0 | 2. | 7. | 1. |
P1 | 0 | 4. | 14 | 2. |
P2 | 0 | 6. | 21 | 3. |
到达时间、IO输入/输出、BT突发时间
第一个进程p0将在IO中花费2个单元,接下来的7个单元在BT中,然后,进程p1将在BT中花费14个单元(因为它的4个IO单元在上一个进程运行时已经花费了),10个进程p2将在BT中花费21个单元(因为它的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 %
见本报告问题2 https://www.geeksforgeeks.org/operating-systems-set-15/
这个解决方案是由 尼蒂卡·班萨尔 这个问题的小测验