题目
设某计算机系统有一块CPU、一台输入设备、一台打印机。现有两个进程同时进入就绪状态[1],且进程A先得到CPU运行,进程B后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。试画出它们的时序关系图(可以用甘特图),并说明:开始运行后,CPU有无空闲等待若有,在哪段时间等待计算CPU的利用率。
设某计算机系统有一块CPU、一台输入设备、一台打印机。现有两个进程同时进入就绪状态[1],且进程A先得到CPU运行,进程B后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。试画出它们的时序关系图(可以用甘特图),并说明:开始运行后,CPU有无空闲等待若有,在哪段时间等待计算CPU的利用率。
题目解答
答案
两道程序运行时,CPU存在空闲等待的情况。等待现象发生在程序A开始运行后100ms至150ms的时间段内,此时,由于程序A正在打印信息,而程序B正在输入数据,两者都进入阻塞状态,故CPU空闲。
解析
步骤 1:确定进程A和进程B的运行轨迹
- 进程A:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
- 进程B:计算50ms,输入数据80ms,再计算100ms,结束。
步骤 2:绘制甘特图
- 甘特图是一种表示进程运行时间的图表,其中横轴表示时间,纵轴表示进程。
- 进程A和进程B的运行轨迹如下:
- 进程A:0-50ms计算,50-150ms打印,150-200ms计算,200-300ms打印。
- 进程B:50-100ms计算,100-180ms输入,180-280ms计算。
步骤 3:分析CPU的空闲等待时间
- 在进程A开始运行后100ms至150ms的时间段内,进程A正在打印信息,进程B正在输入数据,两者都进入阻塞状态,故CPU空闲等待。
步骤 4:计算CPU的利用率
- CPU的总运行时间 = 进程A的计算时间 + 进程B的计算时间 = 50ms + 50ms + 50ms + 100ms = 250ms。
- 总时间 = 300ms。
- CPU的利用率 = CPU的总运行时间 / 总时间 = 250ms / 300ms = 0.8333,即83.33%。
- 进程A:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
- 进程B:计算50ms,输入数据80ms,再计算100ms,结束。
步骤 2:绘制甘特图
- 甘特图是一种表示进程运行时间的图表,其中横轴表示时间,纵轴表示进程。
- 进程A和进程B的运行轨迹如下:
- 进程A:0-50ms计算,50-150ms打印,150-200ms计算,200-300ms打印。
- 进程B:50-100ms计算,100-180ms输入,180-280ms计算。
步骤 3:分析CPU的空闲等待时间
- 在进程A开始运行后100ms至150ms的时间段内,进程A正在打印信息,进程B正在输入数据,两者都进入阻塞状态,故CPU空闲等待。
步骤 4:计算CPU的利用率
- CPU的总运行时间 = 进程A的计算时间 + 进程B的计算时间 = 50ms + 50ms + 50ms + 100ms = 250ms。
- 总时间 = 300ms。
- CPU的利用率 = CPU的总运行时间 / 总时间 = 250ms / 300ms = 0.8333,即83.33%。