第5处理机调度课件_第1页
第5处理机调度课件_第2页
第5处理机调度课件_第3页
第5处理机调度课件_第4页
第5处理机调度课件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

第5处理机调度处理机的三级调度处理机的三级调度:作业调度进程调度中程调度1.作业的状态作业从提交到完成要经历四种状态:提交状态:用户作业由输入设备向系统外存输入时作业所处的状态。//录入工作,还没进入系统后备状态:作业输入到外存后,系统为其建立了作业控制块JCB,并把它插入到后备作业队列中等待调度运行。//等待调入执行状态:作业在内存中执行。完成状态:作业正常或异常结束,但作业占有的资源还未被系统全部回收。进程调度作业状态转换图等待就绪运行I/O请求I/O完成时间片完提交作业录入后备作业调度执行状态完成作业调度作业调度作业调度又称高级调度、宏观调度或长程调度,其主要任务是按一定的原则从外存上处于后备状态的作业中选择一个或多个作业,给它们分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使该作业具有获得竞争处理机的权利。作业调度的运行频率较低,通常为几分钟一次。作业调度的功能接纳多少作业:决定接纳作业的数目。记录作业状况:记录作业各阶段的情况。包括资源分配、优先权、状态等。相关信息构成JCB,它是作业存在的唯一标志。确定调度算法:决定接纳哪些作业。做好执行前的准备工作:为选中作业建立进程并分配资源。善后处理:作业完成后回收占用资源,撤消JCB。2.中程调度中程调度又称中级调度或交换调度,其功能是将内存中暂时不用的信息移到外存,以腾出空间给内存中的进程使用,或将需要的信息从外存读入内存。引入中程调度的目的是提高内存利用率和系统吞吐量。中程调度的运行频率介于两者之间。引起中程调度的原因频繁缺页时,应换出内存的部分作业。就绪队列中进程太多影响响应时间,应换出就绪队列中的部分进程。等待I/O可能要一段时间,可以将这类进程换出。为便于紧缩,可以将部分进程换出。内存有足够空间时,可以从外存换入一些进程。外存中进程的优先级高于内存时,可以换入。中程调度程序中程调度程序由换入和换出两个过程组成:换出过程把内存中的程序或数据换到交换区。换入过程把外存中的程序或数据换到内存。为了加快交换速度,外存交换区采用连续分配方式。3.进程调度进程调度又称低级调度、微观调度或短程调度,其主要任务是按照某种策略和方法从就绪队列中选取一个进程,将处理机分配给它。进程调度的运行频率很高,一般几十毫秒要运行一次。

进程调度的功能记录系统中所有进程的状态、优先数和资源情况。按调度算法选择进程运行。实施处理机的分配及回收。引起进程调度的原因正在运行进程结束运行进程因某种原因阻塞,如P操作、I/O等有进程进入就绪队列且就绪队列为空,或进程优先级高于当前运行进程且为剥夺调度方式从系统调用或中断返回时间片用完4.选择调度算法的准则由于操作系统的类型及目标不同,因此选择的调度算法也不同。选择调度算法有以下准则:面向系统的准则面向用户的准则面向系统的准则公平性:系统中的每个进程应获得合理的CPU时间。CPU利用率高:对微机和实时系统不太重要。系统吞吐量大:吞吐量指单位时间内所完成的进程数。合理利用各类资源:让各类资源都忙碌,对微机不太重要。面向用户的准则周转时间短:指从作业提交到作业完成的时间间隔。响应时间快:指从用户提交请求到系统产生响应的时间间隔。截止时间的保证:截止时间是指某任务必须开始执行或必须完成的最迟时间。稳定性:对某用户的作业而言,调度策略不应使其响应时间和周转时间变化太大。周转时间作业的周转时间是指从作业提交到作业完成之间的时间间隔。平均周转时间是指多个作业的周转时间的平均值。n个作业的平均周转时间:T=(T1+T2+

+Tn)/n(Ti为作业i的周转时间)带权周转时间带权周转时间是指作业周转时间与作业实际运行时间的比。平均带权周转时间是指多个作业的带权周转时间的平均值。n个作业的平均带权周转时间:W=(W1+W2+

+Wn)/n(Wi为作业i的带权周转时间)5.2调度算法调度算法是指根据系统资源分配策略所规定的资源分配算法。本章的算法有些适合作业调度,有些适合进程调度,有些适用于两者。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

11

6.2

2.8

1带权周转时间

3.3

3.1

2.8

2周转时间

13.8

13.5

13

12完成时间

13.5

13

12

10开始时间

0.3

0.5

1

2运行时间

10.5

10.4

10.2

10提交时间

4

3

2

