操作系统调度算法解析
1. SJF (Shortest Job First)
定义
短作业优先调度算法,优先选择 预估执行时间最短 的进程
两种实现形式
类型 | 特点 | 公式示例 |
---|---|---|
非抢占式 | 只在进程结束时触发调度 | 类似 FCFS 但按服务时间排序 |
抢占式 | 新短进程到达时抢占当前进程 | 又称 SRTF (Shortest Remaining Time First) |
示例分析
进程表
进程 | 到达时间 | 服务时间 |
---|---|---|
P1 | 0 | 6 |
P2 | 2 | 3 |
P3 | 4 | 2 |
非抢占式SJF调度过程
- 0时刻: 只有P1到达 → 执行P1
- 6时刻: P1完成,此时到达队列有P2(3)、P3(2) → 选P3
- 8时刻: P3完成,执行P2
- 11时刻: 全部完成
计算指标
进程 | 完成时间 | 周转时间 | 等待时间 |
---|---|---|---|
P1 | 6 | 6-0=6 | 6-6=0 |
P3 | 8 | 8-4=4 | 4-2=2 |
P2 | 11 | 11-2=9 | 9-3=6 |
2. SJF 算法特性总结
维度 | 优点 | 缺点 |
---|---|---|
公平性 | 短作业获得快速响应 | 长作业可能饥饿 |
效率 | 最小化平均等待时间 | 需要预知服务时间 |
实现 | 非抢占式实现简单 | 抢占式需要频繁上下文切换 |