收藏 分享(赏)

课件操作系统处理机调度.ppt

上传人:buyk185 文档编号:8024612 上传时间:2019-06-04 格式:PPT 页数:64 大小:936.50KB
下载 相关 举报
课件操作系统处理机调度.ppt_第1页
第1页 / 共64页
课件操作系统处理机调度.ppt_第2页
第2页 / 共64页
课件操作系统处理机调度.ppt_第3页
第3页 / 共64页
课件操作系统处理机调度.ppt_第4页
第4页 / 共64页
课件操作系统处理机调度.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、第三章 处理机调度与死锁,王培崇,本章授课目的,使学生理解和掌握处理机调度和死锁的基本概念, 掌握常用的处理机调度算法和预防、避免死锁的方法。,3.1 处理机调度的层次,3.1.1 高级、中级和低级调度,1. 高级调度(High Scheduling)即 作业调度,调度作业进入内存,并为其分配必要的资源。考虑如下两点:1) 接纳多少个作业 :主要考虑内存大小、执行效率系统吞吐量等因素。2) 接纳哪些作业 :取决于具体的调度算法。,(2) 作业步(Job Step)。每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果,把其中的每一个加工步骤称为一个作业步,各作业步之间存在着相

2、互联系,上一个作业步的输出作为下一个作业步的输入。一个典型的作业可分成三个作业步: “编译”作业步; “连结装配”作业步; “运行”作业步; (3) 作业流。若干个作业进入系统后,被依次存放在外存上,这便形成了输入的作业流;在操作系统的控制下,逐个作业进行处理,于是便形成了处理作业流。,2作业控制块JCB(Job Control Block)系统感知作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。在JCB中通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU 繁忙型、I/O 繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求

3、(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。,JCB的建立、调度、撤销: 作业进入系统时,系统便为每个作业建立一个JCB,根据作业类型将它插入相应的后备队列中。作业调度程序依据一定的调度算法来调度它们,被调度到的作业将会装入内存。当一个作业执行结束进入完成状态时,系统负责回收分配给它的资源,撤消它的作业控制块。,2. 低级调度(Low Level Scheduling) :进程调度,也称微观调度,从处理机资源分配的角度来看,即占有CPU来运行。处理机需要经常选择就绪进程或线程进入运行状态。低级调度的时间尺

4、度通常是毫秒级的。由于低级调度算法的频繁使用,要求在实现时做到高效。,低级调度的主要功能 (1) 保存处理机的现场信息。(2) 按某种算法选取进程。如优先数算法、轮转法等,从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。 (3) 把处理器分配给进程。,进程调度中的三个基本机制(1) 排队器。事先将系统中所有的就绪进程按照一定的方式排成一个或多个队列,以便调度程序能最快地找到它。(2) 分派器(分派程序)。分派器把由进程调度程序所选定的进程,从就绪队列中取出该进程,然后进行上下文切换,将处理机分配给它 。(3) 上下文切换机制。当对处理机进行切换时,会发生两对上下文切换

5、操作。,低级(进程)调度方式:,1) 非抢占方式(Non-preemptive Mode) 在下面情况下发生: 正在执行的进程执行完毕, 或因发生某事件而不能再继续执行; 执行中的进程因提出I/O请求而暂停执行; 在进程通信或同步过程中执行了某种原语操作,显然,在要求比较严格的实时系统中,不宜采用这种调度方式。,2) 抢占方式(Preemptive Mode),抢占的原则有:,优先权原则。 (2) 短作业(进程)优先原则。 (3) 时间片原则。,大多数实时系统会采用这种调度方式。,3. 中级调度(Intermediate-Level Scheduling),中级调度又称中程调度(Medium-

6、Term Scheduling)。 主要目的:是为了提高内存利用率和系统吞吐量。涉及进程在内外存间的交换,从存储器资源管理的角度来看,把进程的部分或全部换出到外存上,可为当前运行进程的执行提供所需内存空间,将当前进程所需部分换入到内存。如果资源允许后,决定哪个外存被挂起的进程被调度进入。,3.2 调度队列模型和调度准则,3.2.1 调度队列模型1仅有进程调度的调度队列模型(1)在分时系统中,仅仅设有进程调度。(2)用户键入的命令和数据都直接送入内存。对于命令,是由OS为之建立一个进程。(3)系统可以把处于就绪状态的进程组织成栈、树或一个无序链表。例如:就绪进程组织成FIFO队列形式。每当OS创