1作业周转时间:申请到完成,完成-提交带权周转时间:周转时间与用CPU时间的比值 周转/运行先来先服务算法特点算法简单,易于实现,但不利于短作业(进程)。不利于短CPU,长IO的作业//长期等待//平均运行时间更接近较大的运行时间2.短作业(进程)优先调度算法在作业调度中,从后备队列中选择一个或多个估计运行时间最短的作业,将它们调入内存运行。在进程调度中,从就绪队列中选择一个估计运行时间最短的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或因等待某一事件而阻塞时才释放处理机。短作业优先调度算法例平均周转时间T=(2.0+1.8+2.4+3.6)/4=2.45平均带权周转时间W=(1+6+4.8+3.6)/4=3.85

6

4.8

3.6

1带权周转时间

1.8

2.4

3.6

2周转时间

12.3

12.8

13.8

12完成时间

12

12.3

12.8

10开始时间

0.3

0.5

1

2运行时间

10.5

10.4

10.2

10提交时间

4

3

2

1作业短作业优先调度算法的特点算法调度性能较好,例如上例中,先来先服务短作业优先平均周转时间2.82.45平均带权周转时间5.253.85但对长作业不利,未考虑作业的紧迫程度,运行时间为估计。最短剩余时间优先调度算法最短进程优先调度算法可以是非抢占式的,也可以是抢占式的。若无特别说明,通常是指非抢占式的算法。抢占式的最短进程优先调度算法也称为最短剩余时间优先调度算法,即当一个新进程进入就绪队列时,若其需要的运行时间比当前运行进程的剩余时间短,则它将抢占CPU。抢占式的短程序优先!最短剩余时间优先算法例时间:

1.4

2.67

1

2.125带权周转时间

7

24

4

17周转时间

10

26

5

17完成时间

5

17

1

0开始时间

5

9

4

8运行时间

3

2

1

0提交时间DCBA作业0A12B34510DA1726C最短剩余时间优先算法例(续)平均周转时间T=(17+4+24+7)/4=13平均带权周转时间W=(2.125+1+2.67+1.4)/4=1.8

1.4

2.67

1

2.125带权周转时间

7

24

4

17周转时间

10

26

5

17完成时间

5

17

1

0开始时间

5

9

4

8运行时间

3

2

1

0提交时间DCBA作业最短平均周转时间当一批作业同时到达时,最短作业优先调度算法才能获得最短平均周转时间。设一组作业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的一个排列。3.

时间片轮转调度算法时间片轮转法:系统将所有就绪进程按到达时间的先后次序排成一个队列,每次调度时把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。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等待;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的周转时间平均周转时间T=(7+18+14+17+8)/5=12.8平均带权周转时间W=(2.33+3+3.5+3.4+4)/5=3.246

3.4

3.5

3

2.33带权周转时间

17

14

18

7周转时间

20

16

19

7完成时间

5

3

1

0开始时间

5

4

6

3运行时间

3

2

1

0提交时间DCBA作业

4

8

12

7

2

4E时间片大小为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

3.4

2.25

3

1带权周转时间

17

9

18

3周转时间

20

11

19

3完成时间

11

7

3

0开始时间

5

4

6

3运行时间

3

2

1

0提交时间DCBA作业

6.5

13

17

15

2

4E时间片大小的选择若时间片太大,所有进程都能在一个时间片内完成,则时间片轮转算法退化为先来先服务;若时间片太小,则进程调度频繁,系统开销增加。因此时间片大小选择应适当。确定时间片大小应考虑的因素系统对响应时间的要求:响应时间=时间片*进程数。进程数一定,则时间片与系统响应时间成正比。就绪队列中的进程数目:时间片与就绪进程数成反比。系统处理能力:人所能承受的响应时间一定,系统速度快则时间片可增长。时间片轮转算法的特点及改进对偏重I/O的进程不公平。为此改进为虚拟时间片轮转算法。虚拟时间片轮转算法:新进程基于FCFS进入就绪队列,进程用完时间片后也进入就绪队列,进程因I/O阻塞进入I/O队列,I/O完成时进程进入附加队列,附加队列的优先级高于就绪队列,当进程从附加队列被调度时,其运行时间不超过上次发生中断时剩余的时间。虚拟时间片轮转调度示意图CPU新进程就绪队列调度超时优先级高附加队列I/O队列请求I/OI/O完成4.优先权调度算法在作业调度中,从后备作业队列中选择若干优先权高的作业调入内存。在进程调度中,将处理机分配给就绪队列中优先权最高的进程。优先权通常用优先数来衡量。在某些系统中,优先数越大优先权越高;而在另一些系统中,优先数越大优先权越小。进程调度方式进程调度有两种方式:非抢占方式抢占方式非抢占方式非抢占方式:又称非剥夺方式、不可剥夺方式、不可抢占方式。这种调度方式是指一旦将处理机分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而进入阻塞状态,才把处理机分配给其他进程。非抢占方式中引起进程调度的因素有:进程结束、因某种原因而阻塞、执行同步原语等。特点:简单,系统开销小,但无法处理紧急任务。抢占方式抢占方式:又称剥夺方式、可剥夺方式。这种调度方式是指允许调度程序根据某种原则去停止正在执行的进程,将已分配给该进程的处理机重新分配给其他进程。抢占原则有:优先权、最短剩余时间优先、时间片。按调度方式对优先权调度算法分类非抢占式优先权算法:系统一旦将处理机分配给就绪队列中优先权最高的进程后,该进程便一直运行下去,直到完成或因发生某事件使该进程放弃处理机时,系统才将处理机分配给另一个更高优先权的进程。抢占式优先权调度算法:将处理机分配给优先权最高的进程,使之运行。在进程运行过程中,一旦出现了另一个优先权更高的进程时,进程调度程序就停止原运行进程,而将处理机分配给新出现的高优先权进程。

