Uniprocessor scheduling中的burst指什么?是否适用于所有调度算法?
单处理器调度中“burst”的核心定义
在单处理器调度的专业语境下,大家提到的“burst”默认特指CPU burst(CPU突发),指进程在两次让出CPU的间隙中,连续不间断占用CPU执行指令的时间片段。
操作系统教材里提到这个概念时很少特意补充限定,是因为单处理器的调度决策触发点,全部落在CPU burst的结束节点上:当一段连续的CPU执行完成后,进程要么因为等待磁盘读写、用户输入、网络响应等事件进入阻塞状态,要么直接完成任务退出,这时候调度程序才需要介入,决定下一个占用CPU的进程。
进程的完整运行生命周期,本质就是两类burst的交替循环:
- CPU burst:进程完全占用CPU运行代码,没有触发主动阻塞、也没有被强制切走的连续时段
- I/O burst:进程因为等待外部事件放弃CPU占用的等待时段,这段时间进程不会进入可运行队列参与CPU竞争
举个直观的例子:一个文本编辑器启动时,连续花50ms加载内置字体资源的时段就是一次CPU burst;加载完成后等待用户输入字符的200ms就是I/O burst;用户输入触发后,程序花20ms计算文本渲染位置的时段就是第二次CPU burst。
“burst”概念的通用性与适用范围
CPU burst是操作系统进程调度领域的通用标准专业概念,不属于某一种特定调度算法的自定义术语。
这个概念完全适用于所有单处理器调度算法,核心原因是:所有单处理器调度算法的设计逻辑,本质上都是围绕不同进程的CPU burst特征展开的,没有任何一类单处理器调度算法可以脱离对CPU burst的统计完成决策:
- 先到先服务(FCFS):按照进程到达可运行队列的顺序,依次把CPU分配给排队的进程,支撑其完成对应的CPU burst
- 短作业优先(SJF):在所有可运行进程中,优先选择预计CPU burst时长最短的进程占用CPU
- 时间片轮转(RR):通过固定长度的时间片,把长进程的连续CPU burst拆解成多个小段,保证所有进程轮流获得CPU
- 优先级调度:结合进程优先级与历史CPU burst的统计值,动态调整可运行进程的调度顺序
- 完全公平调度(CFS)等现代调度算法:持续跟踪每个进程的累计CPU burst时长,动态调整调度权重,保证所有进程公平获得CPU时间
因为单处理器场景下,进程和CPU的交互天然就是“连续占用-让出等待”的交替过程,CPU burst是对这个客观运行片段的抽象描述,不存在脱离该概念可以成立的单处理器调度逻辑。
内容的提问来源于stack exchange,提问作者gregAnthony
相关产品推荐
相关产品推荐