7、建一个新进程时,便将它挂在就绪队列的末尾,然后按时间片轮转方式运行。,进程执行时现的三种情况:(1) 任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态;(2) 任务在本次分得的时间片内尚未完成,OS便将该任务再放入就绪队列的末尾;(3) 在执行期间,进程因为某事件而被阻塞后,被OS放入阻塞队列。图3-1示出了仅具有进程调度的调度队列模型。,图 3 - 1 仅具有进程调度的调度队列模型,2具有高级和低级调度的调度队列模型(1)在批处理系统中,既要进程调度,而且还有作业调度;(2)作业调度算法负责从外存的后备队列中选择一批作业调入内存,并为它们建立进程,送入就绪队列;(3)进程调度

8、按照一定的进程调度算法选择一个进程,把处理机分配给该进程。图3-2示出了具有高、低两级调度的调度队列模型。该模型与上一模型的主要区别在于如下两个方面。,2. 具有高级和低级调度的调度队列模型,图 3-2 具有高、低两级调度的调度队列模型,就绪队列的形式。批处理中,最常用的调度算法是优先级算法。高优先级的作业排在队列的最前面。(2) 设置多个阻塞队列。对于小型计算机系统也可以只设置一个阻塞队列,但是如果是较复杂的系统,设置多个阻塞队列较好。,图 3-2 示出了具有高、低两级调度的调度队列模型。该模型与图3-1的模型主要区别在于如下两个方面。,3同时具有三级调度的调度队列模型设置有中级调度的系统:

9、进程的就绪状态分为内存就绪(表示进程在内存中就绪)和外存就绪(进程在外存中就绪)。阻塞状态进一步分成内存阻塞和外存阻塞两种状态。在中级调度的作用下,又可使外存就绪转为内存就绪。图3-3示出了具有三级调度的调度队列模型。,图 3-3 具有三级调度时的调度队列模型,3.2.2 选择调度方式和调度算法的若干准则,1. 面向用户的准则,(1) 周转时间短。,可把平均周转时间描述为:,作业的周转时间T与系统为它提供服务的时间TS之比,即W=T/TS,称为带权周转时间,而平均带权周转时间则可表示为:,(2) 响应时间快。 (3) 截止时间的保证。 (4) 优先权准则。 总的原则:具有公平性,但是可以特事特

10、办。,2. 面向系统的准则,系统吞吐量高。 在单位时间内系统完成的作业数目。 (2) 处理机利用率高。 大中型机追求的目标,对于微机以及实时系统则较少 考虑。 (3) 各类资源的平衡利用。,3.3 调 度 算 法,3.3.1 先来先服务和短作业(进程)优先调度算法,1. 先来先服务调度算法,2. 短作业(进程)优先调度算法,它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法:是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。短进程优先(SPF)调度算法:从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件

11、而被阻塞放弃处理机时,再重新调度。,图 3-4 FCFS和SJF调度算法的性能,SJ(P)F调度算法也存在不容忽视的缺点:(1) 该算法对长作业不利。(2) 该算法完全未考虑作业的紧迫程度,不能保证紧迫性作业(进程)会被及时处理。(3) 由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。,3.3.2 高优先权优先调度算法,1. 优先权调度算法的类型,非抢占式优先权算法(Non-preemptive),某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去。,2) 抢占式优先权

12、调度算法(Preemptive)当有比正在运行的进程优先级更高的进程就绪时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用这种抢占式的优先权调度算法,能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中, 以及对性能要求较高的批处理和分时系统中。,2. 优先权的类型,1) 静态优先权静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的。,确定进程优先权的依据有如下三个方面: 进程类型。 (2) 进程对资源的需求。 (3) 用户要求。 静态优先权法简单易行,系统开销小,但不够精确, 很可能出现优先权低的作业

