1. 简介
CPU 调度是操作系统中的一个核心功能,负责在多个运行任务之间公平、高效地分配 CPU 时间。合理的调度机制不仅能提升系统资源利用率,还能改善用户体验,满足响应性和性能要求。
在 CPU 调度中,有几个关键的时间概念非常重要:
✅ 到达时间(Arrival Time)
✅ 执行时间(Burst Time)
✅ 完成时间(Completion Time)
✅ 周转时间(Turnaround Time)
✅ 等待时间(Waiting Time)
✅ 响应时间(Response Time)
理解这些概念及其计算方式,有助于我们更深入地掌握不同调度算法的工作机制和性能差异。
2. 关键时间概念详解
2.1. 到达时间(Arrival Time)
到达时间是指一个进程进入就绪队列的时间点。也就是说,进程从“新建”状态变为“就绪”状态,准备被调度执行。
👉 在调度算法中,到达时间常用于判断进程的优先级,比如先到先服务(FCFS)算法就完全基于到达时间排序。
2.2. 执行时间(Burst Time)
执行时间也称为 CPU 时间,是指进程完成一次 CPU 执行所需的时间。它决定了进程在 CPU 上运行多久。
⚠️ 注意:Burst Time 并不等于整个进程的执行时间,而是单次 CPU 执行所需的时间。如果进程涉及 I/O 操作,它可能多次进入就绪队列。
👉 短作业优先(SJF)等调度算法会根据 Burst Time 来决定调度顺序。
2.3. 完成时间(Completion Time)
完成时间是指进程最后一次执行完毕离开 CPU 的时间。
✅ 公式:
Completion Time = Arrival Time + Waiting Time + Burst Time
👉 完成时间是评估调度算法效率的重要指标,越早完成越好。
2.4. 周转时间(Turnaround Time)
周转时间是指从进程到达系统到其执行完成所经历的总时间。
✅ 公式:
Turnaround Time = Completion Time - Arrival Time
👉 周转时间越短,说明调度算法越高效。它是衡量系统整体响应能力的重要指标。
2.5. 等待时间(Waiting Time)
等待时间是指进程在就绪队列中等待执行的时间总和。
✅ 公式:
Waiting Time = Turnaround Time - Burst Time
👉 等待时间越短,说明调度算法越能快速响应进程请求。它是衡量调度公平性的一个关键因素。
2.6. 响应时间(Response Time)
响应时间是指从进程到达系统到它第一次开始执行的时间间隔。
✅ 公式:
Response Time = First Execution Time - Arrival Time
👉 响应时间常用于衡量调度算法对用户请求的响应速度。尤其在交互式系统中,响应时间越短越好。
3. 示例说明
为了更清楚地说明这些时间的计算方式,我们来看一个使用 非抢占式最短作业优先(SJF) 调度算法的示例。
进程表如下:
Process | Arrival Time | Burst Time |
---|---|---|
P1 | 3 | 3 |
P2 | 6 | 3 |
P3 | 0 | 4 |
P4 | 2 | 5 |
调度过程如下:
- t=0: P3 到达并立即开始执行
- t=2: P4 到达,进入就绪队列
- t=3: P1 到达,继续等待
- t=4: P3 完成执行,比较 P1 和 P4 的 Burst Time,P1 执行
- t=6: P2 到达,继续等待
- t=7: P1 完成执行,比较 P4 和 P2 的 Burst Time,P2 执行
- t=10: P2 完成执行,P4 开始执行
- t=15: P4 完成执行
Gantt 图如下:
各进程时间计算如下:
P3:
Completion Time = 4
Turnaround Time = 4 - 0 = 4
Waiting Time = 4 - 4 = 0
Response Time = 0 - 0 = 0
P1:
Completion Time = 7
Turnaround Time = 7 - 3 = 4
Waiting Time = 4 - 3 = 1
Response Time = 4 - 3 = 1
P2:
Completion Time = 10
Turnaround Time = 10 - 6 = 4
Waiting Time = 4 - 3 = 1
Response Time = 7 - 6 = 1
P4:
Completion Time = 15
Turnaround Time = 15 - 2 = 13
Waiting Time = 13 - 5 = 8
Response Time = 10 - 2 = 8
4. 总结
本文介绍了 CPU 调度中的几个核心时间概念,并通过一个实际示例演示了它们的计算方法。
这些时间指标是评估调度算法性能的重要依据:
✅ 周转时间反映整体效率
✅ 等待时间体现调度公平性
✅ 响应时间影响用户体验
合理利用这些指标,可以更有效地优化操作系统调度策略,提升系统的吞吐量与响应能力。在实际开发中,尤其是涉及调度器设计或性能调优时,这些概念非常实用。