操作系统,处理机调度与死锁教案_第1页
操作系统,处理机调度与死锁教案_第2页
操作系统,处理机调度与死锁教案_第3页
操作系统,处理机调度与死锁教案_第4页
操作系统,处理机调度与死锁教案_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Page12023/2/6第三章处理机调度与死锁操作系统Page22023/2/6第三章处理机调度与死锁重点掌握进程调度算法,各适用于何种情况

理解常用的几种实时调度算法

理解产生死锁的原因

掌握银行家算法避免死锁难点多道程序设计中的各种调度算法

响应比高者优先调度算法的计算过程

银行家算法

Page32023/2/6第三章处理机调度与死锁知识点处理机调度及调度算法多处理机环境下的进程(线程)调度方式产生死锁的原因和必要条件预防死锁的方法,死锁的检测与解除银行家算法Page42023/2/6第三章处理机调度与死锁处理机是计算机系统中的重要资源在多道程序环境下,进程数目通常多于处理机的数目系统必须按一定方法动态地把处理机分配给就绪队列中的一个进程处理机利用率和系统性能(吞吐量、响应时间)在很大程度上取决于处理机调度分配处理机的任务是由处理机调度程序完成的。它是操作系统设计的中心问题之一。WHAT:按什么原则分配CPU—进程调度算法WHEN:何时分配CPU—进程调度的时机

HOW:如何分配CPU—CPU调度过程(进程的上下文切换)Page52023/2/6第三章处理机调度与死锁

处理机调度的层次和调度算法的目标作业与作业调度进程调度实时调度死锁概述预防死锁避免死锁死锁的检测与解除Page62023/2/6处理机调度的基本概念作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等作业的状态:一个作业进入系统到运行结束,一般需要经历收容、运行、完成三个阶段,与之相对应的是作业的三种状态后备状态运行状态完成状态Page72023/2/6运行状态处理机调度的基本概念后备状态完成状态就绪阻塞执行I/O完成I/O请求时间片完作业注册作业调度进程调度终止作业作业状态间转换Page82023/2/63.1.1处理机调度的层次1.高级调度(HighScheduling)2.低级调度(LowLevelScheduling)3.中级调度(Intermediate-LevelScheduling)处理机调度的层次和调度算法的目标

Page92023/2/6高级、中级和低级调度高级调度(HighScheduling)

作业调度或长程调度(Long-TermScheduling)主要任务是按一定的原则对外存上处于后备状态的作业进行选择,给选中的作业分配内存、输入/输出设备等必要的资源,并建立相应的进程,放入就绪队列,以使该作业的进程获得竞争处理机的权利也称为接纳调度(AdmissionScheduling)高级调度的时间尺度通常是分钟、小时或天Page102023/2/6高级、中级和低级调度在每次作业调度时,须决定:接纳多少个作业即允许多少个作业同时在内存中运行,取决于多道程序度(DegreeofMultiprogramming)作业太多服务质量下降作业太少资源利用率低接纳哪些作业

取决于作业调度算法先来先服务短作业优先作业优先权调度响应比调度→周转时间太长→系统吞吐量太低

适当的折衷多道程序度:即允许多少个作业同时在内存中运行。周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。吞吐量:是指在单位时间内系统所完成的作业数。Page112023/2/6高级、中级和低级调度低级调度

进程调度或短程调度(Short-TermScheduling)主要任务是按照某种策略和方法选取一个处于就绪状态的进程,将处理机分配给它常见的低级调度有非抢占式和抢占式两种低级调度的时间尺度通常是毫秒级的。由于低级调度算法的频繁使用,要求在实现时做到高效Page122023/2/6进程调度的任务

进程调度的任务是控制、协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程Page132023/2/6进程调度方式非抢占方式(Non-preemptiveMode)抢占方式(PreemptiveMode)Page142023/2/6进程调度方式非抢占方式(Non-preemptiveMode)

当某一进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,该进程仍继续执行,直到其完成或发生某种事件而进入完成或阻塞状态时,才把处理机分配给更为重要或紧迫的进程引起进程调度的因素正在执行的进程执行完毕,或因发生某事件而不能再继续执行执行中的进程因提出I/O请求而暂停执行;在进程通信或同步过程中执行了某种原语操作,如wait、Block、Wakeup原语优点:算法简单,系统开销小缺点:紧急任务不能及时响应;短进程到达要等待长进程运行结束Page152023/2/6进程调度方式抢占方式(PreemptiveMode)