优先权的类型优先权分为两种:静态优先权动态优先权静态优先权静态优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。确定依据有:进程类型:系统,用户 系统>用户进程对资源的需求:执行时间,资源数量用户要求:紧迫程度到达时间:先到则优先权高特点:简单易行,系统开销小,但不精确。动态优先权动态优先权是指在创建进程时,根据进程的特点及相关情况确定一个优先权,在进程运行过程中再根据情况的变化调整优先权。确定原则有:占用CPU时间,等待时间。//占的长的,滚边去,新来的,滚边去例:优先数=CPU使用时间/2+基本优先数CPU使用时间衰减函数:Decay(CPU)=CPU/25.最高响应比优先调度算法最高响应比优先调度算法是对短作业优先调度算法和先来先服务调度算法的一种综合。响应比响应比定义如下:

响应比=作业响应时间/估计运行时间

响应比=等待时间+需要CPU时间/需要CPU时间 R=(W+S)/S由于响应时间为作业进入系统后的等待时间加上估计运行时间。因此

响应比=1+作业等待时间/估计运行时间最高响应比优先调度算法思想在每次调度作业运行时,先计算后备作业队列中每个作业的响应比,然后挑选响应比最高者投入运行。特点:有利于短作业-----等待时间相同,短作业优先,考虑等待时间----运行时间相同,等待时间长的作业优先运行。响应比=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

3.4

3.25

1.33

1带权周转时间

17

13

8

3周转时间

20

15

9

3完成时间

15

11

3

0开始时间

5

4

6

3运行时间

3

2

1

0提交时间DCBA作业

3.5

7

11

9

2

4E6.多级队列调度算法实现思想:根据作业性质或类型不同,将进程就绪队列分为多个,每个队列采用不同的调度算法。例如:终端型作业为前台作业,批处理作业为后台作业。前台采用时间片轮转算法,后台采用先来先服务,前台作业的优先级高。7.多级反馈队列调度算法(1)应设置多个就绪队列,并为每个队列赋予不同的优先级。第1个队列的优先级最高,第2队列次之,其余队列的优先级逐次降低。每个队列中进程执行的时间片大小也各不相同,进程所在队列的优先级越高,其相应的时间片就越短。多级反馈队列调度算法(2)当一个新进程进入系统时,首先将它放入第1个队列的末尾,按先来先服务fcfs的原则排队等待调度。当轮到该进程执行时,如能在此时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第2队列的末尾,再同样地按先来先服务原则fcfs等待调度执行。如此下去,最后一个队列中使用时间片轮转调度算法RR。除最后一个用RR,其他的全部FCFS!多级反馈队列调度算法(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,试计算其平均周转时间和平均带权周转时间。13:EE运行,BCD等待;调度分析A、B、C、D、E到达时间依次为0、1、3、4、5,要求运行时间依次为3、8、4、5、71: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等待11:DD运行,E等待;BC等待15:BBBB运行,CDE等待;19:C运行,DEB等待;20:DD运行,EB等待;22:EEEE运行,B等待;0:A运行;26:B运行。周转时间的计算平均周转时间T=(9+26+17+18+21)/5=18.25平均带权周转时间W=(3+3.25+4.25+3.6+3)/5=3.42

3.6

4.25

3.25

3带权周转时间

18

17

26

9周转时间

22

20

27

9完成时间

4

3

1

0开始时间

5

4

8

3运行时间

4

3

1

0提交时间DCBA作业

3

21

26

5

7

5E多级反馈队列调度算法的性能多级反馈队列调度算法能较好满足各类用户的需求:终端型用户:大多能在一个时间片内完成,响应时间较短;短批处理作业用户:能在前几个队列完成,周转时间较短;长批处理作业用户:依次在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的权值。0<=Wk<=1 且 =1公平分享调度例下例中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公平分享调度例公平分享调度例(续1)公平分享调度例(续2)习题P10321011UNIX的进程调度(P255)UNIX的进程调度采用多级反馈队

温馨提示

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

评论

0/150

提交评论