📜  OS FCFS调度

📅  最后修改于: 2020-12-14 01:42:55             🧑  作者: Mango

FCFS调度

先来先服务(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 Arrival Time Burst Time Completion Time Turn Around Time Waiting 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

(甘特图)