调度算法的评价指标
在操作系统中,调度算法的目标是合理分配处理机资源。为了比较不同调度算法的优劣,需要引入一系列 评价指标,从系统效率和用户体验等多个角度进行衡量。
一、CPU 利用率(CPU Utilization)
1. 定义
CPU 利用率 指 CPU 处于忙碌状态的时间占总运行时间的比例,用于衡量 CPU 资源是否被充分利用。
2. 示例说明
条件:
- 单道程序系统
- 作业执行过程:
- CPU 执行 5 秒
- 打印机 I/O 5 秒
- CPU 再执行 5 秒
- 总耗时:15 秒
3. 计算
4. 结论
- 在单道程序系统中,I/O 操作会导致 CPU 空闲
- 多道程序设计的一个重要目标就是 提高 CPU 利用率
二、系统吞吐量(Throughput)
1. 定义
系统吞吐量 指单位时间内系统完成的作业数量,是衡量系统整体处理能力的重要指标。
单位通常为:道 / 秒
2. 评价标准
- 吞吐量 越大越好
- 更适合用于:
- 批处理系统
- 高负载服务器环境
三、周转时间(Turnaround Time)
1. 定义
周转时间 指从作业提交给系统开始,到作业完成为止所经历的总时间。
2. 周转时间的组成
一个作业的周转时间通常包括以下几部分:
- 高级调度等待时间
- 作业在外存后备队列中等待的时间(只发生一次)
- 低级调度等待时间(就绪态)
- 进程在就绪队列中等待 CPU 的时间(可能多次)
- 运行态时间
- 进程在 CPU 上实际执行的时间
- 阻塞态时间
- 进程等待 I/O 操作完成的时间(可能多次)
后三种状态在作业执行过程中可能反复出现。
四、带权周转时间(Weighted Turnaround Time)
1. 定义
带权周转时间 用于消除作业运行时间差异带来的影响,是对周转时间的进一步修正。
2. 性质与评价
- 带权周转时间 恒大于 1
- 越小越好
- 更能反映用户的真实体验
3. 对比分析
- 周转时间相同:
- 实际运行时间越长 → 带权周转时间越小 → 用户满意度越高
- 运行时间相同:
- 周转时间越短 → 带权周转时间越小 → 用户满意度越高
五、等待时间(Waiting Time)
1. 定义
等待时间 指进程或作业 处于等待 CPU 状态的时间之和。
2. 对进程的等待时间
- 仅统计:
- 进程创建后
- 等待 CPU 调度的时间
- 不包括:
- 等待 I/O 完成的时间(I/O 期间进程正在被服务)
3. 对作业的等待时间
作业的等待时间包括:
- 在外存后备队列中的等待时间
- 进程建立后的就绪等待时间
4. 关键结论
- 作业/进程的 CPU 执行时间和 I/O 时间通常是固定的
- 不同调度算法主要影响的是:
- 等待时间
- 等待时间越短,用户满意度越高
六、响应时间(Response Time)
1. 定义
响应时间 指从用户提交请求开始,到系统 首次产生响应 所经历的时间。
2. 适用场景
- 交互式系统
- 分时系统
- 实时性要求较高的应用
3. 评价标准
- 响应时间 越短越好
- 对用户主观体验影响极大
七、小结
| 指标 | 关注点 | 适用场景 |
|---|---|---|
| CPU 利用率 | 资源利用效率 | 多道程序系统 |
| 系统吞吐量 | 系统处理能力 | 批处理系统 |
| 周转时间 | 作业完成效率 | 批处理系统 |
| 带权周转时间 | 用户公平性 | 作业长短不一 |
| 等待时间 | 调度公平性 | 各类系统 |
| 响应时间 | 用户体验 | 交互式系统 |
不同调度算法往往在不同指标之间进行权衡,不存在在所有指标上都最优的调度算法。