FCFS调度算法(操作系统)先来先服务

FCFS调度算法(FCFS,First Come First Serve)

算法思想: 主要从“公平的角度考虑”(类似于我们生活中排队买东西)
算法规则: 按照作业/进程到达的先后顺序进行服务
用于作业/进程调度: 用于作业调度时,考虑的是哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列
非抢占式的算法
优缺: 公平、算法实现简单
缺点: 排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验不好。即,FCFS算法对长作业有利,对短作业不利
不会导致饥饿

周转时间=作业完成时间-作业提交时间
平均周转时间=各作业周转时间之和 / 作业数
带权周转时间=作业周转时间 / 作业实际运行的时间=(作业完成时间-作业提交时间)/ 作业实际运行的时间

例题:各进程到达就绪队列的时间、需要的运行时间如下所示,使用先来先服务调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间

进程 到达时间 运行时间
p1 0 7
p2 2 4
p3 4 1
p1 5 4

因为算法按照到达的先后顺序进行调度,因此
调度顺序为p1–>p2–>p3–>p4
FCFS调度算法(操作系统)先来先服务

注意:例子中的进程是纯计算型的进程,一个进程到达后要么在等待,要么在运行。如果是又有计算,又有I/O操作的进程,其等待事件就是周转时间-运行时间-I/O操作的时间