调度算法详解


调度算法详解

补充知识:进程与作业的区别
区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。
关系:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
.
用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。

在这里插入图片描述

适合早期批处理系统的算法

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

在这里插入图片描述

例题:
在这里插入图片描述

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

在这里插入图片描述

例题:

在这里插入图片描述

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


注意几个小细节:
1、如果题目中未特别说明,所提到的“短作业/进程优先算法”默认是非抢占式的

2、很多书上都会说“SJF调度算法的平均等待时间、平均周转时间最少”。严格来说,这个表述是错误的,不严谨的。
之前的例子表明,最短剩余时间优先算法得到的平均等待时间、平均周转时间还要更少。
应该加上一个条件“在所有进程同时可运行时,采用SJF调度算法的平均等待时间、平均周转时间最少;
或者说“在所有进程都几乎同时到达时,采用SJF调度算法的平均等待时间、平均周转时间最少”

如果不加上述前提条件,则应该说“抢占式的短作业/进程优先调度算法(最短剩余时间优先,SRNT算法)的平均等待时间、平均周转时间最少”

3、虽然严格来说,SJF的平均等待时间、平均周转时间并不一定最少,但相比于其他算法(如FCFS,SJF依然可以获得较少的平均等待时间、平均周转时间)

4、如果选择题中遇到“SJF算法的平均等待时间、平均周转时间最少”的选项,那最好判断其他选项是不是有很明显的错误,如果没有更合适的选项,那也应该选择该选项

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

在这里插入图片描述
例题:
例题

适用于交互式系统的算法

时间片轮转(RR, Round- Robin)

在这里插入图片描述
例题

例题1部分1

例题1部分2

例题1部分3


例题2

优先级调度算法

在这里插入图片描述
补充:
补充知识部分

例题:

非抢占式

抢占式

多级反馈队列调度算法

在这里插入图片描述

例题:
例题

总结

在这里插入图片描述

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

在这里插入图片描述

注:比起早期的批处理操作系统来说,由于计算机造价大幅降低,因此之后出现的交互式操作系统(包括分时操作系统、实时操作系统等)更注重系统的响应时间、公平性、平衡性等指标。而这几种算法恰好也能较好地满足交互式系统的需求。因此这三种算法适合用于交互式系统。(比如UNX使用的就是多级反馈队列调度算法)


文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录