作业调度算法【平均周转时间、平均带权周转时间、先来先服务FCFS、短作业优先SJF、高优先权(级)算法FPF、高响应比优先算法HRRN】

先来先服务算法(FCFS)

既可用于作业调度,又可用于进程调度

  • 作业调度:优先调度最先进入后备队列的作业
  • 进程调度:优先调度最先进入就绪队列的进程

利于长作业(长进程),不利于短作业(短进程)

利于CPU繁忙型,不利于I/O繁忙型

短作业优先算法(SJF)、短进程优先算法(SPF)

即优先调度时间短的作业/进程

  • SJF:从后备队列中找到估计运行时间最短的作业
  • SPF:从就绪队列中找到估计运行时间最短的作业

有效降低作业的平均等待时间,提高系统吞吐量

对长作业不利,不能对紧急作业做有效处理

周转时间和带权周转时间

  • 周转时间 = 进程完成时间 - 进程到达时间
  • 平均周转时间 = 周转时间之和 / 进程个数
  • 带权周转时间 = 周转时间 / 进程实际运行时间
  • 平均带权周转时间 = 带权周转时间之和 / 进程个数

在这里插入图片描述
FSFS
请添加图片描述
平均周转时间 = [(4-0)+(7-1)+(12-2)+(14-3)+(18-4)] / 5 = 9

平均带权周转时间 = [(4-0)/ 4 +(7-1)/ 3 + (12-2)/ 5 +(14-3)/ 2 + (18-4)/ 4 ] / 5=2.8

SPF请添加图片描述
平均周转时间 = [(4-0)+(9-1)+(18-2)+(6-3)+(13-4)] / 5 = 8

平均带权周转时间 = [(4-0)/ 4 +(9-1)/ 3 +(18-2)/ 5 +(6-3)/2 +(13-4)/ 4] / 5 = 2.1

高优先权(级)调度算法FPF

  • 分为抢占式优先算法非抢占式优先算法
  • 系统依据作业的优先权高低决定谁先执行
  • 优先权与进程类型、进程对资源的需求,用户要求等有关
  • 优先权分为静态优先权动态优先权
  • 静态优先权在创建进程时确定,运行过程中保持不变
  • 动态优先权可以随进程的推进或时间的推移而发生改变

高响应比优先调度算法HRRN

在批处理系统中,短作业优先算法是很好的算法,但主要不足是长作业的运行得不到保证。因此我们为每个作业引进了动态优先权

优先权 = (等待时间+要求服务时间)/要求服务时间
     = (响应时间) / 要求服务时间

  • 等待时间相同,要求服务时间越短优先级越高,对短作业有利
  • 要求服务时间相同,等待时间越长优先级越高,先来的先执行
  • 对于长作业,等待时间越长,优先级越高,等待时间足够长,也能获得处理机
  • 34
    点赞
  • 161
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 先来先服务FCFS)进程调度算法是一种简单的调度算法,按照进程到达的先后顺序进行调度。即先到达的进程先执行,后到达的进程后执行。这种算法的优点是简单易懂,缺点是可能会出现长作业等待时间过长的情况。 作业优先SJF)进程调度算法是一种根据进程执行时间长来进行调度的算法。即执行时间的进程先执行,执行时间长的进程后执行。这种算法的优点是可以减少长作业等待时间,缺点是可能会出现作业饥饿的情况。 ### 回答2: 进程调度算法是计算机操作系统中非常重要的一部分,FCFS先来先服务)和SJF作业优先)是其中比较常见的两种算法。下面将分别对两种算法进行介绍及比较。 FCFS算法先来先服务,即按照进入就绪队列的顺序,先进入队列的进程先被执行。该算法的优点是简单易懂,不需要对进程的属性进行过多的分析。但是,该算法存在一个致命的弊端:无法处理作业和长作业混杂的情况,因为如果遇到一个长作业作业就会被迫等待很长时间,导致系统的响应速度变慢。 SJF算法作业优先,即在就绪队列中,选择最作业先执行。该算法的优点是可以尽可能地提系统的响应速度,保证作业更快地完成。但是该算法也存在一些缺点:由于进程的执行时间不确定,因此难以做出一个准确的预测,如果预测错误,可能会出现长时间的等待,导致系统效率降低。 两种算法的比较:FCFS算法最大的优点是简单易懂,没有太多的计算复杂度,但是对于作业和长作业混杂的情况,无法满足系统性能的要求。而SJF算法虽然能够提系统的响应速度,并且对于作业友好,但也存在预测困难的问题,也会产生等待的情况。因此,需要根据具体的情况选择适合的算法,如果作业的执行时间能够事先预测,SJF算法是一个很好的选择,否则则可以选择FCFS算法。但是在实际应用中,为了更好地提系统的性能,一般会采用优先调度算法,根据进程的属性进行优先的排序,以此来保证更加合理的进程调度顺序。同时,还可以采用时间片轮转的方法,将长作业进行切割,让多个进程共享CPU,提系统的处理能力。 ### 回答3: 先来先服务FCFS)是一种最简单的调度算法,也被称为先到先服务或先进先出。该算法的基本原理是按照进程到达的顺序进行调度,即先到来的进程先执行,后到达的进程后执行。FCFS算法适用于进程执行时间相同时,优先相同的情况。由于该算法的简单性,一般只有在任务队列中的进程个数固定且任务时间相等时才使用。但是,FCFS算法的显著缺陷是无法解决作业等待长作业的问题,因此在实际应用中,FCFS算法很少使用。 作业优先SJF)是一种比FCFS算法更为效的调度算法,也被称为最作业优先。该算法的基本原理是按照进程需要执行的时间的长来进行调度,即先优先选择需要执行时间较的进程,而不是按照它们到达的顺序来进行调度。SJF算法适用于任务队列中的进程的时间不一致的情况。该算法具有响应度、效率和低等待时间的优点,能够降低平均等待时间。但是,该算法也存在着一定的问题,如容易出现饥饿现象(即在系统运行的过程中,某些进程始终无法被调度执行)。因此,通常可以将作业优先算法与其他调度算法一起使用,以避免饥饿现象的出现。 总之,先来先服务作业优先都是进程调度算法中常见的两种,它们各有优缺点,需要根据具体的情况选择合适的算法来保证系统的效率和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

有理想、有本领、有担当的有志青年

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值