当某一进程正在处理机上执行时,若有某个更为重要或紧迫的进程进入就绪队列,则立即暂停正在执行的进程,将处理机分配给这个更为重要或紧迫的进程抢占式调度主要有以下原则优先权原则允许高优先权的新到进程抢占当前进程的处理机短作业(进程)优先原则允许执行时间短的新到进程抢占当前进程的处理机时间片原则时间片用完后停止执行,重新进行调度,适用于分时系统

优点:适于时间要求严格的实时系统缺点:调度算法复杂,系统开销大Page162023/2/6高级、中级和低级调度中级调度(Intermediate-LevelScheduling)又称为内存调度引入目的是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待主要任务是按照给定的原则和策略,将处于外存对换区中的重又具备运行条件的就绪进程调入内存,或将处于内存就绪状态或内存阻塞状态的进程交换到外存对换区Page172023/2/63.1.2处理机调度算法的目标处理机调度算法的共同目标资源利用率为提高系统的资源利用率,应使系统中的处理机和其它所有资源尽可能地保持忙碌状态。CPU的利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)公平性。指应使诸进程都获得合理的CPU时间,不会发生进程饥饿现象。对相同类型的进程应获得相同的服务,对于不同类型的进程,由于其紧急程度或重要性的不同,则应提供不同的服务。平衡性。尽可能保持系统资源使用的平衡性,使内存、外存和I/O设备的利用率高策略强制执行。对所制订的策略其中包括安全策略,只要需要,必须予以准确地执行,即使会造成某些工作的延迟也要执行。Page182023/2/6(1)平均周转时间短。

(2)系统吞吐量高。(3)处理机利用率高。3.1.2处理机调度算法的目标批处理系统的目标Page192023/2/6周转时间是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。由四部分组成:作业在外存后备队列上等待(作业)调度的时间进程在就绪队列上等待进程调度的时间进程在CPU上执行的时间进程等待I/O操作完成的时间。后3项是在一个作业的整个处理过程中,可能发生多次。3.1.2处理机调度算法的目标周转时间Page202023/2/6周转时间短平均周转时间带权周转时间:进程(或作业)的周转时间T与系统为它提供服务的时间TS之比,即W=T/TS。而平均带权周转时间则可表示为:3.1.2处理机调度算法的目标Page212023/2/6系统吞吐量高吞吐量指单位时间内系统所完成的作业数作业调度的方式和算法对吞吐量的大小有较大影响处理机利用率高

对于大、中型计算机,CPU价格十分昂贵,致使处理机的利用率成为衡量系统性能的十分重要的指标。而调度方式和算法对处理机的利用率起着十分重要的作用。如果单纯是为使处理机利用率高,应尽量多的选择计算量大的作业运行。这些要求之间存在一定的矛盾。3.1.2处理机调度算法的目标Page222023/2/63.1.2处理机调度算法的目标分时系统的目标响应时间快响应时间是指从用户通过键盘提交一个请求开始,直至系统中首次产生响应为止的时间包括三部分时间:一是请求信息从键盘输入开始,直到将其传送到处理机的时间;二是处理机对请求信息进行处理的时间;三是将所形成的响应信息回送到终端显示器的时间。均衡性用户对响应时间的要求并非完全相同。对较复杂任务的响应时间允许较长,而对简单任务的响应时间要短。均衡性是指系统响应时间的快慢应与用户所请求服务的复杂性相适应。Page232023/2/6实时系统的目标截止时间保证截止时间是指某任务必须开始执行的最迟时间或必须完成的最迟时间截止时间是实时系统中的重要指标可预测性。在实时系统中,可预测性显得非常重要。3.1.2处理机调度算法的目标Page242023/2/6选择调度方式和调度算法的若干准则各种系统主要目标周转时间短响应时间快截止时间保证批处理系统分时系统实时系统等待时间短优先权Page252023/2/6选择调度方式和调度算法的若干准则等待时间短等待时间是在就绪队列中等待所花的时间调度算法并不影响进程运行和执行I/O的时间量;只影响进程在就绪队列中等待所花费的时间优先权准则在批处理、实时和分时系统中都可以选择优先权准则,以便让紧急任务先处理有时还选择抢占式调度方式Page262023/2/6第三章处理机调度与死锁处理机调度的层次和调度算法的目标

