先来先服务FCFS和短作业优先SJF进程调度算法

操作系统-先来先服务FCFS和短作业优先SJF进程调度算法-课后小结

FCFS调度算法

先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。

当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,若有多个作业等待,则优先考虑在系统中等待时间最长的作业,而不管改作业执行所需的时间,然后从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。

进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

SJF调度算法:

短作业优先调度算法SJF,是指对短作业优先调度的算法。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。 SJF调度算法的缺点: 1)必须预知作业的运行时间。难以估计,若是太低,作业可能还未完成就被终止,所以一般会偏长。

2)该算法对长作业不利,如果有一长作业(进程)进入系统的后备队列(就绪队列),由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度。

3)在使用该算法的时候,人机无法实现交互。

4)该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。

进程名ABCDE平均值
到达时间01234
服务时间43524
FCFS开始执行时间0471214
完成时间47121418
周转时间461011149
带权周转时间1225.53.52.8
SJF开始执行时间061349
完成时间4918613
周转时间4816398
带权周转时间12.673.11.52.252.1

注:

1)FCFS是按照作业的先后到达,等待时间来调度的,当A到达时,只有A到达,先调度A,在A执行完后,B、C、 D、E都到达了,他们等待的时间分别为3、2、1、0,B等的最久,所以B第二个被调度,以此类推。

2)周转时间 = 完成时间-到达时间

带权周转时间=周转时间/服务时间

  1. FCFS调度算法有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业(进程)。 CPU繁忙型作业是指该类作业需要大量的CPU时间进行计算,而很少请求I/O。通常的科学计算便属于CPU繁忙型作业。 I/O繁忙型作业是指CPU进行处理时需频繁地请求I/O。目前的大多数事务处理都属于I/O繁忙型作业。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn-唯一

谢谢爸爸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值