题目
某计算机拥有单CPU和两台I/O设备(I1,I2),支持多道程序设计,同时投入三个程序运行。其执行轨迹如下: P1:CPU(30ms),I1(20ms),CPU(10ms),I1(10ms) P2:I1(20ms),CPU(20ms),I2(40ms) P3:I2(30ms),CPU(10ms),I1(30ms),CPU(10ms),I2(20ms) 如果CPU、I1和I2并行工作,优先级从高到低依次为P1、P2和P3,CPU可根据优先级抢占,但设备I1和I2不可抢占。试求: 1)每个运行程序从投入到完成分别所需要的时间;(6分) 2)CPU的利用率;(2分) 3)I/O设备利用率。(2分)
某计算机拥有单CPU和两台I/O设备(I1,I2),支持多道程序设计,同时投入三个程序运行。其执行轨迹如下: P1:CPU(30ms),I1(20ms),CPU(10ms),I1(10ms) P2:I1(20ms),CPU(20ms),I2(40ms) P3:I2(30ms),CPU(10ms),I1(30ms),CPU(10ms),I2(20ms) 如果CPU、I1和I2并行工作,优先级从高到低依次为P1、P2和P3,CPU可根据优先级抢占,但设备I1和I2不可抢占。试求: 1)每个运行程序从投入到完成分别所需要的时间;(6分) 2)CPU的利用率;(2分) 3)I/O设备利用率。(2分)
题目解答
答案
1)P1:70ms P2:90ms P3:130ms 2)CPU的利用率80/130=61.5% 3)I1的利用率80/130=61.5% I2的利用率90/130=69.2%
解析
步骤 1:计算每个程序的执行时间
- P1: CPU(30ms), I1(20ms), CPU(10ms), I1(10ms)
- P2: I1(20ms), CPU(20ms), I2(40ms)
- P3: I2(30ms), CPU(10ms), I1(30ms), CPU(10ms), I2(20ms)
步骤 2:确定每个程序的执行顺序
- P1优先级最高,所以P1先执行,P1执行完后P2执行,P2执行完后P3执行。
步骤 3:计算每个程序的完成时间
- P1: 30ms + 20ms + 10ms + 10ms = 70ms
- P2: 20ms + 20ms + 40ms = 90ms
- P3: 30ms + 10ms + 30ms + 10ms + 20ms = 130ms
步骤 4:计算CPU的利用率
- CPU总执行时间 = 30ms + 10ms + 20ms + 10ms = 80ms
- 总时间 = 130ms
- CPU利用率 = CPU总执行时间 / 总时间 = 80ms / 130ms = 61.5%
步骤 5:计算I/O设备的利用率
- I1总使用时间 = 20ms + 10ms + 30ms = 60ms
- I2总使用时间 = 40ms + 20ms = 60ms
- I1利用率 = I1总使用时间 / 总时间 = 60ms / 130ms = 46.2%
- I2利用率 = I2总使用时间 / 总时间 = 60ms / 130ms = 46.2%
- P1: CPU(30ms), I1(20ms), CPU(10ms), I1(10ms)
- P2: I1(20ms), CPU(20ms), I2(40ms)
- P3: I2(30ms), CPU(10ms), I1(30ms), CPU(10ms), I2(20ms)
步骤 2:确定每个程序的执行顺序
- P1优先级最高,所以P1先执行,P1执行完后P2执行,P2执行完后P3执行。
步骤 3:计算每个程序的完成时间
- P1: 30ms + 20ms + 10ms + 10ms = 70ms
- P2: 20ms + 20ms + 40ms = 90ms
- P3: 30ms + 10ms + 30ms + 10ms + 20ms = 130ms
步骤 4:计算CPU的利用率
- CPU总执行时间 = 30ms + 10ms + 20ms + 10ms = 80ms
- 总时间 = 130ms
- CPU利用率 = CPU总执行时间 / 总时间 = 80ms / 130ms = 61.5%
步骤 5:计算I/O设备的利用率
- I1总使用时间 = 20ms + 10ms + 30ms = 60ms
- I2总使用时间 = 40ms + 20ms = 60ms
- I1利用率 = I1总使用时间 / 总时间 = 60ms / 130ms = 46.2%
- I2利用率 = I2总使用时间 / 总时间 = 60ms / 130ms = 46.2%