13、(进程)长期没有被调度的情况。 因此,仅在要求不高的系统中才使用静态优先权。,2) 动态优先权在进程创建时创立一个优先数,但在其生命周期内优先数可以动态变化。如等待时间长优先数可改变。可以防止某个进程长时间占用处理机。,3. 高响应比优先调度算法,优先权的变化规律可描述为:,由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为:,(1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。(2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。(3) 对

14、于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高, 从而也可获得处理机。,该调度算法的特点:,3.3.3 基于时间片的轮转调度算法,1. 时间片轮转法 (RRRound Robin)把CPU划分成若干时间片,并且按顺序赋给就绪队列中的每一个进程,进程轮流占有CPU,当时间片用完时,即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾。同时系统选择另一个进程运行。时间片可以分为几十ms到几百ms不等。(皇帝轮流做,今年到我家),例子: 图3-5示出了时间片分别为q=1和q=4时,A、B、C、D、E五个进程的运行情况;图3-6为q=1和

15、q=4时各进程的平均周转时间和带权平均周转时间。图中的RR(Round Robin)表示轮转调度算法。,图3-5 q=1和q=4时的进程运行情况,图3-6 q=1和q=4时进程的周转时间,2. 多级反馈队列调度算法,算法特点: (1)设置多个就绪队列,并为各个队列赋予不同的优先级。 第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。(2)该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。,(3)最后一级采用时间片轮转,其他队列采用先进先出; (4)系统从第一级调度,当第一级为空时,系统转向第二个队列,。(5)当运行进

16、程用完一个时间片,放弃CPU时,则进入下一级队列等待调度;如果进程处于等待状态重新被唤醒时,进入原来的就绪队列;(6)当进程第一次就绪时,进入第一级队列。,图 3-5 多级反馈队列调度算法,就绪队列,1,就绪队列,2,就绪队列,3,就绪队列,n,S,1,S,2,S,3,至,CPU,至,CPU,至,CPU,至,CPU,(时间片:,S,1,S,2,S,3,),3. 多级反馈队列调度算法的性能,(1)终端型用户:由于主要是短的交互式作业,一般会保证在一级调度内完成,会令用户满意。 (2)短批处理作业:一般会在1、2级内得到处理; (3)长批处理作业:在此调度算法中肯定会被轮转调度得到执行,不会担心长

17、时间得不到相应。,3.4 实 时 调 度,3.4.1 实现实时调度的基本条件,1. 提供必要的信息,就绪时间。 (2) 开始截止时间和完成截止时间。 (3) 处理时间。 (4) 资源要求。 (5) 优先级。,2. 系统处理能力强,在实时系统中,通常都有着多个实时任务。处理机要保证在特定的时间内使作业得到调度。如下:假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件:,假如系统中有6个硬实时任务,它们的周期时间都是 50 ms,而每次的处理时间为 10 ms,则不难算出,此时是不能满足上式的,因而系统是不可调度的。解决的

18、方法是提高系统的处理能力,其途径有二:其一仍是采用单处理机系统, 但须增强其处理能力, 以显著地减少对每一个任务的处理时间;其二是采用多处理机系统。假定系统中的处理机数为N,则应将上述的限制条件改为:,注意:上述考虑并没有计算消息传递,任务切换等开销。,3. 采用抢占式调度机制,当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,这样便可满足该硬实时任务对截止时间的要求。但这种调度机制比较复杂。这种机制采用比较广泛,因为很难对任务的开始和截止进行预先的估计,所以非抢占式调度机制一般很少采用。,4. 具有快速切换机制,该机制应具有如下两方面的能力:(1) 对外部中

19、断的快速响应能力。为使在紧迫的外部事件请求中断时系统能及时响应,要求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短, 以免耽误时机(其它紧迫任务)。(2) 快速的任务分派能力。在完成任务调度后,便应进行任务切换。为了提高分派程序进行任务切换时的速度, 应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销。,3.4.2 实时调度算法的分类,1. 非抢占式调度算法,非抢占式轮转调度算法。系统选择队列队首的任务运行,任务完成后,将其挂在队尾等待下次调度。 主要用于实时要求不高的系统中。 (2) 非抢占式优先调度算法。为要求响应的任务设置较高的优先级 ,并将其挂在队首,等待当前任务

20、执行完毕后进入执行。,2. 抢占式调度算法,基于时钟中断的抢占式优先权调度算法(有时钟中断才切换) (2) 立即抢占的优先权调度算法。,图 3-6 实时进程调度比较,3.3.3 常用的几种实时调度算法,1. 最早截止时间优先即EDF(Earliest Deadline First)算法,算法思想是:当一个事件发生时,对应的进程就被加入就绪进程队列。该就绪队列按照截止期限排序,对于一个周期性事件,其截止期限即为下一次发生的时间。该调度算法首先运行队首进程,即截止时间最近的那个进程。,1) 非抢占式调度方式用于非周期实时任务图3-7示出了将该算法用于非抢占调度方式之例。系统首先调度任务1执行,在任

21、务1执行期间,任务2、3又先后到达。由于任务3的开始截止时间早于任务2,故系统在任务1后将调度任务3执行。在此期间又到达作业4,其开始截止时间仍是早于任务2的,故在任务3执行完后,系统又调度任务4执行,最后才调度任务2执行。,图 3-7 EDF算法用于非抢占调度方式,2) 抢占式调度方式用于周期实时任务图3-10示出了将最早截止时间优先算法用于抢占调度方式之例。任务A的周期时间为20 ms,每个周期的处理时间为10 ms;任务B的周期时间为50 ms,每个周期的处理时间为25 ms。图中的第一行示出了两个任务的到达时间、最后期限和执行时间图。其中任务A的到达时间为0、20、40、;任务A的最后

