关于作业调度算法

发布 2022-09-08 00:09:28 阅读 1517

在《计算机操作系统》教材中,介绍了作业调度算法和进程调度算法。其中作业调度算法主要有先来先服务法fcfs、短作业优先法sjf、最高响应比优先法hrn、定时轮转法和优先数法。在进程调度算法中主要介绍了先来先服务法fcfs、轮转法rr、多级反馈轮转法和优先数法。

需要指出的是:(1)在作业调度和进程调度中同时出现的算法,如fcfs、rr、优先数法,其使用原理是基本相同的;(2)作业调度算法和进程调度算法应严格与存储管理中的“请求淘汰换页算法”相区别,注意不要混淆。

调度算法举例:

例1】下表给出作业l,2,3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法,试问作业调度次序和平均周转时间各为多少?(时间单位:小时,以十进制进行计算。)

分析解这样的题关键是要根据系统采用的调度算法,弄清系统中各道作业随时间的推进情况。我们用一个作业执行时间图来形象地表示作业的执**况,帮助我们理解此题。

采用先来先服务调度算法,是按照作业提交的先后次序挑选作业,先进入的作业优先被挑选。然后按照“排队买票”的办法,依次选择作业。其作业执行时间图如下:

采用短作业优先调度算法,作业调度时根据作业的运行时间,优先选择计算时间短且资源能得满足的作业。其作业执行时间图如下:

由于作业1,2,3是依次到来的,所以当开始时系统中只有作业1,于是作业1先被选中。在8.0时刻,作业1运行完成,这时系统中有两道作业在等待调度,作业2和作业3,按照短作业优先调度算法,作业3只要运行1个时间单位,而作业2要运行4个时间单位,于是作业3被优先选中,所以作业3先运行。

待作业3运行完毕,最后运行作业2。作业调度的次序是1,3,2。

另外,要记住以下公式:

作业i的周转时间ti=作业完成时间-作业提交时间。

系统中n个作业的平均周转时间,其中ti为作业i的周转时间。

解:采用先来先服务调度策略,则调度次序为l。

作业号提交时间运行时间开始时间完成时间周转时间。

平均周转时间t=(8+11.6+12)/3=10.53

采用短作业优先调度策略,则调度次序为l。

作业号提交时间运行时间开始时间完成时间周转时间。

平均周转时间t=(8+8+12.6)/3=9.53

思考题1请同学们判断这句话:作业一旦被作业调度程序选中,即占有了cpu。(

提示:需要清楚作业调度和进程调度的区别。

例2】在一个单道的程序设计系统中,有3个作业j1、j2、j3,它们到达输入井的时间分别为:30,它们需要执行的时间分别为1.5小时、0.

4小时、1小时。系统在10:00按响应比高者优先算法对它们进行调度,请回答:

1)作业被选中执行的次序是什么?

2)三个作业被选中时的响应比分别是多少?

分析响应比=作业周转时间/作业运行时间。

1+作业等待时间/作业运行时间。

系统在10:00,计算作业的响应比:

以j1为例,它的作业计算时间是1.5小时,即90分钟;j1从8:50到达输入井,在10:

00时刻,j1的等待时间为70分钟,因此作业j1的响应比为:1+70分钟/90分钟=1.77

同理,j2:1+60分钟/24分钟=3.5 j3:1+30分钟/60分钟=1.5

因此按照响应比高者优先算法,优先调度j2。

在10:24,j2完成。这时计算j1、j3的响应比:

j1:1+(70+24)分钟/90分钟=2.04 j3:1+(30+24)分钟/60分钟=1.9

按照响应比高者优先算法,优先调度j1。

在11:54,j1完成,系统调度j3,j3的响应比为1+(30+24+90)分钟/60分钟=3.4 因此,作业被选中执行的次序是j2、j1、j3。

三个作业被选中时的响应比分别是:j1,2.04;j2,3.5;j3,3.4。

解:1)作业被选中执行的次序是j2、j1、j3。

2)三个作业被选中时的响应比分别是:j1,1.04;j2,2.5;j3,2.4。

思考题2某作业的提交时间为10:30,需要运行的时间为1小时,假设11:00开始调度,它的响应比是。

例3】设有进程a、b、c、d依次进入就绪队列(相隔一个时间单位),它们的优先级(优先数大的优先级较高)如下表所示:

试问采用“先来先服务”、“静态优先数法”调度算法(注:优先数大的优先级高),选中进程的执行次序。

解:采用先来先服务调度算法,按照进程进入就绪队列的先后次序占有cpu,其执行次序是a-b-c-d。

采用静态优先数法,进程a最先就绪,在0时刻先占有cpu运行,随后1时刻进程b进入就绪队列,2时刻进程c进入就绪队列,3时刻进程d进入就绪队列。由于采用静态优先数法,不容许随时间的推移改变进程的优先级,所以当进程a运行结束时,系统的就绪队列中有b、c、d三个进程,而进程c优先级最高,于是选中c;这样分析下去,进程的执行次序是a-c-d-b。

思考题3时间片轮转调度算法是为了( )

a.多个终端都能得到系统的及时响应 b.先来先服务。

c.优先级高的进程先使用cpud.紧急事件优先处理。

参考解答。思考题1:错误。

作业被作业调度程序选中,说明作业处于运行状态,即该作业进入内存并以进程的形式存在于系统中,但属于该作业的进程可能处于运行、就绪和等待状态,只有处于运行状态的进程才能占有处理机,而其余两种状态的进程并不占有处理机。

作业调度和进程调度的区别:

一个作业从进入系统到最后完成,一般至少要经历两级调度:作业调度和进程调度。

作业调度是宏观上的高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。

进程调度是微观上的低级调度,它的主要功能是根据一定的算法将cpu分派给就绪队列中的一个进程。一般的操作系统都必须有进程调度。

可见在多道系统中,作业调度与进程调度是相互配合来实现多道作业的并行执行的。两者的关系可用下图表示。

思考题2:1.5(注:作业等待0.5小时,运行1小时,响应比=1+0.5/1=1.5)

思考题3:a

作业调度算法 先来先服务算法,短作业算法

操作系统 实验报告。题目 作业调度算法。班级 网络工程。姓名 朱锦涛。学号 e31314037 一 实验目的。用 实现页面调度算法,即先来先服务 fcfs 调度算法。短作业优先算法 高响应比优先调度算法。通过 的具体实现,加深对算法的核心的理解。二 实验原理。1.先来先服务 fcfs 调度算法。fc...

作业调度算法 先来先服务算法,短作业算法

操作系统 实验报告。题目 作业调度算法。班级 网络工程。姓名 朱锦涛。学号 e31314037 一 实验目的。用 实现页面调度算法,即先来先服务 fcfs 调度算法。短作业优先算法 高响应比优先调度算法。通过 的具体实现,加深对算法的核心的理解。二 实验原理。1.先来先服务 fcfs 调度算法。fc...

算法与数据结构课程设计进程调度算法

第二题 进程调度。一 实验目的。多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二 实验要求 1 要求学生设计并实现模拟进程调度的算法 时间片轮转及先来先服务。2 理解...