计算机操作系统第四版汤小丹梁红兵哲凤屏-第3章(201620171)研究word版本.ppt





《计算机操作系统第四版汤小丹梁红兵哲凤屏-第3章(201620171)研究word版本.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统第四版汤小丹梁红兵哲凤屏-第3章(201620171)研究word版本.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 处理机调度与死锁 计算机操作系统第四版汤小丹梁红兵哲凤屏-第3章(201620171)研究第三章 处理机调度与死锁 3.1.1 处理机调度的层次处理机调度的层次2.低级调度低级调度(Low Level Scheduling)又称短程调度或进程调度,调度对象是进程。主要功能是根据算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。3.中级调度中级调度(Intermediate Scheduling)又称内存调度。主要目的是为了提高内存利用率和系统吞吐量。将那些暂时不能运行的进程调至外存上去等待,称为就绪驻外存状态或挂起状态;把外存上的又具备运行条件的就绪进
2、程,重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。第三章 处理机调度与死锁 3.1.2 处理机调度算法的目标处理机调度算法的目标1.处理机调度算法的共同目标处理机调度算法的共同目标(1)资源利用率。为提高系统的资源利用率,应使系统中的处理机和其它所有资源都尽可能保持忙碌状态。(2)公平性使诸进程都获得合理的CPU时间,不会发生进程饥饿现象。(3)平衡性 保持系统资源使用的平衡性。(4)策略强制执行第三章 处理机调度与死锁 3.1.2 处理机调度算法的目标处理机调度算法的目标2.批处理系统的目标批处理系统的目标(1)平均周转时间短 周转时间,指从作业被提交给系统开始,到作业完
3、成为止的这段时间间隔。包括四部分时间:作业在外存后备队上等待调度的时间;进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间,进程等待I/O操作完成的时间。(2)系统吞吐量高 吞吐量,指在单位时间内系统所完成的作业数。(3)处理机利用率高第三章 处理机调度与死锁 3.1.2 处理机调度算法的目标处理机调度算法的目标3.分时系统的目标分时系统的目标(1)响应时间快 响应时间快是选择分时系统中进程调度算法的重要准则。响应时间,从用户通过键盘提交一个请求开始,直到屏幕上显示出处理结果为止的一段时间间隔。(2)均衡性系统响应时间的快慢应与用户所请求的复杂性相适应。第三章 处理机调度与死锁 3.
4、1.2 处理机调度算法的目标处理机调度算法的目标4.实时系统的目标实时系统的目标(1)截止时间的保证 截止时间:某任务必须开始执行的最迟时间,或必须完成的最迟时间。调度算法必须保证实时任务对截止时间的要求。(2)可预测性第三章 处理机调度与死锁 3.2 作业和作业调度作业和作业调度3.2.1 批处理系统中的作业批处理系统中的作业1.作业和作业步作业和作业步在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果,每一个加工步骤称为一个作业步。2.作业控制块(作业控制块(Job Control Block,JCB)作业在系统中存在的标志,其中保存了系统对作业进行管理
5、和调度所需的全部信息。第三章 处理机调度与死锁 3.2.1 批处理系统中的作业批处理系统中的作业3.作业运行的三个阶段和三种状态作业运行的三个阶段和三种状态(1)收容阶段 用户提交的作业输入到硬盘上,再为该作业建立JCB,并把它放入作业后备队列中。作业处于“后备状态”。(2)运行阶段作业调度选中作业后,为其分配必要的资源和建立进程,并放入就绪队列。一个作业从第一次进入就绪状态开始,直到它运行结束前,处于“运行状态”。(3)完成阶段 第三章 处理机调度与死锁 3.2.3 先来先服务先来先服务(FCFS)和短作业优先和短作业优先(SJF)调度算法调度算法1.先来先服务(先来先服务(first-co
6、me first-served,FCFS)调度算法)调度算法 最简单的调度算法,既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将从后备队列中选择最先进入该队列的作业,将它们调入内存;当在进程调度采用FCFS算法时,从就绪的进程队列选择最先进入的进程。第三章 处理机调度与死锁 2.短作业优先短作业优先(short job first,SJF)调度算法调度算法 SJF算法以作业的长短计算优先级,作业越短,其优先级越高。3.2.3 先来先服务先来先服务(FCFS)和短作业优先和短作业优先(SJF)调度算法调度算法uSJF算法的缺点:(1)必须预知作业的运行时间。(2)对长作业非
7、常不利,长作业的周转时间会明显地增长。(3)在采用SJF算法时,人-机无法实现交互。(4)该调度算法完全未考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理。第三章 处理机调度与死锁 3.2.4 优先级调度算法和高响应比优先调度算法优先级调度算法和高响应比优先调度算法1.优先级调度算法优先级调度算法(priority-scheduling algorithm,PSA)PSA基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法根据该优先级进行调度。PSA可作为作业调度算法,也可作为进程调度算法。第三章 处理机调度与死锁 优先权的变化规律可描述为:由于等待时间与服务时间之和,就是系统对该作
8、业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为:2.高响应比优先调度算法高响应比优先调度算法(Higher Response Ratio Next,HRRN)3.2.4 优先级调度算法和高响应比优先调度算法优先级调度算法和高响应比优先调度算法HRRN考虑了作业的等待时间和作业运行时间。第三章 处理机调度与死锁 3.3 进程调度进程调度3.3.1 进程调度的任务、机制和方式进程调度的任务、机制和方式1.进程调度的任务进程调度的任务(1)保存处理机的现场信息(2)按某种算法选取进程(3)把处理器分配给进程2.进程调度机制进程调度机制 为了实现进程调度,应具有如下三个基本机制:(1)排
9、队器。将系统中所有的就绪进程按照一定的方式排成一个或多个队列。第三章 处理机调度与死锁 3.3.1 进程调度的任务、机制和方式进程调度的任务、机制和方式2.进程调度机制进程调度机制(2)分派器。从就绪队列中取出由进程调度程序所选定的进程,然后进行从分派器到新选出进程间的上下文切换,将处理机分配给该进程。(3)上下文切换机制。两对上下文切换:操作系统将保存当前进程的上下文,而装入分派程序的上下文,以便分派程序运行;移出分派程序的上下文,而把新选进程的CPU现场信息装入到处理机的各个相应寄存器中。第三章 处理机调度与死锁 3进程调度方式进程调度方式 1)非抢占方式(Nonpreemptive Mo
10、de)在采用这种调度方式时,一旦把处理机分配给某进程后,不管它要运行多长时间,都一直让它运行下去,决不会因为时钟中断等原因而抢占正在运行进程的处理机,也不允许其它进程抢占已经分配给它的处理机。直至该进程完成,自愿释放处理机,或发生某事件而被阻塞时,才再把处理机分配给其他进程。3.3.1 进程调度的任务、机制和方式进程调度的任务、机制和方式自行分析:引起进程调度的原因。自行分析:引起进程调度的原因。第三章 处理机调度与死锁 2)抢占方式抢占方式(Preemptive Mode)允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。抢占调度方式是基于一定原则
11、的,主要有如下几条:3进程调度方式进程调度方式 优先权原则。允许优先权高的新到进程抢占当前进程的处理机。短进程优先原则。允许新到的短进程短可以抢占当前较长进程的处理机。时间片原则。各进程按时间片轮流运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。第三章 处理机调度与死锁 3.3.2 轮转调度算法轮转调度算法1轮转法的基本原理轮转法的基本原理 基于时间片的轮转(Round Robin,RR)调度算法。就绪队列上的每个进程每次仅运行一个时间片。系统将所有的就绪进程按FCFS策略排成一个就绪队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。当执行的时间片用完时,调度程序便把
12、处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间。第三章 处理机调度与死锁 3.3.2 轮转调度算法轮转调度算法2进程切换时机进程切换时机 若一个时间片未用完,正在运行的进程便已经完成,则立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首的进程运行,并启动一个新的时间片。在一个时间片用完时,计时器中断处理程序被激活。3时间片大小的确定时间片大小的确定 时间片的大小对系统性能有很大的影响。可取的时间片大小是略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成。第三章
13、处理机调度与死锁 3.3.3 优先级调度算法优先级调度算法1.优先级调度算法的类型优先级调度算法的类型(1)非抢占式优先级调度算法(2)抢占式优先级调度算法 把处理机分配给优先级最高的进程,使之执行。但在执行期间,只要出现了另一个其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。第三章 处理机调度与死锁 3.3.3 优先级调度算法优先级调度算法2.优先级的类型优先级的类型(1)静态优先级 静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变。确定优先级大小的依据有:进程类型。通常系统进程的优先级高于一般用户进程;进程对资源的需求。对资源要求少的进程应赋予较高的优先级;
14、用户要求。(2)动态优先级 在创建进程初赋予一个优先级,然后其值随进程的推进或等待时间的增加而改变。第三章 处理机调度与死锁 3.3.3 多队列调度算法多队列调度算法 该算法将系统中的进程就绪队列从一个拆分为若干个,将不同类型或性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列也可设置不同的优先级。第三章 处理机调度与死锁 图 3-5 多级反馈队列调度算法 3.3.4 多级反馈队列多级反馈队列(multileved feedback queue)调度算法调度算法1.调度机制调度机制第三章 处理机调度与死锁 (1)设置多
15、个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同。3.3.4 多级反馈队列多级反馈队列(multileved feedback queue)调度算法调度算法1.调度机制调度机制第三章 处理机调度与死锁 (2)每个队列都采用FCFS算法。当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;否则,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间
16、片后仍未完成,再依次将它放入第三队列,如此下去,当一个长进程从第一队列依次降到第n队列后,在第n队列中便采取按RR方式运行。3.3.4 多级反馈队列多级反馈队列(multileved feedback queue)调度算法调度算法1.调度机制调度机制第三章 处理机调度与死锁 (3)按队列优先级调度。仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列,则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高
17、优先权进程。3.3.4 多级反馈队列多级反馈队列(multileved feedback queue)调度算法调度算法1.调度机制调度机制第三章 处理机调度与死锁 3.3.6 基于公平原则的调度算法基于公平原则的调度算法1.保证调度算法保证调度算法 向用户所做出的保证并不是优先运行,而是明确的性能保证,该算法做到调度的公平性。在实施公平调度算法时系统须具有的功能:(1)跟踪计算每个进程自创建以来已经执行的处理时间。(2)计算每个进程应获得的处理机时间。(3)计算进程获得处理机时间的比率。(4)比较各进程获得处理机时间的比率。(5)调度程序应选择比率最小的进程将处理机分配给它,并让该进程一直运行
18、,直到超过最接近它的进程比率为止。第三章 处理机调度与死锁 3.3.6 基于公平原则的调度算法基于公平原则的调度算法2.公平分享调度算法公平分享调度算法 在该调度算法中,调度的公平性主要是针对用户而言,使所有用户能获得相同的处理机时间,或所要求的时间比例。第三章 处理机调度与死锁 3.4 实实 时时 调调 度度3.4.1实现实时调度的基本条件实现实时调度的基本条件1提供必要的信息提供必要的信息 (1)就绪时间。该任务成为就绪状态的起始时间;(2)开始截止时间和完成截止时间;(3)处理时间;(4)资源要求;(5)优先级。如果某任务的开始截止时间 已经错过,则为该任务赋予“绝对”优先级;如果开始截
19、 止时间的推迟对任务的继续运行无重大影响,则可为该 任务赋予“相对”优先级。第三章 处理机调度与死锁 2系统处理能力强系统处理能力强 在实时系统中,通常都有着多个实时任务。假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件:3.4.1实现实时调度的基本条件实现实时调度的基本条件提高系统处理能力的途径:其一是增强单处理机系统的处理能力,以显著地减少对每一个任务的处理时间;其二是采用多处理机系统。第三章 处理机调度与死锁 3.4.1实现实时调度的基本条件实现实时调度的基本条件3采用抢占式调度机制采用抢占式调度机制在含有硬实
20、时任务的实时系统中,广泛采用抢占机制。当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,这样便可满足该硬实时任务对截止时间的要求。4具有快速切换机制具有快速切换机制(1)对外部中断的快速响应能力。具有快速硬件中断机构(2)快速的任务分派能力。适当地减小每个运行功能单位,以减少任务切换的时间开销。第三章 处理机调度与死锁 3.4.2实时调度算法的分类实时调度算法的分类1非抢占式调度算法非抢占式调度算法1)非抢占式轮转调度算法该算法常用于工业生产的群控系统中,由一台计算机控制若干个相同的(或类似的)对象,为每一个被控对象建立一个实时任务,并将它们排成一个轮转队列。
21、2)非抢占式优先调度算法针对较为严格的实时任务,采用该算法为这些任务赋予较高的优先级。当这些实时任务到达时,把它们安排在就绪队列的队首,等待当前任务自我终止或运行完成后才能被调度执行。第三章 处理机调度与死锁 3.4.2实时调度算法的分类实时调度算法的分类2抢占式调度算法抢占式调度算法1)基于时钟中断的抢占式优先权调度算法 在某实时任务到达后,如果该任务的优先级高于当前任务的优先级,这时并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务。第三章 处理机调度与死锁 3.4.2实时调度算法的分类实时调度算法的分类2抢占式调度算法抢占
22、式调度算法2)立即抢占(Immediate Preemption)的优先权调度算法在这种调度策略中,要求操作系统具有快速响应外部事件中断的能力。一旦出现外部中断,只要当前任务未处于临界区,便立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务。第三章 处理机调度与死锁 图3-5 实时进程调度 第三章 处理机调度与死锁 3.4.3最早截止时间优先最早截止时间优先EDF(Earliest Deadline First)算法算法该算法是根据任务的开始截止时间来确定任务的优先级。截止时间愈早,其优先级愈高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的早晚排序;当然,具有最早
23、截止时间的任务排在队列的最前面。调度程序在选择任务时,总是选择就绪队列中的第一个任务,为之分配处理机,使之投入运行。最早截止时间优先算法既可用于抢占式调度,也可用于非抢占式调度方式中。第三章 处理机调度与死锁 图 3-6EDF算法用于非抢占调度的调度方式3.4.3最早截止时间优先最早截止时间优先EDF(Earliest Deadline First)算法算法1.非抢占式调度方式用于非周期实时任务第三章 处理机调度与死锁 2.抢占式调度方式用于周期实时任务抢占式调度方式用于周期实时任务图3-7 EDF算法用于抢占调度方式第三章 处理机调度与死锁 3.4.4 最低松弛度优先最低松弛度优先LLF(L
24、east Laxity First)算法算法 该算法是根据任务紧急的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高,以使之优先执行。在实现该算法时要求系统中有一个按松弛度排序的实时任务就绪队列,松弛度最低的任务排在队列最前面,调度程序总是选择就绪队列中的队首任务执行。该算法主要用于可抢占调度方式中。第三章 处理机调度与死锁 3.4.4 最低松弛度优先最低松弛度优先LLF(Least Laxity First)算法算法图 3-8A和B任务每次必须完成的时间 u例:假如在一个实时系统中,有两个周期性实时任务A和B,任务A要求每20ms执行一次,执行时间为10ms;任务B
25、只要求每50ms执行一次,执行时间为25ms。第三章 处理机调度与死锁 图 3-9利用LLF算法进行调度的情况 3.4.4 最低松弛度优先最低松弛度优先LLF(Least Laxity First)算法算法 为保证不遗漏任何一次截止时间,应采用最低松弛度优先的抢占调度策略。松弛度=必须完成时间-其本身的运行时间-当前时间第三章 处理机调度与死锁 u调度算法总结调度算法总结1.1.先来闲服务算法(先来闲服务算法(FCFSFCFS)2.2.短作业优先(短作业优先(SJFSJF)3.优先级调度算法(优先级调度算法(PSA)4.高响应比优先调度算法(高响应比优先调度算法(HRRN)5.时间片轮转法(时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 第四 版汤小丹梁红兵哲凤屏 201620171 研究 word 版本

限制150内