作业与作业调度

进程调度实时调度死锁概述预防死锁避免死锁死锁的检测与解除Page272023/2/6作业与作业调度在OS中调度的实质是一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法问题提出如何制定分配策略:对不同的系统和系统目标,通常采用不同的算法,如短作业优先,时间片轮转等有些算法适用于作业调度,有些适用于进程调度,有些两者皆可3.2.1批处理系统中的作业1.作业和作业步

⑴作业:作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位,从外存调入内存的。

⑵作业步:在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果。我们把其中的每一个加工步骤称一个作业步,各作业步之间存在着相互联系,往往是上一个作业步的输出作为下一个作业步的输入。

2.作业控制块JCB

在多道批处理系统中,为每个作业设置了一个作业控制块JCB,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。在作业运行期间,系统就按照JCB中的信息,和作业说明书对作业进行控制。3.作业运行的三个阶段和三种状态作业从进入系统到运行结束,通常需要经历收容、运行和完成三个阶段。相应的作业也就有“后备状态”、“运行状态”和“完成状态”。

⑴收容阶段:操作员把用户提交的作业,通过某种输入方式或SPOOLing系统,输入到硬盘上,再为该作业建立JCB,并把它放入作业后备队列中,相应的,此时作业的状态为“后备状态”。

⑵运行阶段:当作业被作业调度选中后,便为它分配必要的资源和建立进程,并将它放入就绪队列。一个作业从第一次进入就绪状态开始,直到它运行结束前,在此期间都处于“运行状态”。⑶完成阶段:当作业运行完成、或发生异常情况而提前结束时,作业便进入完成阶段,相应的作业状态为“完成状态”。此时系统中的“终止作业”程序,将会回收已分配给该作业的作业控制块和所有资源,并将作业运行结果信息形成输出文件后输出。3.2.1批处理系统中的作业Page302023/2/63.2.1批处理系统中的作业SPOOLing(即外部设备联机并行操作),它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。spooling系统的三大组成部分:<1>.输入井和输出井<2>.输入缓冲和输出缓冲<3>.输入进程SPi和输出进程Spo例如:若有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给SPOOLING进程,而是在共享设备(磁盘)上的输出SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式存放于此。各进程的数据输出文件形成了一个输出队列,由输出SPOOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。

作业调度的主要任务

也称为接纳调度,根据JCB中的信息,检查系统中的资源,能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中,选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程,排在就绪队列上等待调度。因此,也把作业调度(AdmissionScheduling)。

★在每次执行作业调度时,都须做出以下两个决定

①接纳多少个作业取决于多道程序度,即允许多少个作业同时在内存中运行。

②接纳哪些作业取决于所采用的调度算法。3.2.2作业调度的主要任务Page322023/2/6先来先服务(FCFS)/先进先出(FIFO)调度算法按照作业/进程进入系统的先后次序进行调度,先进入系统者先调度;即启动等待时间最长的作业/进程是一种最简单的调度算法,即可用于作业调度,也可用于进程调度几个术语到达时间、服务时间、开始时间完成时间、等待时间周转时间:完成时间-到达时间带权周转时间:周转时间/服务时间①3.2.3先来先服务和短作业优先调度算法

Page332023/2/6先来先服务和短作业优先算法进程名到达时间服务时间开始时间完成时间周转时间带权周转时间平均04A13B25C32D44E044476先来先服务(先进先出):712101214111418141225.53.592.8AAAABBBCCCCCDDEEEE05101518tPage342023/2/6先来先服务和短作业优先算法

先来先服务(先进先出)优缺点

比较有利于长作业(进程),而不利于短作业(进程)有利于CPU繁忙型作业(进程),而不利于I/O繁忙型作业(进程)用于批处理系统,不适于分时系统Page352023/2/6先来先服务和短作业优先算法短作业(进程)优先调度算法SJ(P)F短作业(进程)优先调度算法SJ(P)F,以要求运行时间长短进行调度,即启动要求运行时间最短的作业可以分别用于作业调度和进程调度短作业优先(SJF)的调度算法,是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行;而短进程优先(SPF)调度算法,则是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度②Page362023/2/6先来先服务和短作业优先算法进程名到达时间服务时间开始时间完成时间周转时间带权周转时间平均04A13B25C32D44E0441短作业/短进程优先(SJF/SPF):4633/26988/391399/413181616/540/52.1AAAABBBCCCCCDDEEEE05101518tPage372023/2/6FCFS/SJF调度算法的性能先来先服务和短作业优先算法SJF能有效地降低作业的平均等待时间,提高系统吞吐量

