本文概述
先来先服务(FCFS)调度算法仅根据作业的到达时间来调度作业。在就绪队列中排在最前面的作业将首先获取CPU。作业的到达时间越短, 作业越早获得CPU。如果第一个进程的突发时间在所有作业中最长, 则FCFS调度可能会导致饥饿问题。
FCFS的优势
- 简单
- 简单
- 先到先得
FCFS的缺点
- 调度方法是非抢占式的, 该过程将运行到完成。
- 由于该算法具有非抢占性, 因此可能会出现饥饿问题。
- 尽管易于实现, 但是由于平均等待时间比其他调度算法更长, 因此性能较差。
例子
让我们以FCFS调度算法为例。在以下时间表中, 有5个进程, 进程ID为P0, P1, P2, P3和P4。在就绪队列中, P0在时间0到达, P1在时间1, P2在时间2, P3在时间3到达, 过程P4在时间4到达。下表中列出了这些过程及其各自的到达和爆发时间。
使用以下公式计算周转时间和等待时间。
Turn Around Time = Completion Time - Arrival Time
Waiting Time = Turnaround time - Burst Time
平均等待时间是通过将所有进程的各自等待时间相加, 然后将总和除以进程总数而确定的。
Process ID | 到达时间 | Burst Time | 完成时间 | 周转时间 | 等待的时间 |
---|---|---|---|---|---|
0 | 0 | 2 | 2 | 2 | 0 |
1 | 1 | 6 | 8 | 7 | 1 |
2 | 2 | 4 | 12 | 8 | 4 |
3 | 3 | 9 | 21 | 18 | 9 |
4 | 4 | 12 | 33 | 29 | 17 |
平均等待时间= 31/5
(甘特图)
评论前必须登录!
注册