在有一台处理机CPU和两台输入/输出设备I/O1和I/O2,且能够实现抢先式多任务并行工作的多道程序内,投入运行优先级由高到低的P1,P2,P3三个作业。它们使用设备的先后顺序和占用设备时间分别是:
作业P1:I/O2(30毫秒) CPU(10毫秒) I/O1(30毫秒) CPU(10毫秒)
作业P2:I/O1(20毫秒) CPU(20毫秒) I/O2(40毫秒)
作业P3:CPU(30毫秒) I/O1(20毫秒)
在对于其他辅助操作时间可以忽略不计的假设下,作业P1,P2,P3从投入到完成所用的时间分别是 (39) 毫秒, (40) 毫秒和 (41) 毫秒。三个作业从投入运行到全部完成,CPU的利用率约为 (42) %,:U01的利用率约为 (43) %。
假定在系统中仅有这三个作业投入运行,各设备的利用率指该设备的使用时间同作业进程全部完成所占用最长时间的比率。
(43)处填()。
A.60
B.67
C.70
D.78
E.80
F.89
G.90
H.100
I.110
J.120
参考答案:D
解析:
[分析]: 系统必须进行调度,从而使系统资源有效合理地为任务提供服务。调度的算法有先来先服务法、优先数法、短作业优先法和响应比高者优先法等。采用优先数法调度时,根据作业的优先级别,级别高者先调度。在抢先式多任务系统中,CPU是可抢先的,即任何时刻CPU总是分配给需要CPU的优先级最高的作业。设备的利用率计算公式如下。
[*]
根据题意,P1,P2,P3的运行优先级由高到低,在抢先式并行工作方式下,作业的执行时序图如图3-13所示。
[*]
这个时序图是这样的:P1前30ms使用I/O2,所以在时序图中,I/O2第一段30ms标记为 P1。P2前20ms使用I/O1,I/O1第一段20ms标记为P2。P3前30ms使用CPU,CPU第一段 20ms标记为P3。还有一点要注意,CPU资源是可以抢占的,从30~40ms时间段看得出来,P2本来要用20msCPU、但只用了10ms就被P1抢去了。从图中我们可以知道,三个作业从投入到完成总的运行时间为90ms,CPU,I/O1,I/O2的有效工作时间均为70ms,有20ms时间没有利用,所以CPU的利用率=70/90≈78%,I/O1的利用率=70/90≈78%。