计算机操作系统学习之FCFS、SJF和HRRN调度算法

一.FCFS算法(先来先服务)

  • 算法思想:主要从“公平”角度考虑
  • 算法规则:按照作业/进程到达的先后顺序进行服务
  • 用于作业/进程调度
    用于作业调度时,考虑的是哪个作业先到达后备队列;
    用于进程调度时,考虑的是哪个进程先到达就绪队列。
  • 是否可抢占非抢占式的算法
  • 是否会导致饥饿不会导致饥饿
    注:饥饿指某进程/作业长期得不到服务
  • 优点:公平,算法实现简单
  • 缺点:排在长作业之后的短作业需要等待很长时间。即FCFS算法对长作业有利,对短作业不利。
  • 举例
    有下列进程,使用先来先服务调度算法

在这里插入图片描述
在这里插入图片描述

二.SJF算法(短作业优先算法)

1.不可抢占的情况(即SJF算法)

  • 算法思想:追求最少的平均等待时间、平均周转时间和评价带权周转时间
  • 算法规则:每次调度时选择当前已到达并且运行时间最短的作业/进程
  • 用于作业/进程调度:可以用于作业和进程调度
  • 举例
    有下列进程,使用短作业优先算法

在这里插入图片描述
在这里插入图片描述

2.可抢占的情况(最短剩余时间优先算法 即SRTN算法)

  • 算法规则
    每当有新的进程进入就绪队列就要重新调度,如果新到达的进程剩余时间正在运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程进入就绪队列。或者当一个进程完成时,也需要重新调度
  • 举例
    有下列进程,使用最短剩余时间优先算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.优缺点

  • 优点:“最短的”的平均等待时间、平均周转时间
  • 缺点:不公平,对短作业有利,对长作业不利,如果有源源不断的短作业进入后备队列,那么长作业会长期得不到执行,产生饥饿现象。

4.补充

  • 在没有特别说明的情况下,提到的“短作业/进程优先算法”默认是非抢占式
  • 在所有进程几乎都同时到达的情况下,采用SJF算法的平均等待时间最少,平均周转时间最少

三.HRRN算法(高响应比优先)

  • 算法思想:综合考虑作业/进程的等待时间要求服务的时间
  • 算法规则
    每次调度前先计算各个作业/进程的响应比,选择响应比最高的先进行服务
    响应比:(等待时间+要求服务时间)/ 要求服务时间
  • 用于作业/进程调度:可以用于作业和进程调度
  • 是否可抢占:非抢占式的算法,因此只有当前作业/进程主动放弃处理机时,才需要调度
  • 优缺点:综合考虑了等待时间和运行时间,当等待时间相同时,运行时间短的优先;当运行时间相同时,等待时间长的优先。
  • 举例
    有下列进程,使用高响应比优先算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值