操作系统概论 进程调度算法
在操作系统中,进程调度算法用于决定哪个进程应该在何时获得CPU的使用权。不同的调度算法有不同的目标和适用场景。以下是一些常见的进程调度算法:
- 先来先服务调度算法(FCFS)
描述:按照进程到达就绪队列的顺序分配CPU,选择最先到达的进程。
优点:简单、公平,适合长进程。
缺点:短进程等待时间可能过长,不利于提高系统吞吐量。
- 短进程优先调度算法(SPF)
描述:优先选择预计运行时间最短的进程。
优点:降低平均等待时间,提高吞吐量。
缺点:长进程可能“饥饿”,无法保证紧急任务的及时处理。
- 优先权调度算法
分类:
非抢占式:高优先级进程需等待当前进程主动释放CPU。
抢占式:允许高优先级进程抢占正在运行的进程。
问题:低优先级进程可能无限期等待,需通过“老化技术”调整优先级。
- 时间片轮转调度算法(RR)
描述:将CPU时间划分为固定时间片,进程按队列轮流执行一个时间片。
特点:
公平且响应时间快。
时间片大小需权衡响应时间和系统开销(如过大退化为FCFS,过小增加切换开销)。
- 多级队列调度
描述:将就绪队列划分为多个独立队列,每个队列对应不同的进程属性(如优先级、类型),并采用各自的调度策略。
特点:队列固定,进程永久分配至某一队列。
- 多级反馈队列调度(MLFQ)
描述:动态调整进程优先级,通过多级队列和时间片逐渐增大的策略,平衡短进程和长进程的需求。
设计要点:
队列数量、进程升降级规则、资源分配策略。
实时系统中的调度算法
7. 最早截止时间优先算法(EDF)
描述:根据进程的截止时间分配优先级,截止时间越早优先级越高。
适用场景:实时系统,需严格保证任务的截止时间。
- 最低松弛度优先算法(LLF)
描述:选择“松弛度”(即剩余处理时间与截止时间的差值)最小的进程优先执行。
特点:动态调整优先级,适用于周期性实时任务。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Beyond Lightcone!






