问:
- 设一计算机系统有输人机一台打印机两台,现有A.B两道程序同时投入运行,且程序A先运行,程序B后运行。程序A的运行轨迹为:计算50 ms,打印信息100 ms,再计算50 ms,打印信息100 ms,结束。程序B运行的轨迹为:计算50 ms,输人数据80 ms, 再计算100 ms,结束。要求:
- (1)用图画出这两道程序并发执行时的工作情况。
- (2)在两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会空闲等待?
- (3)程序A、B运行时有无等待现象?在什么时候会发生等待现象?为什么会发生?
答:
(1)作图如下:
(2) CPU有空闲等待,在计算完程序B后的50ms内,即100ms到150ms之间处于空闲等待。由于AB程序都在不同的设备上进行暂时不需要用到CPU,所以会有空闲等待。
(3) 程序A无等待现象,程序B在运行时有等待现象,在B程序使用完输入机后等待CPU将A程序计算完,即在 180ms 到 200ms 之间。单CPU同一时间只能处理一项任务,在B程序输入完后需要使用CPU来进行计算,但是CPU正在被A程序占用,所以B程序只能等待A程序执行完后释放CPU 资源。
解释:
(1) 题目中虽然给了两台打印机,但由于两个程序使用打印机的时间没有重复段,所以一台打印机就可以完成任务,另一台打印机不需要工作。
资料参考
- 《计算机操作系统教程》(第四版 编著:左万利 王英)