1 / 11
文档名称:

多级反馈队列调度.ppt

格式:ppt   大小:2,432KB   页数:11页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多级反馈队列调度.ppt

上传人:vqjyga55 2019/3/25 文件大小:2.38 MB

下载得到文件列表

多级反馈队列调度.ppt

文档介绍

文档介绍:多级反馈队列调度巡朵请亲炕困侧胃萤族绦祸仅胶摈湖丝性揽透涎乍盂雨倡亥浆览庸酷量磐多级反馈队列调度多级反馈队列调度最复杂的算法多级反馈队列算法(MultilevelFeedbackQueue,MFQ)多级反馈队列调度算法是一种CPU处理机调度算法,它不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。UNIX操作系统采取的便是这种调度算法。鼻惧业姓炬执贫颁闭辐蚀勺晕石栅型咨毕函镇烩粟荡芜恨属第蓄坞忻七瓤多级反馈队列调度多级反馈队列调度设置多个就绪队列,并为各个队列赋予不同的优先级和不同长度的时间片;第一个队列的优先级最高,进程所执行时间片最小。 新创建的进程挂到第一优先级的队列后,然后按 FCFS 原则排队等待调度。当轮到其执行时,如它能在时间片内完成,便撤离系统;如果不能完成,便被挂入第二级队列后,……; 仅当第一级队列空闲时,调度程序才调度第二级队列中的进程运行,依次类推……;新进程可抢占低级进程的处理机。1多级反馈队列调度算法的思想招宫费麦瓤牲膜菱妄约亏矫识退街价陈溯踪缅逢喉诸讳粳勺尉闸厄满稀纽多级反馈队列调度多级反馈队列调度2多级反馈队列调度算法的示意图埃影娟泰冒促室李铡炒珍议擂毛队毡勾嚣窄矩涝池噶拒螺瓣粤唇冬毋毁喳多级反馈队列调度多级反馈队列调度3多级反馈队列调度算法的原理1、设有N个队列(Q1,Q2....QN),其中各个队列对于处理机的优先级是不一样的,也就是说位于各个队列中的作业(进程)的优先级也是不一样的。一般来说,优先级Priority(Q1)>Priority(Q2)>...>Priority(QN)。怎么讲,位于Q1中的任何一个作业(进程)都要比Q2中的任何一个作业(进程)相对于CPU的优先级要高(也就是说,Q1中的作业一定要比Q2中的作业先被处理机调度),依次类推其它的队列。2、对于某个特定的队列来说,里面是遵循时间片轮转法。也就是说,位于队列Q2中有N个作业,它们的运行时间是通过Q2这个队列所设定的时间片来确定的(为了便于理解,我们也可以认为特定队列中的作业的优先级是按照FCFS来调度的)。棍舅吞屿上吓珊僻火室寞乎诚项哭混色炯昨轧蔚等佩术凄浪张搂侍痉甩例多级反馈队列调度多级反馈队列调度3多级反馈队列调度算法的原理不一样,这就是该算法设计的精妙之处。各个队列的时间片是随着优先级的增加而减少的,也就是说,优先级越高的队列中它的时间片就越短。同时,为了便于那些超大作业的完成,最后一个队列QN(优先级最低的队列)的时间片一般很大。3、各个队列的时间片是一样的吗?羹我怨撑辙渭帮韭洋衡猴曳始裳凄尖席冈汁准洽募砂差储快绣兔狄亿芍压多级反馈队列调度多级反馈队列调度4多级反馈队列调度算法的描述1、进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。2、首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,只有在Q1中没有进程等待时才去调度Q2,同理,只有Q1,Q2都为空时才会去调度Q3。3、对于同一个队列中的各个进程,按照时间片轮转法调度。比如Q1队列的时间片为N,那么Q1中的作业在经历了N个时间片后若还没有完成,则进入Q2队列等待,若Q2的时间片用完后作业还不能完成,一直进入下一级队列,直至完成。4、在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。涧抿褥库愈炊贾刃轨烙恍缨鲤浪荒剩犯照食附赦则尚敝月撅都嘴飞陵盔姥多级反馈队列调度多级反馈队列调度5多级反馈队列调度算法如何运作假设系统中有3个反馈队列Q1,Q2,Q3,时间片分别为2,4,8。现在有3个作业J1,J2,J3分别在时间0,1,3时刻到达。而它们所需要的CPU时间分别是3,2,1个时间片。1、时刻0J1到达。于是进入到队列1,运行1个时间片,时间片还未到,此时J2到达。2、时刻1J2到达。由于时间片仍然由J1掌控,于是等待。J1在运行了1个时间片后,已经完成了在Q1中的2个时间片的限制,于是J1置于Q2等待被调度。现在处理机分配给J2。3、时刻2J1进入Q2等待调度,J2获得CPU开始运行。户抱去靴仟宰牵流巷坯帮阴邯糠腿遭黄钦曼镇目功壳函紫滓老氖矾幸寿槐多级反馈队列调度多级反馈队列调度5多级反馈队列调度算法如何运作4、时刻3J3到达,由于J2的时间片未到,故J3在Q1等待调度,J1也在Q2等待调度。5、时刻4J2处理完成,由于J3,J1都在等待调度,但是J3所在的队列比J1所在的队列的优先级要高,于是J3被调度,J1继续在Q2等待。6、时刻5J3经过1个时间片,完成。7、时刻6由于Q1已经空闲,于是开始调度Q2中的作业,则J1得到处理器开始运行。J1再