先来先服务(FCFS)按到达顺序分配CPU,实现简单但易导致护航效应,平均等待时间长,适合批处理;最短作业优先(SJF)及其抢占式版本SRTF选择运行时间最短进程,减少等待时间、提升吞吐量,但可能导致长任务饥饿,需预估时间;时间片轮转(RR)通过固定时间片轮流执行任务,响应快,适合交互式系统,时间片大小影响上下文切换开销;优先级调度与多级反馈队列(MLFQ)根据优先级分配CPU,动态调整,兼顾响应与吞吐,Linux CFS基于虚拟运行时间实现公平调度;不同系统目标需匹配不同算法,服务器重吞吐,桌面重响应,实时系统重确定性,无万能方案,关键在动态平衡。

操作系统内核的调度算法直接影响多任务处理的效率和响应速度,因为它决定了哪个进程或线程在何时获得CPU资源。不同的调度策略在吞吐量、等待时间、响应性和公平性之间做出权衡,从而影响系统整体表现。
先来先服务(FCFS)
该算法按进程到达就绪队列的顺序分配CPU。虽然实现简单,但可能导致“护航效应”——短任务被长任务阻塞,降低响应速度。
- 适合批处理场景,对交互式任务不友好
- 平均等待时间较长,影响多任务切换效率
最短作业优先(SJF)与最短剩余时间优先(SRTF)
SJF选择预计运行时间最短的进程执行,SRTF是其抢占式版本。这类算法能最小化平均等待时间,提升系统效率。
- 显著减少短任务延迟,提高整体吞吐量
- 可能造成长任务“饥饿”,不利于实时响应
- 需要预估运行时间,在实际应用中依赖历史数据
时间片轮转(RR)
每个可运行任务分配固定长度的时间片,轮流执行。这是多数通用操作系统(如Linux)采用的基础机制之一。
- 保证所有任务都能定期获得CPU,响应速度快
- 时间片大小很关键:太小增加上下文切换开销,太大退化为FCFS
- 适合交互式环境,用户感觉系统更“灵敏”
优先级调度与多级反馈队列(MLFQ)
根据任务优先级分配CPU,高优先级进程优先执行。MLFQ结合了多种策略,动态调整进程优先级。
- 能区分关键任务和普通任务,优化资源分配
- 合理设计下兼顾响应速度和吞吐量
- Linux CFS(完全公平调度器)即基于类似思想,通过虚拟运行时间实现公平调度
基本上就这些。调度算法的选择需匹配系统目标:服务器追求高吞吐,桌面系统注重响应,实时系统强调确定性。没有万能算法,关键是根据负载特征动态平衡效率与响应。