作业调度情况算法进程名ABCDE平均到达时间01234服务时间43524FCFS完成时间47121418周转时间461011149带权周转时间1225.53.52.8SJF完成时间4918613周转时间4816398带权周转时间12.673.11.52.252.1SJF平均周转时间和平均带权周转时间明显改善Page382023/2/6先来先服务和短作业优先算法SJ(P)F调度算法也存在不容忽视的缺点对长作业不利。严重的是,若一长作业(进程)进入系统的后备队列(就绪队列),由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度——饥饿完全未考虑作业(进程)的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。2023/2/6391、在单道批处理系统中,有五个作业进入输入井的时间及需要执行的时间如下表所示,并约定当这五个作业全部进入输入井后立即进行调度,忽略调度的时间开销。要求:写出分别采用先来先服务和最短执行时间优先调度算法时的调度次序和作业平均周转时间。课堂练习作业号进入输入井时间需执行时间(分钟)开始执行时间结束执行时间周转时间(分钟)110∶0040

210∶1030

310∶2020

410∶3025

510∶4010

2023/2/640(1)先来先服务调度算法(FCFS)作业号进入输入井时间需执行时间(分钟)开始执行时间结束执行时间周转时间(分钟)110∶0040

210∶1030

310∶2020

410∶3025

510∶4010

2023/2/641(1)先来先服务调度算法(FCFS)作业号进入输入井时间需执行时间(分钟)开始执行时间结束执行时间周转时间(分钟)110∶004010:40

11:2080

210∶1030

11:2011:50

100

310∶2020

11:5012:10

110

410∶3025

12:1012:35

125

510∶4010

12:3512:45

125

调度次序:1-2-3-4-5平均周转时间为(80+100+110+125+125)/5=108分钟2023/2/642(2)短作业优先调度算法(SJF)作业号进入输入井时间需执行时间(分钟)开始执行时间结束执行时间周转时间(分钟)110∶0040

210∶1030

310∶2020

410∶3025

510∶4010

2023/2/643(2)短作业优先调度算法(SJF)作业号进入输入井时间需执行时间(分钟)开始执行时间结束执行时间周转时间(分钟)110∶0040

12:0512:45

165

210∶1030

11:3512:05

115

310∶2020

10:5011:10

50

410∶3025

11:1011:35

65

510∶401010:40

10:50

10调度次序:5-3-4-2-1平均周转时间为(165+115+50+65+10)/5=81分钟3.2.4优先级调度算法和高响应比优先调度算法1.优先级调度算法(priority-schedulingalgorithm)

基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据该优先级进行调度的。这样就可以保证紧迫性作业优先运行。

2.高响应比优先调度算法

高响应比优先调度算法则是既考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。

★高响应比优先算法的实现优先级的变化规律可描述为:由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先级又相当于响应比RP。据此,又可表示为:Page452023/2/6优先权调度算法的类型非抢占式优先权调度算法抢占式优先权调度算法③3.2.4优先级调度算法和高响应比优先调度算法Page462023/2/6高优先权优先(HPF,HighestPriorityFirst)调度算法优先权调度算法的类型(P92)非抢占式优先权调度算法特点:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成,或因发生某事件使该进程放弃处理机时,系统才将处理机重新分配给另一优先权最高的进程主要用于批处理系统中,也可用于某些对实时性要求不严的实时系统中Page472023/2/6高优先权优先(HPF—HighestPriorityFirst)调度算法优先权调度算法的类型抢占式优先权调度算法把处理机分配给优先权最高的进程,但在执行期间,只要出现另一个优先权更高的进程,则进程调度程序就立即停止当前进程的执行,并将处理机分配给新到的优先权最高的进程注意:只要系统中出现一个新的就绪进程,就进行优先权比较该调度算法,能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中Page482023/2/6高优先权优先调度算法优先权的类型(P94)静态优先权静态优先权在创建进程时确定,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,07或0255,又把该整数称为优先数确定进程静态优先权的依据进程类型:系统进程,用户进程进程对资源的需求用户要求静态优先权特点系统开销小、不够精确、一般用在要求不高的系统中问题:用户将优先权设的较高,对其他进程不利!!短进程优先对长进程不利!!Page492023/2/6高优先权优先调度算法动态优先权随进程的推进或随其等待时间的增加而改变,以获得更好的调度性能可规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高具有相同优先权初值的进程,则最先进入就绪队列,其将因其动态优先权变得最高而优先获得处理机,此即FCFS算法具有各不相同的优先权初值的就绪进程,则优先权初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率b下降,则可防止一个长作业长期地垄断处理机Page502023/2/6进程名到达时间服务时间静态优先权开始时间完成时间周转时间带权周转时间平均静态优先权,非抢占式(1为高优先权)高优先权优先调度算法04A413B225C332D544E1044148418111010/311161414/516181515/29.42.93考虑一下抢占式,情况如何?Page512023/2/6进程调度算法—优先权、抢占式其中,RQ为就绪队列指针,EP为运行队列指针。Page522023/2/6进程名到达时间服务时间静态优先权开始时间完成时间周转时间带权周转时间平均高优先权优先调度算法04A413B225C332D544E1016164484114318131111/516181515/29.83.14静态优先权,抢占式(1为高优先权)ABBBEEEECCCCCAAADD05101518tBAACDEACD练习作业到达时间运行时间优先级A082B141C264(高)Page532023/2/6假定在单CPU条件下有下列要执行的作业:(1)用一个执行时间图描述在采用非抢占优先级算法时执行这些作业的情况;

