FCFS 磁盘调度
FCFS 是最简单的磁盘调度算法,按请求到达顺序服务,无饥饿但寻道效率低。
#type / concept
#status / evergreen
#resource / operating-system
[!info] related notes
FCFS 磁盘调度
一句话定义
FCFS(First Come First Served,先来先服务)按请求到达的先后顺序依次服务磁盘访问请求,不考虑磁头当前位置与目标磁道的距离。
核心机制
- 实现简单:维护一个请求队列,按 FIFO 顺序处理
- 公平性好:不会出现饥饿现象
- 效率低:可能产生大量不必要的磁头移动(来回摆动)
- 适用于请求较少或负载较轻的场景
计算公式
总寻道距离 = Σ|当前位置 - 下一请求位置|
例题
题目:
- 磁头初始位置:53
- 请求序列:98, 183, 37, 122, 14, 124, 65, 67
- 磁道范围:0-199
服务顺序:53 → 98 → 183 → 37 → 122 → 14 → 124 → 65 → 67
计算过程:
| 步骤 | 当前位置 | 目标位置 | 移动距离 |
|---|---|---|---|
| 1 | 53 | 98 | |
| 2 | 98 | 183 | |
| 3 | 183 | 37 | |
| 4 | 37 | 122 | |
| 5 | 122 | 14 | |
| 6 | 14 | 124 | |
| 7 | 124 | 65 | |
| 8 | 65 | 67 |
总寻道距离 = 45 + 85 + 146 + 85 + 108 + 110 + 59 + 2 = 640
平均寻道距离 = 640 / 8 = 80
边界与易混淆点
- FCFS 不是最优算法,但实现最简单
- 可能出现”磁头摆动”问题:来回移动导致效率低下
- 与 SSTF 对比:SSTF 可能更高效,但会导致饥饿
- FCFS 保证公平,但不保证效率