作业调度算法总结

在典型的设计中,一个任务有以下三种状态:
正在运行(Running,正在CPU中执行)、待命(Ready,等待执行)、阻塞(Blocked,任务暂停,等待一个事件的发生,例如接收一组数据)
由于CPU在某个时间只能执行一个任务,大部分任务,在大部分时间,处于阻塞或待命状态。可能会有大量项目在待命列表里等待执行,这取决于系统所需的任务数量以及调度器的类型。
一、作业(job)的概念

(1) 用户角度

我们把一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。下面过程可以认为是作业的一个例子。 

 编辑输入——> 编 译——> 链 接——> 执 行——> 输 出                     

(2) 系统角度

从计算机系统的角度看,作业是一个比程序更广的概念,它由程序、数据和作业说明书三部分组成。

系统通过作业说明书控制文件形式的程序和数据,使之操作和执行。在批处理系统中,作业是抢占内存的基本单位,也就是说,批处理系统是以作业为单位把程序和数据调入内存以便执行的。


二、作业调度算法分类
1. 先来先服务(first come first serve,FCFS)
按作业进入输入井的先后次序安排。优点是实现简单,用先进先出(first input first output,FIFO)队列顺序工作,对相同的或均衡的作业较为合理,缺点是不利于运行时间短的作业。 
2. 最短作业优先法(shortest job fist,SJF)
短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。对预计执行时间短的作业(进程)优先分派处理机
最短作业优先法也就是选实际运行时间小的优先,也就是只考虑运行时间。优点是短作业得到了优先执行,提高了系统的效率。缺点是当作业不断进入时,长的作业有可能长时间排不上队
3.最高响应比优先法(highest response-ratio next, HRN)
最高响应比优先法(HRN,Highest Response_ratio Next)是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
响应比R定义如下: R =(W+T)/T = 1+W/T
其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W / T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。
     4. 定时轮转法

轮转法(Round Robin)是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。

按时间片轮转,可分为短时间的固定时间片(如UNIX 操作系统时间片为几毫秒至几十毫秒)和长时间的不固定时间

片(如:Windows操作系统的抢占式多任务方式)。

5.优先级法

按优先数排队次序工作。分静态和动态:静态是在排队前计算优先数,动态是在调度过程中计算优先数。又可分为用户给定优先数(反映用户要求)和系统给定的优先数,例如,系统给定前台和后台(比如批处理的作业)工作的优先级,一般前台(与用户直接交互的作业)优先。

6.多级反馈队列列算法

多级反馈队列算法(Round Robin with Multiple Feedback)是轮转算法和优先级算法的综合和发展。

设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。
新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按“时间片轮转”算法调度直到完成。
仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被抢先的进程投入原队列的末尾。
例题:
既考虑作业等待时间,又考虑作业执行时间的调度算法是()
响应比高者优先
短作业优先
优先级调度
多级反馈队列调度
解答:A
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值