单道与多道环境下CPU利用率计算及时间执行图
单道与多道环境下CPU利用率计算及时间执行图
问题描述:
有两个程序A和B,其执行时需要CPU和设备资源的时间如下:
- 程序A: CPU(10s)-设备1(5s)-CPU(5s)-设备2(10s)-CPU(10s)* 程序B: 设备1(10s)-CPU(10s)-设备2(5s)-CPU(5s)-设备2(10s)
问题:
- 在单道方式下和多道并发环境下执行A、B两个程序,CPU的利用率各为多少?(假设并发执行时处理机为非抢占方式调度)2. 画出此时在单道方式下和多道并发环境下的时间执行图。
解答:
1. CPU利用率计算
-
单道方式: * 程序A执行时间: 10s + 5s + 5s + 10s + 10s = 40s * 程序B执行时间: 10s + 10s + 5s + 5s + 10s = 40s * CPU总执行时间: 40s + 40s = 80s * CPU利用率 = (程序A执行时间 + 程序B执行时间) / CPU总执行时间 = (40s + 40s) / 80s = 1 = 100%
-
多道并发环境 (非抢占式调度): * 通过分析程序A和B的执行流程,可以发现,在多道并发环境下,程序A和B的部分操作可以并行执行,例如程序A使用设备1时,程序B可以使用CPU。 * CPU总执行时间: 50s (具体执行流程见时间执行图) * CPU利用率 = (程序A执行时间 + 程序B执行时间) / CPU总执行时间 = 80s / 50s = 1.6 = 160% (由于并行执行,CPU利用率可以超过100%)
2. 时间执行图
- 单道方式:
时间轴: 0s 5s 10s 15s 20s 25s 30s 35s 40s 45s 50s 55s 60s 65s 70s 75s 80s---------------------------------------------------------------------------------程序A: | CPU | 设备1 | CPU | 设备2 | CPU | 程序B: | 设备1 | CPU | 设备2 | CPU | 设备2 |
- 多道并发环境 (非抢占式调度):
时间轴: 0s 5s 10s 15s 20s 25s 30s 35s 40s 45s 50s ----------------------------------------------------程序A: | CPU | 设备1 | CPU | 设备2 | CPU | 程序B: | 设备1 | CPU | 设备2 | CPU | 设备2 |
结论:
通过对比单道和多道并发环境下的CPU利用率和时间执行图可以看出,多道并发环境可以有效提高CPU的利用率,缩短程序整体执行时间。
原文地址: https://www.cveoy.top/t/topic/bAMV 著作权归作者所有。请勿转载和采集!