主观题:h557.有3个程序A、B、C,它们分别单独运行时的CPU和I/O占用时间如图3-6所示:
有3个程序A、B、C,它们分别单独运行时的CPU和I/O占用时间如图3-6所示:

现在考虑3个程序同时运行。系统中的资源有一个CPU和两台输入输出设备(I/O1和I/O2)同时运行。三个程序的优先级为A最高,B次之,C最低,优先级高的程序可以中断优先级低的程序,但优先级与输入输出设备无关。请回答下列问题:
(1) 最早结束的程序是哪个?
(2) 最后结束的程序是哪个?
(3) 三个程序执行到结束分别用了多长时间?
(4) 计算这段时间的CPU利用率(三个程序完全结束为止)。
答案:解:

先用图示分析三个程序的执行过程(如图3-7所示):图3-7从上述分析可知:
(1) 最早结束的程序是B;(2分)
(2) 最后结束的程序是C;(2分)
(3) A、B、C三个程序执行到结束分别用了250ms、210ms、280ms;(3分)
(4) 这段时间的CPU利用率=(230-10-40)/280=180/280=0.643=64.3%。(3分)

现在考虑3个程序同时运行。系统中的资源有一个CPU和两台输入输出设备(I/O1和I/O2)同时运行。三个程序的优先级为A最高,B次之,C最低,优先级高的程序可以中断优先级低的程序,但优先级与输入输出设备无关。请回答下列问题:
(1) 最早结束的程序是哪个?
(2) 最后结束的程序是哪个?
(3) 三个程序执行到结束分别用了多长时间?
(4) 计算这段时间的CPU利用率(三个程序完全结束为止)。
答案:解:

先用图示分析三个程序的执行过程(如图3-7所示):图3-7从上述分析可知:
(1) 最早结束的程序是B;(2分)
(2) 最后结束的程序是C;(2分)
(3) A、B、C三个程序执行到结束分别用了250ms、210ms、280ms;(3分)
(4) 这段时间的CPU利用率=(230-10-40)/280=180/280=0.643=64.3%。(3分)