(2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?

(3)对于上述算法,各个作业的带权周转时间是多少?

平均带权周转时间是多少Page542023/2/6ACB01281418T任务执行任务到达ABC(2)平均周转时间:(8+12+17)/3=12.33(3)平均带权周转时间:(8/8+12/6+17/3)/3=2.22Page552023/2/6高优先权优先调度算法高响应比优先调度算法(HRF)是FCFS和SJF的结合,克服了两种算法的缺点调度策略:响应比最高的作业优先启动因等待时间+服务时间=该作业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为④Page562023/2/6高优先权优先调度算法对HRF的小结等待时间相同的作业,则要求服务的时间愈短,其优先权愈高,要求服务的时间相同的作业,则等待时间愈长,其优先权愈高,长作业,优先权随等待时间的增加而提高,其等待时间足够长时,其优先权便可升到很高,从而也可获得处理机是一种折衷,既照顾了短作业,又考虑了作业到达的先后次序,又不会使长作业长期得不到服务。缺点:要进行响应比计算,增加了系统开销——对短作业有利——是先来先服务——对长作业有利Page572023/2/6进程名到达时间服务时间响应比开始时间完成时间周转时间带权周转时间平均高优先权优先调度算法04A13B25C32D44E044114181414/447629141212/579638.42.38高响应比优先,非抢占式21.41.51231.752.42.25=当前时间-到达时间服务时间+服务时间练习Page582023/2/6假定在单CPU条件下有下列要执行的作业:(1)用一个执行时间图描述在采用响应比高者优先调度算法

执行这些作业的情况;(2)计算各作业的周转时间和平均周转时间。作业到达时间运行时间A08B14C26假设有三个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。单处理机系统采用短作业优先算法运行,则平均周转时间是(

)。Page592023/2/6Page602023/2/6第三章处理机调度与死锁处理机调度的层次和调度算法的目标

作业与作业调度进程调度实时调度死锁概述预防死锁避免死锁死锁的检测与解除3.3.1进程调度的任务、机制和方式

1.进程调度任务

①保存处理机的现场信息:在进行调度时首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等。

②按某种算法选取进程:调度程序按某种算法,从就绪队列中选取一个进程,将其状态改为运行状态,并准备把处理机分配给它。

③把处理器分配给进程:由分派程序把处理器分配给该进程。此时需要将选中进程的进程控制块内有关处理机现场的信息,装入处理器相应的各个寄存器中,把处理器的控制权交予该进程,让它从上次的断点处恢复运行。3.3.1进程调度的任务、机制和方式

2.进程调度机制

⑴排队器:事先将系统中的所有就绪进程,按照一定的策略,排成一个或多个队列。以便调度程序能最快地找到它。以后每当有一个进程转变为就绪状态时,排队器便将它插入到相应的就绪队列。⑵分派器:依据进程调度程序所选定的进程,将其从就绪队列中取出,然后进行进程间的上下文切换,将处理机分配给新选出的进程。⑶上下文切换器:在对处理机进行切换时,会发生:①第一对上下文切换时,OS将保存当前进程的上下文,装入分派程序的上下文,以便分派程序运行;②第二对上下文切换是移出分派程序的上下文,装入新选进程上下文。3.3.1进程调度的任务、机制和方式

3.进程调度方式

⑴非抢占方式一旦把处理机分配给某进程后,就一直让它运行下去,决不会因为时钟中断,或任何其它原因,去抢占该正在运行进程的处理机,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其它进程。采用这种方式时,可能引起进程调度的因素可归结为:①正在执行的进程运行完毕,或因发生某事件而使其无法再继续运行;②正在执行中的进程,因提出I/O请求而暂停执行;③在进程通信或同步过程中,执行了某种原语操作,如Block原语。

优点:是实现简单、系统开销小,适用于大多数的批处理系统。

缺点:但它不能用于分时系统和大多数实时系统。3.进程调度方式⑵抢占方式允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机,重新分配给另一进程。抢占方式能满足实时任务的需求。但抢占方式比较复杂,所需付出统开销也较大。

★“抢占”必须遵循的原则①优先权原则:允许优先级高的新到进程,抢占当前进程的处理机;②短进程优先原则:许新到的短进程,可以抢占当前长进程的处理机;③时间片原则:各进程按时间片轮转运行时,当正在执行的进程的一个时间片用完后,便停止该进程的执行而重新进行调度。3.3.2轮转调度算法1.轮转法的基本原理

系统将所有的就绪进程按FCFS策略,排成一个就绪队列。系统可设置每隔一定时间(如30ms),便产生一次中断,去激活进程调度程序进行调度,把CPU分配给队首进程,并令其执行一个时间片。当它运行完后,又把处理机分配给就绪队列中新的队首进程,也让它执行一个时间片。

2.进程切换时机

①若一个时间片尚未用完,正在运行的进程便已经完成,就立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首进程运行,并启动一个新的时间片。②在一个时间片用完时,此时计时器中断处理程序被激活。如果进程尚未运行完毕,调度程序把它送往就绪队列的末尾。

Page662023/2/6基于时间片的轮转调度算法简单的时间片轮转法(RR—RoundRobin)系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便停止该进程的执行,并将其放就绪队列尾;然后,再把处理机分配给就绪队列中新的队首时间片的大小从几ms到几百ms优点:公平。保证就绪队列中所有进程在一给定的时间内,均能获得一时间片的处理机执行时间缺点:紧迫任务响应慢。UNIX中采用:时间片+优先权⑤Page672023/2/6基于时间片的轮转调度算法进程名到达时间服务时间开始时间完成时间周转时间带权周转时间平均ABCDEABCDEABCEACEC05101518t04A03B05C02D04E012349121517181515/41212/31818/599/21717/414.24.02若到达时间为0、1、2、3、4,又如何?Page682023/2/6基于时间片的轮转调度算法进程名到达时间服务时间开始时间完成时间周转时间带权周转时间平均ABACBDAECBDAECECEC05101518t04A13B25C32D44E013571110121718123931616/5841313/411.63.293.3.2轮转调度算法3.时间片大小的确定在轮转算法中,时间片的大小,对系统性能有很大的影响。若选择很小的时间片,将有利于短作业,因为它能在该时间片内完成。但时间片小,意味着会频繁地执行进程调度,和进程上下文的切换,这无疑会增加系统的开销。若时间片选择得太长,且为使每个进程,都能在一个时间片内完成,RR算法便退化为FCFS算法,无法满足短作业和交互式用户的需求。一个较为可取的时间片大小是,略大于一次典型的交互所需要的时间,使大多数交互式进程,能在一个时间片内完成,从而可以获得很小的响应时间。3.时间片大小的确定3.时间片大小的确定下左图示出了时间片大小对响应时间的影响,其中图a是时间片略大于典型交互的时间,其中图b是时间片小于典型交互的时间。下右图示出了时间片分别为q=1和q=4时对平均周转时间的影响。Page712023/2/6基于时间片的轮转调度算法分时系统中常用时间片轮转法时间片选择问题固定时间片可变时间片时间片大小与时间片大小有关的因素系统响应时间就绪进程个数CPU能力

3.3.3优先级调度算法

1.优先级调度算法的类型把处理机分配给就绪队列中优先级最高的进程。

⑴非抢占式优先级调度算法:一旦把处理机分配给就绪队列中优先级最高的进程后,该进程便一直执行下去直至完成,或者因该进程发生某事件而放弃处理机时,系统方可将处理机重新分配给另一优先级最高的进程。

⑵抢占式优先级调度算法:把处理机分配给优先级最高的进程,使之执行。但在其执行期间,只要出现了另一个其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。

2.优先级的类型

⑴静态优先级:静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变。优先级是利用某一范围内的一个整数来表示的,例如0~255中的某一整数,又把该整数称为优先数。确定进程优先级大小的依据有如下三个:进程类型、进程对资源的需求、用户要求。

⑵动态优先级:动态优先级是指在创建进程之初,先赋予其一个优先级,然后其值随进程的推进,或等待时间的增加而改变,以便获得更好的调度性能。3.3.4多级队列调度算法

★算法思想

将系统中的进程就绪队列从一个拆分为若干个,将不同类型或性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级。3.3.5多级反馈队列调度算法

★算法思想将就绪队列分为N级,每个就绪队列分配给不同的时间片,队列级别越高,时间越长,级别越小,时间片越小,最后一级采用时间片轮转,其他队列采用先进先出;系统从第一级调度,当第一级为空时,系统转向第二个队列,当运行进程用完一个时间片,放弃CPU时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列。

★算法要点

*首先系统中设置多个就绪队列;*每个就绪队列分配给不同时间片,优先级高的为第一级队列,时间片最小,随着队列级别的降低,时间片加大;*各个队列按照先进先出调度算法;*一个新进程就绪后进入第一级队列;*进程由于等待而放弃CPU后,进入等待队列,一旦等待的事件发生,则回到原来的就绪队列;*当有一个优先级更高的进程就绪时,可以抢占CPU,被抢占进程回到原来一级就绪队列末尾;*当第一级队列空时,就去调度第二级队列,如此类推;*当时间片到后,进程放弃CPU,回到下一级队列。Page752023/2/6就绪队列1就绪队列2就绪队列3就绪队列nS1S2S3至CPU至CPU至CPU至CPU(时间片:S1<S2<S3)调度方式高低优先级时间片小大Sn按FIFO原则排队等待调度尚未完成转入第二队列的末尾,按FIFO原则等待调度采取按时间片轮转的方式运行因等待而放弃CPU后,进入阻塞队列,一旦等待的事件发生,则回到原来的就绪队列3.3.5多级反馈队列调度算法Page762023/2/6多级反馈队列调度算法的性能终端型作业用户终端型作业用户所提交的作业多属于交互型作业,通常较小,系统只要能使这些作业在第一队列所规定的时间片内完成即可短批处理作业用户若在第1队列中执行一个时间片即可完成,便可获得与终端型作业一样的响应时间如在第一个队列中不能完成,只需在第2、3队列中各执行一个时间片长批处理作业用户长作业将依次在第1,2,3…,n队列中执行,最终按轮转方式运行3.3.5多级反馈队列调度算法3.3.6基于公平原则的调度算法

1.保证调度算法保证调度算法向用户所做出的是明确的性能保证,该算法可以做到调度的公平性,如处理机分配的公平性。在实施公平调度算法时系统中必须具有这样一些功能:(1)跟踪计算每个进程自创建以来已经执行的处理时间;(2)计算每个进程应获得的处理机时间,即自创建以来的时间除以n。(3)计算进程获得处理机时间的比率。(4)比较各进程获得处理机时间的比率。(5)调度程序应选择比率最小的进程,将处理机分配给它,并让该进程一直运行,直到超过最接近它的进程比率为止。

2.公平分享调度算法在该调度算法中,调度的公平性主要是针对用户,使所有用户能获得相同的处理机时间,或所要求的时间比例。然而调度又是以进程为基本单位。为此,必须考虑到每一个用户所拥有的进程数目。Page782023/2/6进程调度的时机当一个进程运行完毕或由于某种错误而终止运行当一个进程在运行中处于等待状态(等待I/O)分时系统中时间片到当有一个优先级更高的进程就绪(可抢占式)例如:新创建一个进程,一个阻塞进程变成就绪在进程通信中,执行中的进程执行了某种原语操作(P操作,阻塞原语,唤醒原语)Page792023/2/6何时切换进程只要OS取得对CPU的控制,进程切换就可能发生:超级用户调用来自程序的显式请求(如:打开文件),该进程通常会被阻塞陷阱最末一条指令导致出错,会引起进程移至退出状态中断外部因素影响当前指令的执行,控制被转移至IH(中断处理程序)Page802023/2/6引起进程调度的原因正在执行的进程执行完毕或因发生某事件而不能再继续执行;执行中的进程因提出I/O请求而暂停执行;在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等;在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列;在时间片轮转法中,时间片完。通常系统是按先来先服务或优先权形式来组织调度队列。Page812023/2/6第三章处理机调度与死锁处理机调度的层次和调度算法的目标

作业与作业调度进程调度

实时调度死锁概述预防死锁避免死锁死锁的检测与解除Page822023/2/6实时调度

实现实时调度的基本条件实时调度算法的分类常用的几种实时调度算法Page832023/2/6实现实时调度的基本条件提供必要的信息开始截止时间和完成截止时间就绪时间该任务成为就绪状态的起始时间处理时间资源要求优先级Page842023/2/6实现实时调度的基本条件系统处理能力强在实时系统中,通常都有着多个实时任务。若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件例:一个周期为10ms,执行5ms,

一个周期为15ms,执行10ms,

则:(5/10)+(10/15)=35/30Page852023/2/6实现实时调度的基本条件系统处理能力强若上式不能满足,则系统是不可调度的解决的方法是提高系统的处理能力采用单处理机系统但须增强其处理能力,以显著地减少对每一个任务的处理时间采用多处理机系统假定系统中的处理机数为N,则应将上述的限制条件改为Page862023/2/6实现实时调度的基本条件采用抢占式调度机制当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,以满足该硬实时任务对截止时间的要求。但这种调度机制比较复杂小的实时系统,若能预知任务的开始截止时间,则可采用非抢占调度机制,以简化调度程序和对任务调度时所花费的系统开销注意:设计这种调度机制时,应使所有的实时任务都比较小,并在执行完关键性程序和临界区后,能及时地将自己阻塞起来,以便释放处理机,供调度程序调度那些开始截止时间即将到达的任务Page872023/2/6实现实时调度的基本条件具有快速切换机制该机制应具有如下两方面的能力对外部中断的快速响应能力为使在紧迫的外部事件请求中断时系统能及时响应,要求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短,以免耽误时机(其它紧迫任务)快速的任务分派能力在完成任务调度后,便应进行任务切换。为了提高分派程序进行任务切换时的速度,应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销Page882023/2/6实时调度实现实时调度的基本条件实时调度算法的分类常用的几种实时调度算法Page892023/2/6实时调度算法的分类非抢占式调度算法(实时任务小)非抢占式轮转调度算法

常用于工业生产的群控系统中调度程序每次选择队列中的第一个任务运行一个任务运行后排在轮转队列的末尾,等待下次调度非抢占式优先调度算法为时间要求严格的任务分配较高优先级当优先权高的实时任务到来时,排在就绪队列的队首等待调度Page902023/2/6实时调度算法的分类抢占式调度算法基于时钟中断的抢占式优先权调度算法某实时任务到达后,若优先级高于当前正在执行任务的优先级,并不立即抢占当前任务的处理机,而是等到时钟中断到来后调度程序才剥夺当前任务的执行立即抢占(ImmediatePreemption)的优先权调度算法一旦有外部中断,只要当前任务不在临界区内,便立即剥夺当前任务的执行,交处理机分配给要求中断的紧迫任务Page912023/2/6实时调度算法的分类(a)非抢占轮转调度调度时间进程

1进程

2实时进程要求调度进程

n实时进程调度实时进程运行(b)非抢占优先权调度当前进程实时进程实时进程请求调度当前进程运行完成调度时间在就绪队列尾在就绪队列首xs--xxsxs--xxxmsPage922023/2/6实时调度算法的分类当前进程实时进程请求调度时钟中断到来时调度时间(c)基于时钟中断抢占的优先权抢占调度实时进程当前进程实时进程实时进程请求调度实时进程抢占当前进程,并立即执行(d)立即抢占的优先权调度调度时间xms--xxsPage932023/2/6实时调度实现实时调度的基本条件实时调度算法的分类常用的几种实时调度算法Page942023/2/6常用的几种实时调度算法最早截止时间优先EDF(EarliestDeadlineFirst)算法根据任务的开始截止时间来确定任务的优先级,截止时间越早优先级越高既可用于抢占式调度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论