调度算法先来先服务(FCFS)最短作业优先(SJF)和最高响应比优先(HRRN)算法

Posted bfhonor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调度算法先来先服务(FCFS)最短作业优先(SJF)和最高响应比优先(HRRN)算法相关的知识,希望对你有一定的参考价值。

一、调度算法

(一)先来先服务(FCFS,First Come First Serve)

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

(二)短作业优先(SJF,Shortest Job First)

1. 短作业/进程优先调度算法

  • 例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用非抢占式短作业优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。
  • 短作业/进程优先调度算法:每次调度时选择当前已到达运行时间最短的作业/进程。

2. 抢占式的短作业优先算法

  • 例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用抢占式短作业优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。
  • 抢占式的短作业优先算法又称“最短剩余时间优先算法(SRTN)”
  • 最短剩余时间优先算法:每当有进程加入就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度。


注意几个小细节:

  1. 如果题目中未特别说明,所提到的“短作业/进程优先算法”默认非抢占式
  2. 很多书上都会说“SJF 调度算法的平均等待时间、平均周转时间最少”
    ①、严格来说,这个表述是错误的,不严谨的。之前的例子表明,最短剩余时间优先算法得到的平均等待
    时间、平均周转时间还要更少。
    ②、应该加上一个条件“在所有进程同时可运行时,采用SJF调度算法的平均等待时间、平均周转时间最少”;
    ③、或者说“在所有进程都几乎同时到达时,采用SJF调度算法的平均等待时间、平均周转时间最少”;
    ④、如果不加上述前提条件,则应该说“抢占式的短作业/进程优先调度算法(最短剩余时间优先, SRNT算法)的平均等待时间、平均周转时间最少”
  3. 虽然严格来说,SJF的平均等待时间、平均周转时间并不一定最少,但相比于其他算法(如 FCFS),SJF依然可以获得较少的平均等待时间、平均周转时间
  4. 如果选择题中遇到“SJF 算法的平均等待时间、平均周转时间最少”的选项,那最好判断其他选项是不是有很明显的错误,如果没有更合适的选项,那也应该选择该选项

3. 对FCFS和SJF两种算法的思考

  • FCFS 算法是在每次调度的时候选择一个等待时间最长的作业(进程)为其服务。但是没有考虑到作业的运行时间,因此导致了对短作业不友好的问题.
  • SJF 算法是选择一个执行时间最短的作业为其服务。但是又完全不考虑各个作业的等待时间,因此导致了对长作业不友好的问题,甚至还会造成饥饿问题.
  • 能不能设计一个算法,即考虑到各个作业的等待时间,也能兼顾运行时间呢? 【高响应比优先算法】

(三)高响应比优先(HRRN,Highest Response Ratio Next)

  • 例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用高响应比优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。


  • 注:这几种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统整体性能的指标,但是不关心“响应时间”,也并不区分任务的紧急程度,因此对于用户来说,交互性很糟糕。因此这三种算法一般适合用于早期的批处理系统,当然,FCFS算法也常结合其他的算法使用,在现在也扮演着很重要的角色。而适合用于交互式系统的调度算法

以上是关于调度算法先来先服务(FCFS)最短作业优先(SJF)和最高响应比优先(HRRN)算法的主要内容,如果未能解决你的问题,请参考以下文章

操作系统| 作业调度算法平均周转时间平均带权周转时间先来先服务FCFS短作业优先SJF高优先权算法FPF高响应比优先算法HRRN

操作系统 王道考研2019 第二章:进程管理 -- 调度算法:适用于早期的批处理系统(先来先服务(FCFS)短作业优先(SJF)高响应比优先(HRRN))

使用fcfs,sjf和rr调度算法,并判断哪个算法的平均等待时

(王道408考研操作系统)第二章进程管理-第二节2:调度算法评价指标

FCFSSJFHRRN调度算法

处理器调度算法