版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章调度与死锁一个作业从提交到完成通常要经历多级调度。4.1
调度的层次在不同操作系统中所采用的调度层次不完全相同。有的系统中仅采用一级调度,而在另一些系统中则可能采用两级或三级调度。处理机的三级调度处理机的三级调度:作业调度进程调度交换调度调度的层次运行就绪阻塞进程调度挂起阻塞挂起就绪中级调度创建退出作业调度4.1.1
作业调度作业调度又称高级调度、宏观调度或长程调度,其主要任务是按一定的原则从外存上处于后备状态的作业中选择一个或多个作业,给它们分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使该作业具有获得竞争处理机的权利。作业调度的运行频率较低,通常为几分钟一次。4.1.2
进程调度进程调度又称低级调度、微观调度或短程调度,其主要任务是按照某种策略和方法从就绪队列中选取一个进程,将处理机分配给它。进程调度的运行频率很高,一般几十毫秒要运行一次。4.1.3
中级调度中级调度又称中程调度或交换调度,其功能是将内存中暂时不用的信息移到外存,以腾出空间给内存中的进程使用,或将需要的信息从外存读入内存。引入中程调度的目的是提高内存利用率和系统吞吐量。中级调度的运行频率介于两者之间。4.1.4
调度性能评价由于操作系统的类型及目标不同,因此选择的调度策略及算法也不同。调度性能的评价准则有很多评价准则,下面介绍几种主要的评价准则:CPU利用率高系统吞吐量大。系统吞吐量表示单位时间内CPU完成作业的数量。周转时间短。响应时间快。响应时间是指从用户提交请求到系统首次产生响应所用的时间。周转时间作业的周转时间是指从作业提交到作业完成之间的时间间隔。平均周转时间是指多个作业的周转时间的平均值。n个作业的平均周转时间:
T=(T1+T2+…+Tn)/n(Ti为作业i的周转时间)带权周转时间带权周转时间是指作业周转时间与作业实际运行时间的比。平均带权周转时间是指多个作业的带权周转时间的平均值。n个作业的平均带权周转时间:W=(W1+W2+…+Wn)/n(Wi为作业i的带权周转时间)4.2
作业调度作业是用户在一次解题或一个事务处理
过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。计算机系统在完成一个作业的过程中所做的一项相对独立的工作称为一个作业步。例如,在编制程序过程中通常要进行编
辑输入、编译、链接、运行几个作业步。4.2.1
作业的状态及转换作业从提交到完成要经历四种状态:提交状态:用户作业由输入设备向系统外存输入时作业所处的状态。后备状态:作业输入到外存后,系统为其建立了作业控制块,并把它插入到后备作业队列中等待调度运行。运行状态:作业在内存中执行。完成状态:作业正常或异常结束,但作业占有的资源还未被系统全部回收。作业状态转换图就绪执行I/O请求I/O完成时间片完提交作业录入后备作业调度进程调度运行状态阻塞完成作业调度4.2.2
作业调度作业调度程序主要完成以下工作记录进入系统的各个作业情况。从后备作业中挑选一些作业投入执行。为被选中的作业做好执行前的准备工作。在作业运行结束或运行过程中因某种原因需要撤离时,作业调度程序还要完成作业的善后处理工作。作业控制块为管理作业,系统设置了作业控制块。系统通过JCB感知作业的存在,JCB是作业存在的唯一标志。通常作业控制块中包括的主要内容有:资源要求。资源使用情况。作业的控制方式、类型和优先级等。作业名、作业状态。资源要求资源要求是指作业运行需要的资源情况,包括:估计运行时间、最迟完成时间、
需要的内存容量、外设类型及数量等。资源使用情况资源使用情况包括作业进入系统的时间、开始运行时间、已运行时间、内存地址、外设台号等。作业控制方式、类型和优先级作业的控制方式有联机作业控制和脱机作业控制。从不同角度出发可以对作业进行不同的分类,如终端型和批量型,作业的优先级是指作业进入系统运行的优先级别,优先级高的作业可以优先进入系统运行。作业名、作业状态记录作业的标识信息及作业的当前状态。4.3
进程调度-4.3.1
进程调度的功能进程调度程序主要完成以下功能:记录系统中所有进程的状态、优先数和资源情况。选择获得处理机的进程。实施处理机的分配及回收。引起进程调度的原因正在运行进程结束运行进程因某种原因阻塞,如P操作、I/O等从系统调用或中断返回时,有进程进入就绪队列且就绪队列为空,或进程优先级高于当前运行进程且为剥夺调度方式时间片用完4.3.2
进程调度的方式进程调度有两种方式:抢占方式非抢占方式抢占方式抢占方式:又称剥夺方式、可剥夺方式。这种调度方式是指允许调度程序根据某
种原则去停止正在执行的进程,将已分
配给该进程的处理机重新分配给其他进
程。抢占原则有:优先权、时间片。非抢占方式非抢占方式:又称非剥夺方式、不可剥夺方式、不可抢占方式。这种调度方式是指一旦将处理机分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而进入阻塞状态,才把处理机分配给其他进程。非抢占方式中引起进程调度的因素有:进程结束、因某种原因而阻塞、执行同步原语等。特点:简单,系统开销小,但无法处理紧急任务。4.4
调度算法调度算法是指根据系统资源分配策略所规定的资源分配算法。本章的算法有些适合作业调度,有些适合进程调度,有些适用于两者。4.4.1
先来先服务调度算法先来先服务算法既可用于作业调度,也可用于进程调度。在作业调度中:从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源,创建进程,然后放入就绪队列。进程调度中:从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或因等待某一事件而阻塞时才释放处理机。设有4道作业,它们的提交时间及执行时间如下表,若按先来先服务调度算法进行调度,试计算4个作业的平均周转时间和平均带权周转时间。(时间单位:小时,以十进制计算)。先来先服务调度算法例作业提交时间估计运行时间1102210.21310.40.5410.50.3作业周转时间及带权周转时间的计算平均周转时间T=(2.0+2.8+3.1+3.3)/4=2.8平均带权周转时间W=(1+2.8+6.2+11)/4=5.25作业提交时间运行时间开始时间完成时间周转时间带权周转时间1102101221210.2112132.82.8310.40.51313.53.16.2410.50.313.513.83.311先来先服务算法特点算法简单,易于实现,但不利于短作业及I/O繁忙型作业。4.4.2
短作业优先调度算法在作业调度中,从后备队列中选择一个或多个估计运行时间最短的作业,将它们调入内存运行。在进程调度中,从就绪队列中选择一个估计运行时间最短的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或因等待某一事件而阻塞时才释放处理机。短作业优先调度算法例平均周转时间
T=(2.0+1.8+2.4+3.6)/4=2.45平均带权周转时间W=(1+6+4.8+3.6)/4=3.85作业提交时间运行时间开始时间完成时间周转时间带权周转时间1102101221210.2112.813.83.63.6310.40.512.312.82.44.8410.50.31212.31.86短作业优先调度算法的特点算法调度性能较好,如上例中,
平均周转时间先来先服务2.8平均带权周转时间
5.25短作业优先2.453.85但对长作业不利,未考虑作业的紧迫程度,运行时间为估计。最短剩余时间优先调度算法最短进程优先调度算法可以是非抢占式的,也可以是抢占式的。若无特别说明,通常是指非抢占式的算法。抢占式的最短进程优先调度算法也称为最短剩余时间优先调度算法,即当一个新进程进入就绪队列时,若其需要的运行时间比当前运行进程的剩余时间短,则它将抢占CPU。最短剩余时间优先算法例作业提交时间运行时间开始时间完成时间周转时间带权周转时间A08017172.125B141541C291726242.67D3551071.4时间:0A
B1 2
3
4
510DA1726C最短剩余时间优先算法例(续)平均周转时间
T=(17+4+24+7)/4=13平均带权周转时间W=(2.125+1+2.67+1.4)/4=1.8作业提交时间运行时间开始时间完成时间周转时间带权周转时间A08017172.125B141541C291726242.67D3551071.4最短平均周转时间当一批作业同时到达时,最短作业优先调度算法才能获得最短平均周转时间。设一组作业p1、p2、…、pn,其运行时间为t1、t2、…、tn,且假定t1<t2<…<tn,则短作业
优先调度算法的总周转时间为:t1+(t1+t2)+
…
+(t1+
…
+tn)=n*t1+(n-1)t2+
…
+tn最短平均周转时间(续)可以证明:若a1≤a2≤…≤an且b1≤b2≤…≤bn,则a1bn+a2bn-1
+…+anb1≤
a1bi1+a2bi2
+…+anbin≤
a1b1+a2b2
+…+anbn其中i1、i2、…、in是1、2、…、n的一个排列。4.4.3
优先级调度算法在作业调度中,从后备作业队列中选择若干优先级高的作业调入内存。在进程调度中,将处理机分配给就绪队列中优先级最高的进程。优先级表示进程的重要性及运行优先性,通常用优先数来衡量。在某些系统中,
优先数越大优先级越高;而在另一些系
统中,优先数越大优先级越小。按调度方式对优先级调度算法分类非抢占式优先级调度算法:系统一旦将处理机分配给就绪队列中优先级最高的进程后,该进程便一直运行下去,直到完成或因发生某事件使该进程放弃处理机时,系统才将处理机分配给另一个更高优先级的进程。抢占式优先级调度算法:将处理机分配给优先级最高的进程,使之运行。在进程运行过程中,一旦出现了另一个优先级更高的进程时,进程调度程序就停止原运行进程,而将处理机分配给新出现的高优先级进程。优先级的类型优先级分为两种:静态优先级动态优先级静态优先级静态优先级是在创建进程时确定的,确定之后在整个进程运行期间不再改变。确定依据有:进程类型:系统,用户进程对资源的需求:执行时间,资源数量用户要求:紧迫程度特点:简单易行,系统开销小,但不精确。动态优先级动态优先级是指在创建进程时,根据进程的特点及相关情况确定一个优先级,在进程运行过程中再根据情况的变化调整优先级。确定原则有:占用CPU时间,等待时间。例:优先数=CPU使用时间/2+基本优先数CPU使用时间衰减函数:Decay(CPU使用时间)=CPU使用时间/24.4.4
时间片轮转调度算法时间片轮转法:系统将所有就绪进程按到达时间的先后次序排成一个队列,每次调度时把CPU分配给队首进程,并令其执行一个时间片。当时间片用完时,停止该进程的执行,将它送至就绪队列末尾等待下一次执行,然后再把处理机分配给就绪队列中的新队首进程。如此不断循环,直至完成为止。时间片轮转算法例设有A、B、C、D、E五个进程,其到达时间分别为0、1、2、3、4,要求运行时间依次为3、6、4、5、2,采用时间片轮转调度算法,当时间片大小为1和4时,试计算其平均周转时间和平均带权周转时间。时间片大小为1A、B、C、D、E要求运行时间依次为3、6、4、5、2,到达时间依次为0、1、2、3、4。10:D运行,ECB等待;11:E运行,CBD等待;12:C运行,BD等待;13:B运行,DC等待;14:D运行,CB等待;15:C运行,BD等待;16:B运行,D等待;17:D运行,B等待;18:B运行,D等待;19:D运行,0:A运行;1:B运行,A等待;2:A运行,CB等待;3:C运行,BDA等待;4:B运行,DAEC等待;5:D运行,AECB等待;6:A运行,ECBD等待;7:E运行,CBD等待;8:C运行,BDE等待;9:B运行,DEC等待;时间片为1的周转时间平均周转时间
T=(7+18+14+17+8)/5=12.8平均带权周转时间W=(2.33+3+3.5+3.4+4)/5=3.246作业提交时间运行时间开始时间完成时间周转时间带权周转时间A030772.33B16119183C24316143.5D35520173.4E4271284时间片大小为4A、B、C、D、E要求运行时间依次为3、6、4、5、2
,到达时间依次为0、1、2、3、4。0:A运行,BCD依次到达;3:B运行,CD等待,后E到达;7:C运行,DEB等待;11:D运行,EB等待;15:E运行,BD等待;17:B运行,D等待;19:D运行A、B、C、D、E开始时间依次为0、3、7、11、15;结束时间依次为3、19、11、20、17。时间片为4的周转时间平均周转时间
T=(3+18+9+17+13)/5=12平均带权周转时间W=(1+3+2.25+3.4+6.5)/5=3.23作业提交时间运行时间开始时间完成时间周转时间带权周转时间A030331B16319183C2471192.25D351120173.4E421517136.5时间片大小的选择若时间片太大,所有进程都能在一个时间片内完成,则时间片轮转算法退化为先来先服务;若时间片太小,则进程调度频繁,系统开销增加。因此时间片大小选择应适当。确定时间片大小应考虑的因素系统对响应时间的要求:响应时间=时间片*进程数。进程数一定,则时间片与系统响应时间成正比。就绪队列中的进程数目:时间片与就绪进程数成反比。系统处理能力:人所能承受的响应时间一定,系统速度快则时间片可增长。时间片轮转算法的特点及改进对偏重I/O的进程不公平。为此改进为虚拟时间片轮转算法。虚拟时间片轮转算法:新进程基于FCFS进入就绪队列,进程用完时间片后也进入就绪队列,进程因I/O阻塞进入I/O队列,I/O完成时进程进入附加队列,附加队列的优先级高于就绪队列,当进程从附加队列被调度时,其运行时间不超过上次发生中断时剩余的时间。虚拟时间片轮转调度示意图CPU新进程调度超时就绪队列优先级高附加队列请求I/OI/O队列I/O完成4.4.5
高响应比优先调度算法高响应比优先调度算法是对短作业优先调度算法和先来先服务调度算法的一种综合。响应比响应比定义如下:响应比=作业响应时间/估计运行时间由于响应时间为作业进入系统后的等待时间加上估计运行时间。因此响应比=1+作业等待时间/估计运行时间高响应比优先调度算法思想在每次调度作业运行时,先计算后备作业队列中每个作业的响应比,然后挑选响应比最高者投入运行。特点:有利于短作业-----等待时间相同,短作业优先,考虑等待时间----运行时间相同,等待时间长的作业优先运行。最高响应比优先算法例设有A、B、C、D、E五个进程,其到达时间分别为0、1、2、3、4,要求运行时间依次为3、6、4、5、2,采用最高响应比优先调度算法,试计算其平均周转时间和平均带权周转时间。分析作业的调度顺序A、B、C、D、E的到达时间依次为0、1、2、3、4,要求运行时间依次为3、6、4、5、20:A运行,BCD依次到达;3:rB
=1+2/6,rC
=1+1/4,rD
=1;B先运行。9:rC
=1+7/4,rD
=1+6/5,rE
=1+5/2;E先运行。11:rC
=1+9/4,rD
=1+8/5;C先运行。由此可知作业的运行顺序为A、B、E、C、D。周转时间的计算顺序A、B、E、C、D平均周转时间
T=(3+8+13+17+7)/5=9.6平均带权周转时间W=(1+1.33+3.25+3.4+3.5)/5=2.496作业提交时间运行时间开始时间完成时间周转时间带权周转时间A030331B163981.33C241115133.25D351520173.4E4291173.54.4.6
多级队列调度算法实现思想:根据作业性质或类型不同,将进程就绪队列分为多个,每个队列采用不同的调度算法。例如:终端型作业为前台作业,批处理作业为后台作业。前台采用时间片轮转算法,后台采用先来先服务,前台作业的优先级高。4.4.7
多级反馈队列调度算法(1)应设置多个就绪队列,并为每个队列赋予不同的优先级。第1个队列的优先级最高,第2队列次之,其余队列的优先级逐次降低。每个队列中进程执行的时间片大小也各不相同,进程所在队列的优先级越高,其相应的时间片
就越短。多级反馈队列调度算法(2)当一个新进程进入系统时,首先将它放入第1个队列的末尾,按先来先服务的原则排队等待调度。当轮到该进程执行时,如能在此时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第2队列的末尾,再同样地按先来先服务原则等待调度执行。如此下去,最后一个队列中使用时间片轮转调度算法。多级反馈队列调度算法(3)仅当第1个队列为空时,调度程序才调度第2队列中的进程运行;仅当第1个至第(i-1)个队列均为空时,才会调度第i个队列中的进程运行。当处理机正在为第i个队列中的某进程服务时,若又有新进程进入优先级较高的队列中,则
此时新进程将抢占正在运行进程的处理机,即由调度程序把正在执行进程放回第i个队列
末尾,重新将处理机分配给新进程。多级反馈队列调度算法示意图就绪队列1CPU就绪队列2就绪队列nCPUCPU完成完成完成多级反馈队列调度算法例设有A、B、C、D、E五个进程,其到达时间分别为0、1、3、4、5,要求运行时间依次为3、8、4、5、7,采用多级反馈队列调度算法,系统中共有3个队列,其时间片依次为1、2和4,试计算其平均周转时间和平均带权周转时间。调度分析1:B运行,A等待;2:A运行,B等待;3:C运行,BA等待;4:D运行,BAC等待;5:E运行,BACD等待;6:BB运行,ACDE等待;8:A运行,CDE等待;B等待9:CC运行,DE等待;B等待A、B、C、D、E到达时间依次为0、1、3、4、5,要求运行时间依次为3、8、4、5、70:A运行;11:DD运行,E等待;BC等待13:EE运行,BCD等待;15:BBBB运行,CDE等待;19:C运行,DEB等待;20:DD运行,EB等待;22:EEEE运行,B等待;26:B运行。周转时间的计算平均周转时间
T=(9+26+17+18+21)/5=18.25平均带权周转时间W=(3+3.25+4.25+3.6+3)/5=3.42作业提交时间运行时间开始时间完成时间周转时间带权周转时间A030993B18127263.25C34320174.25D45422183.6E57526213多级反馈队列调度算法的性能多级反馈队列调度算法能较好满足各类用户的需求:终端型用户:大多能在一个时间片内完成,响应时间较短;短批处理作业用户:能在前几个队列完成,周转时间较短;长批处理作业用户:依次在1~n队列中运行,不会长时间得不到处理。8.公平分享调度算法公平分享调度算法基于进程组来分配CPU时间,其实现思想是对系统中的每个用户赋予某种权值,根据用户权值大小,按比例分配处理机时间。公平分享调度有许多实现方案,本节讲述UNIX中的一种实现方案。UNIX中的公平分享调度UNIX基于优先权调度,优先数越大优先权越低。对进程组k中进程j的优先数计算公式如下:CPUj(i)=CPUj(i-1)/2;进程j在时间段i使用的
CPU时间GCPUk(i)=GCPUk(i-1)/2;进程组k在时间段i使用的CPU时间Pj(i)=Basej+CPUj(i)/2+GCPUk(i)/4Wk;进程j在时间段i的优先数,Basej
为进程j的基本优先数,Wk为进程组k的权值。公平分享调度例下例中Wk为0.5,Base为60。相应的优先数计算公式为:CPUj(i)=CPUj(i-1)/2;GCPUk(i)=GCPUk(i-1)/2;Pj(i)=60+
CPUj(i)/2+
GCPUk(i)/2公平分享调度例进程A进程B进程C时间优先数计数组优先数计数组优先数计数
组06000600060001122……6060190303060006000111222………606060公平分享调度例(续1)进程A进程B进程C时间优先数计数组优先数计数组优先数计数组27415159030307503016161717……75753963737741515670151611617217………756075公平分享调度例(续2)进程A进程B进程C时间优先数计数组优先数计数组优先数计数组47818188173793303719192020……7878598393970318761518UNIX的进程调度UNIX的进程调度采用多级反馈队列调度算法,系统设置了多个就绪队列。进程调度程序执行时:核心首先从处于“内存就绪”或“被剥夺”状态的进程中选择一个优先级最高的进程;若系统中同时有多个进程都具有最高优先级,则核心将选择其中处于就绪状态最久的进程,将它从所在队列移出,恢复其上下文,使之执行;仅当最高优先级队列中没有进程时,才从次高优先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年版儿童急性坏死性脑病诊疗方案
- 消防设施专项检查计划
- 大气降水与排水系统关系研究
- 工程造价预算管理
- 消防设施使用手册编制
- 2026年超星尔雅心理健康考试题库及答案1套
- 国有粮库建设项目经济效益和社会效益分析报告
- 2026年遂宁职业学院单招职业倾向性测试题库及答案1套
- 【数学】三角形的角平分线课件 2025-2026学年北师大版数学八年级下册
- 魔方课件介绍
- 洗衣液宣传课件
- “五个带头”方面对照发言材料二
- TTAF 241.1-2024 支持卫星通信的移动智能终端技术要求和测试方法 第1部分:多模天通卫星终端
- 奶茶品牌2026年新品研发上市流程
- 在线网课学习课堂《人工智能(北理 )》单元测试考核答案
- 输电线路基础知识输电线路组成与型式
- 南昌工程学院施工组织设计
- GA 1808-2022军工单位反恐怖防范要求
- 《中国特色社会主义》期末试卷
- 某煤矿防治水分区管理论证报告
- 双室平衡容器说明书
评论
0/150
提交评论