22、期限为20、40、60、;任务B的到达时间为0、50、100、;任务B的最后期限为50、100、150、(注:单位皆为ms)。,图3-10 最早截止时间优先算法用于抢占调度方式之例,为了说明通常的优先级调度不能适用于实时系统,该图特增加了第二和第三行。第二行中假定任务A具有较高的优先级,所以在t=0 ms时,先调度A1执行,在A1完成后(t = 10 ms)才调度B1执行;在t = 20 ms时,调度A2执行;在t = 30 ms时,A2完成,又调度B1执行;在t = 40 ms时,调度A3执行;在t = 50 ms时,虽然A3已完成,但B1已错过了它的最后期限,这说明了利用通常的优先级调度已

23、经失败。第三行与第二行类似,只是假定任务B具有较高的优先级。,第四行是采用最早截止时间优先算法的时间图。在t = 0时,A1和B1同时到达,由于A1的截止时间比B1早,故调度A1执行;在t = 10时,A1完成,又调度B1执行;在t = 20时,A2到达,由于A2的截止时间比B2早,B1被中断而调度A2执行;在t = 30时,A2完成,又重新调度B1执行;在t = 40时,A3又到达,但B1的截止时间要比A3早,仍应让B1继续执行直到完成(t = 45),然后再调度A3执行;在t = 55时,A3完成,又调度B2执行。在该例中利用最早截止时间优先算法可以满足系统的要求。,2. 最低松弛度优先即

24、LLF(Least Laxity First)算法,该算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高, 以使之优先执行。如下例:松弛度截止时间(就绪时间计算时间) 松弛度越小说明越紧迫,优先级会越高,就绪后应该尽快执行。理解:在保证进程被调度执行的情况下,最晚应该在什么时间得到调度,才能够保证顺利完成任务。中间可以有多大的宽裕度。,例子:在一个实时系统中,有两个周期性的进程A和B,任务A要求每20毫秒执行一次,执行时间为10毫秒;任务B只要求每50毫秒执行一次,执行时间为25毫秒。请计算A、B进程的每次的调度时间。,图 3-8 A和B任

25、务每次必须完成的时间,依照此图中进程AB必须完成的时间点,向前推算什么时候队各进程进行调度。(允许抢占cpu),在刚开始时(t1=0),A1必须在20ms时完成,而它本身运行又需 10 ms,可算出A1的松弛度为10ms;B1必须在50ms时完成, 而它本身运行就需25 ms,可算出B1的松弛度为25 ms,故调度程序应先调度A1执行。在t2=10 ms时,A2的松弛度可按下式算出: A2的松弛度=必须完成时间-其本身的运行时间-当前时间 =40 ms-10 ms-10 ms=20 ms,B1的松弛度为15ms,故调度程序应选择B1运行。t3=30 ms,A2的松弛度已减为0(即40-10-3

26、0),而B1的松弛度为15 ms(即50-5-30),于是调度程序应抢占B1的处理机而调度A2运行。t4=40 ms时,A3的松弛度为10 ms(即60-10-40),而B1的松弛度仅为5 ms(即50-5-40),故又应重新调度B1执行。在t5=45 ms时,B1执行完成,而此时A3的松弛度已减为5 ms(即60-10-45),而B2的松弛度为30 ms(即100-25-45),于是又应调度A3执行。,t6=55ms,任务A尚未进入第4周期,而任务B已进入第2周期,故再调度B2执行。t7=70 ms,A4的松弛度已减至0 ms(即80-10-70),而B2的松弛度为20 ms(即100-10-70),故此时调度又应抢占B2的处理机而调度A4执行。,图 3-9 利用ELLF算法进行调度的情况,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报