收藏 分享(赏)

计算机操作系统课件(第四版)第三章.ppt

上传人:精品资料 文档编号:10864438 上传时间:2020-01-16 格式:PPT 页数:75 大小:1.33MB
下载 相关 举报
计算机操作系统课件(第四版)第三章.ppt_第1页
第1页 / 共75页
计算机操作系统课件(第四版)第三章.ppt_第2页
第2页 / 共75页
计算机操作系统课件(第四版)第三章.ppt_第3页
第3页 / 共75页
计算机操作系统课件(第四版)第三章.ppt_第4页
第4页 / 共75页
计算机操作系统课件(第四版)第三章.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第三章 处理机调度与死锁,第一节 处理机调度的层次 第二节 调度队列模型和调度准则 第三节 调度算法 第四节 实时调度 第五节 产生死锁的原因和必要条件 第六节 预防死锁的方法 第七节 死锁的检测和解除,3.1 处理机调度的层次,高级调度 低级调度 中级调度,3.1.1、高级调度,高级调度(作业调度/ 长程调度) 决定把外存上处于后备队列中的哪些作业调入内存。 调度对象:作业,1、作业和作业步 作业:程序 + 数据 + 作业说明书 作业步:作业运行期间的每个加工步骤,例如:编译 连结装配 运行,2、作业控制块 ( JCB ) JCB:保存了系统对作业进行管理和调度所需的全部信息。作业在系统中存

2、在的标志。 JCB包含的内容有:作业标识、用户名称、用户账号、作业类型、作业状态、调度信息、资源需求、时间信息、资源使用情况等。 JCB的创建和回收,3、高级调度(作业 / 长程 / 接纳调度) 概念:决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,准备执行。多用于批处理系统 每次调度时要考虑:(1)接纳多少作业:取决于多道程序度(2)接纳哪些作业:取决于调度算法 作业调度运行频率低,几分钟一次,低级调度(进程 / 短程调度) 决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作 是最基本的调度,在三种类型的OS中都必须配置,

3、3.1.2、低级调度,1、低级调度的功能 保存处理机的现场信息 按照某种算法选取进程 把处理机分配给进程,2、进程调度中的三个基本机制 排队器 分派器(分派程序) 上下文切换机制,3、进程调度方式 非抢占方式 抢占方式,1)非抢占方式: 一旦进程获得处理机,则一直执行,直到该进程完成或被阻塞 此方式下,可能引起进程调度的因素: (1)正在执行的进程执行完毕,或因发生某事件不能再继续执行 (2)执行中的进程因提出I/O请求而暂停执行 (3)在进程通信或同步过程中执行了某原语,P操作等 优点:简单、系统开销小,适合大多数批处理系统 缺点:无法满足紧急任务的需要,不适合实时系统,2)抢占方式: 允许

4、调度程序根据某原则,暂停正在执行的进程,将处理机重新分配 抢占原则: 优先权原则就绪的高优先权进程有权抢占低优先权进程的CPU 短作业优先原则就绪的短作业(进程)有权抢占长作业(进程)的CPU 时间片原则 一个时间片用完后,系统重新进行进程调度,中级调度(中程调度) 目的:提高内存利用率和系统吞吐量 按一定的算法将外存上已具备运行条件的挂起进程换入内存,挂到就绪队列上,准备执行;而将内存中处于阻塞状态的某些进程换出至外存。,3.1.3、中级调度,调度队列模型 选择调度方式和调度算法的若干准则,3.2、调度队列模型,3.2.1、调度队列模型,3.2.2、选择调度方式和算法的选择准则,1、面向用户

5、的准则 (1)周转时间短评价批处理系统周转时间:是指从作业被提交系统开始,到作业完成为止的这段时间间隔。,包括四部分时间:1)等待作业调度时间2)等待进程调度时间3)执行时间4)进程等待I/O操作完成时间,(2)响应时间快评价分时系统响应时间:从用户通过键盘提交一个请求开始直至系统首次产生响应为止。包括三部分时间: 1)从键盘输入的请求信息传送到处理机的时间 2)处理时间 3)响应信息回送终端的时间,(3)截止时间保证评价实时系统截止时间:任务必须开始执行的最迟时间,或必须完成的最迟时间。(4)优先权准则三种系统中皆适用,2、面向系统的准则 系统吞吐量高评价批处理系统 处理机利用率好针对大中型

6、系统 各类资源的平衡利用对大中型系统,3.3 调度算法,先来先服务和短作业(进程)优先调度算法 高优先权先调度算法 基于时间片的轮转调度算法,3.2.1、先来先服务和短作业(进程)优先调度算法,1、先来先服务(FCFS)调度算法 可用于作业调度和进程调度 用于作业调度: 每次从后备作业队列中选择最先进入的作业,将它们调入内存,为它们分配资源、创建进程,然后挂到就绪进程队列上。,用于进程调度: 每次从就绪进程队列中选择最先进入的进程,为之分配处理机,使之投入运行。 直到运行完成进程才会让出处理机-非抢占式。 有利于长作业,而不利于短作业。,性能评价: 周转时间 = 完成时间 到达时间 带权周转时

7、间 = 周转时间 / 服务(运行)时间,2、短作业 / 进程优先(SJF/SPF),短作业优先(SJF) 从后备队列中选择估计运行时间最短的作业,调入内存运行。 短进程优先(SPF) 从就绪队列中选出估计运行时间最短的进程,将处理机分配给它,使它立即执行。 直到运行完成进程才会让出处理机-非抢占式。 缺点: 对长作业不利,有可能长期不被调度; 完全没考虑作业的紧迫程度(某些特殊的); 用户做出的估计时间带有很大的主观性。,3.5,14,18,4,4,E,2,10,12,5,2,C,2,6,7,3,1,B,5.5,11,14,2,3,D,2.1,1,带权周转时间,8,4,周转时间,4,完成时间,

8、FJS,2.8,1,带权周转时间,9,4,周转时间,4,完成时间,FCFS,4,服务时间,0,到达时间,平均,A,进程名,作 调 业度 情算 况法,周转时间 = 完成时间 到达时间 带权周转时间 = 周转时间 / 服务时间,3.3.2、高优先权先调度算法,既能用于作业调度,也可用于进程调度。 作业调度:从后备队列中选择若干个优先权最高的作业装入内存。 进程调度:把处理机分配给就绪队列中优先权最高的进程 两种占用CPU的方式:非抢占式优先权算法抢占式优先权算法,1、优先权调度算法的类型,非抢占式优先权算法 系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程就一直执行下去,直至完成;或因发

9、生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。 主要用于批处理系统,抢占式优先权算法 新的就绪进程i,优先权Pi。正在执行的进程j,优先权Pj。若PiPj,做进程切换。新进程i执行。 优点:能更好的满足紧迫作业的要求。主要用于比较严格的实时系统。,2、优先权的类型1)静态优先权在进程创建时确定的,在进程整个运行期间保持不变,优先权利用某一范围的整数来表示,该整数称为优先数。如:07,0255,确定优先权的依据: (1)进程类型 (2)进程对资源的需求 (3)用户要求,注:规定优先数越小,其优先权越高,3,3,4,C,4,8,2,B,1,1,8,D,带权周转时间

10、,周转时间,完成时间,2,优先权,非抢占式优先权算法,5,服务时间,0,到达时间,A,进程名,作 调 业度 情算 况法,平均,6.25,1.3,例:非抢占式优先权算法,2) 动态优先权 在进程创建时创立的优先权,可随进程的推进或等待时间的增加而改变。如等待时间长,优先权升高。,等待时间 + 要求服务时间 优先权 = -要求服务时间等待时间 + 要求服务时间 响应时间 响应比(Rp) = - = -要求服务时间 要求服务时间,3、高响应比优先调度算法(HRRN) 为每个进程引入动态优先权,随着等待时间增加优先权提高。,优点: 等待时间相同,短作业优先权高 (即SPF) 要求服务时间相同,等待时间

11、长,优先权高(即FCFS) 对于长作业,在等待足够时间后,可获得处理机,2,8,E,4,4,C,1.17,7,9,6,2,B,5,6,D,2.14,1,带权周转时间,8,3,周转时间,3,完成时间,3,服务时间,0,到达时间,平均,A,进程名,作 调 业度 情算 况法,执行顺序:ABCED,HRRN(R大, 优先权高),3.3.3、基于时间片的轮转调度算法,1、时间片轮转法,1)基本原理 系统将所有的就绪进程按FIFO原则排成一个队列,将CPU分配给队首进程,执行一个时间片。在时间片内进程未完,则插入就绪队列未尾,CPU交给下一个进程。,2)时间片大小的确定 时间片略大于一次典型的交互所需要的

12、时间。,4,4,E,4,2,C,3,1,B,2,3,D,带权周转时间,周转时间,完成时间,RR q=4,带权周转时间,周转时间,完成时间,RR q=1,4,服务时间,0,到达时间,平均,A,进程名,作 调 业度 情算 况法,周转时间 = 完成时间 到达时间 带权周转时间 = 周转时间 / 服务时间,2、多级反馈队列调度算法,原理: 设置多个就绪队列,并为各个队列赋予不同的优先级和不同长度的时间片; 新创建的进程挂到第一优先级的队列后,然后按 FCFS 原则排队等待调度。当轮到其执行时,如它能在时间片内完成,便撤离系统;如果不能完成,便被挂入第二级队列后,最后一级队列采用时间片轮转法; 仅当第一

13、级队列空闲时,调度程序才调度第二级队列中的进程运行,依次类推;新进程可抢占低级进程的处理机。,就,级,1,绪,队,列,空,就,级,2,绪,队,列,就,级,3,绪,队,列,运行,等待,时间片 小 大,优先级 高 低,多级反馈队列调度算法的性能多级反馈队列调度算法能较好地满足各种类型用户(进程)的需要: 终端(交互)型作业用户 短批处理作业用户 长批处理作业用户,3.3.4、基于公平原则的调度算法,1、保证调度算法,如果系统中有n个相同类型的进程同时运行,保证每个进程都获得相同的处理机时间1/n。,2、公平分享调度算法 使所有用户能获得相同的处理机时间。,3.4 实时调度,实现实时调度的基本概念和

14、条件 实时调度算法的分类 常见的几种实时调度算法,选学,1.实时调度是为了完成实时处理任务而分配处理机的调度方法。,2.硬实时任务要求计算机系统必须在用户给定的时限内完成3.软实时任务允许计算机系统在用户给定的时限左右处理完毕。,提供更详细的调度信息: 就绪时间、开始截止时间或完成截止时间、处理时间、资源要求、优先级等; 含有硬实时任务的实时系统中,广泛采用基于优先级的抢占式调度策略,实时调度算法分类:,非抢占式轮转调度算法:只适用于一般实时信息处理系统 非抢占式优先级调度算法:优先级最高的实时任务排在就绪队列队首,当前任务终止或完成后才被调度。基于时钟中断抢占式优先级调度算法:新到的实时任务

15、的优先级高于当前任务时,并不立即抢占CPU,而是等到时钟中断到来,才进行切换。用于大多数的实时系统中。 立即抢占的优先级调度算法:这种算法适用于实时要求比较严格的实时控制系统。,常用的几种实时调度算法,1、最早截止时间优先算法(EDF)该算法根据任务的开始截止时间来确定任务的优先级。截止时间越早,优先级越高。该算法要求实时任务的就绪队列按任务截止时间的早晚排序。调度程序总选择队首的任务执行。该算法可用于抢占式和非抢占式调度。,1,3,4,2,非抢占式调度方式,2、最低松弛度优先算法(LLF)该算法根据任务的松弛度来确定任务的优先级。松弛度越低,优先级越高。 松弛度任务必须完成的时间运行时间当前

16、时间该算法要求实时任务的就绪队列按松弛度排序。调度程序总选择队首的任务执行。该算法主要用于抢占式调度方式。,松弛度任务必须完成的时间运行时间当前时间,例:实时系统中有两个周期性实时任务A、B,任务A每20ms执行一次,执行时间10ms;任务B每50ms执行一次,执行时间25ms。采用抢占式LLF算法:,松弛度,3、优先级倒置问题(1)问题的形成即OS中广泛采用的优先级调度算法和抢占方式。,举例: 三个独立进程P1、P2、P3,优先级由高到低。P1、P3共享临界资源进行交互。代码: P1:.P(mutex);CS-1;V(mutex).; P2: .program2.; P3: .P(mutex

17、);CS-3;V(mutex).; 执行顺序:P3P2(抢占)P1(阻塞)P2(执行结束)P3(执行结束)P1(执行结束),问题:P1优先级最高,但最后执行结束,3、优先级倒置问题(续)(2)问题的解决方案,方案2:建立在动态优先级继承基础上。 规定:P1阻塞时由P3继承P1的优先级,一直保持到P3退出临界区。目的:防止P2进程插进来,延缓P3退出临界区。,方案1:P3进入临界区后不允许处理机被抢占。 适用情况:系统中临界区较短且不多。,3.5 产生死锁的原因和必要条件,产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法,3.5.1、产生死锁的原因,一、死锁(Deadlock)定义: 死锁

18、是指两个或两个以上的进程在运行过程中,因争夺资源而造成的一种互相等待(谁也无法再继续推进)的现象,若无外力作用,它们都将无法推进下去。,二、产生死锁的原因: 1、竞争资源 2、进程间推进顺序非法,1、竞争资源引起进程死锁1.1 资源的两种分类:,1.2 竞争不可抢占性资源引起死锁:系统中配备的非剥夺性资源的数量不能满足诸进程运行的需要时,会使进程因争夺资源而陷入僵局。,1.3 竞争可消耗资源引起死锁:,2、进程间推进顺序不当引起死锁 进程推进顺序合法不会导致死锁 进程推进顺序非法可能会导致死,图1:顺序合法,消息1,P1,消息2,P2,P3,消息3,图2:顺序非法,消息1,P1,消息2,P2,

19、P3,消息3,3.5.2、产生死锁的必要条件,1、互斥条件 一个资源一次只能被一个进程使用。 2、请求和保持条件(部分分配) 保留已经得到的资源,还要求其它的资源。 3、不可抢占条件 资源只能被占有者释放,不能被其它进程强行抢占。 4、循环等待条件(循环等待) 系统中的进程形成了环形的资源请求链。,3.5.3、处理死锁的基本方法,(1)预防死锁 (2)避免死锁 (3)检测死锁 (4)解除死锁,3.6 预防死锁的方法,预防死锁 系统安全状态 利用银行家算法避免死锁,3.6.1、预防死锁,一、预防死锁的实质: 通过设置某些限制条件,预防发生死锁。 二、预防死锁的方法:“互斥条件”由资源的性质决定。

20、1、摒弃“请求和保持”条件 在开始运行前(创建时),一次性分配给进程它所需的“全部”资源。 简单易实现,安全性高;资源浪费。,2、摒弃“不可抢占”条件 当进程有新的资源请求时,如果得不到满足,要先释放原先占有的资源,待以后重新申请。 等价于此进程“被剥夺”了已经占有的资源。3、摒弃“循环等待”条件 把系统资源按类型排序,进程要按照资源的序号递增的次序提出资源申请。 较上述两种方法的综合性能要好;但系统配置资源的序号要稳定,固定的访问顺序不一定合理。,例1:进程A占有3号资源,现在又申请5号资源占有资源号小于申请资源号,此申请可以满足。进程B占有5号资源,现在又申请3号资源由于53,所以此申请不

21、能满足。进程B要想得到3号资源,必须先放弃5号以及所有编号比3大的资源。,例2:哲学家就餐给哲学家和筷子编号04,3.6.2、系统安全状态,死锁,实质:把系统的状态分为安全状态和不安全状态,只要能使系统始终处于安全状态,便可避免发生死锁,1、安全状态 允许进程动态的申请资源,但在分配前,应先计算分配的安全性。 所谓“安全状态”:指系统能按某种进程顺序(P1,P2,Pn),来为每个进程Pi分配其所需资源,直至最大需求,使每个进程都可以顺利完成。反之,则系统处于不安全状态。不安全状态不一定发生死锁,但死锁一定属于不安全状态。,2、安全状态之例:,安 全 状 态,不 安 全 状 态,该算法能用于银行

22、系统现金贷款的发放而得名 银行家算法的实质就是要设法保证系统动态分配资源后仍然保持安全状态,从而避免死锁的发生。 要求进程预先告知自己的最大资源需求,并且假设系统拥有固定的资源总量。,3.6.2、利用银行家算法避免死锁,1、相关的数据结构: 可用资源向量Available 最大需求矩阵Max 分配矩阵Allocation 需求矩阵Need 资源请求向量Requesti,3、安全性算法:工作向量Work、Finish,2、银行家算法: (1) Requesti=Need? (2) Requesti= Available? (3)修改相关向量的值 (4)执行安全性算法,进程,资源,某时刻系统资源分

23、配情况,(1)该时刻T0系统是安全的吗? 解:利用安全性算法对该时刻的资源分配情况进行分析,方法如下图:,1 2 2 2 0 0 5 3 2 true,0 1 1 2 1 1 7 4 3 true,4 3 1 2 1 1 7 4 5 true,6 0 0 3 0 2 10 4 7 true,7 4 3 0 1 0 10 5 7 true,3 3 2,5 3 2,7 4 3,7 4 5,10 4 7,P 1,P 3,P 4,P 2,P 0,(2)若此时P1请求资源,发出请求向量Request1(1,0,2) 系统可以为满足请求吗? 解:系统按银行家算法进行检查: Request1(1,0,2)=

24、Need1(1,2,2) Request1(1,0,2)=Available(3,3,2) 系统先假定可为P1分配资源,修改相关向量值: 利用安全性算法检查此时系统是否安全。具体:,进程,资源,某时刻资源分配情况,3 0 2,0 2 0,2 3 0,3 0 2,0 2 0,2 3 0,进程,资源,某时刻资源分配情况,(3)若此时P4请求资源,发出请求向量Request4(3,3,0) 系统可以满足请求吗?解:系统按银行家算法进行检查: Request4(3,3,0)Available(2,3,0)因此,让P4等待。,A B C,A B C,A B C,A B C,3 3 2资源总数10 5 7

25、,7 4 3 1 2 2 6 0 0 0 1 1 4 3 1,0 1 0 2 0 0 3 0 2 2 1 1 0 0 2,7 5 3 3 2 2 9 0 2 2 2 2 4 3 3,P0 P1 P2 P3 P4,Available,Need,Allocation,Max,进程,资源,某时刻资源分配情况,3 0 2,0 2 0,2 3 0,(4)若此时P0请求资源,发出请求向量Request0(0,2,0)系统可以满足请求吗? 解:系统按银行家算法进行检查: Request0(0,2,0)=Need0(7,4,3) Request0(0,2,0)=Available(2,3,0)系统暂时先假定可

26、为P0分配资源,并修改有关数据进行安全性检查,Available(2,1,0)已不能满足任何进程的需要,故系统进入不安全状态,系统不能分配资源,0 3 0,7 2 3,2 1 0,3.7、死锁的检测与解除,含义:通过系统的检测机构,及时地检测出死锁的发生,确定与死锁有关的进程和资源。 方法:对资源分配图进行化简,检查是否存在循环等待。,1、资源分配图 P112 含义:该图是由一组结点N和一组边E组成的一个对偶G(N,E) e=(Pi,ri)是资源请求边, e=(ri,Pi)是资源分配边,3.7.1、死锁的检测,P1,P2,r1,r2,资源分配图,资源请求边,资源分配边,进程,资源,2、死锁定理 含义:S为死锁状态的充分条件是:当且仅当S状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理。简化方法:找一个既不阻塞又不孤立的进程结点,消去所有的边。最终,当所有进程结点都成为孤立结点,则该图称为可完全简化的,否则,称为不可完全简化的,P1,P2,r1,r2,资源分配图的简化过程,例1:资源分配图的简化,练习题:对下图进行简化,P1,P2,P3,P4,r1,r2,含义:将进程从死锁状态中解脱出来。 方法:1、撤销进程:撤销全部死锁进程或者选择被撤进程代价最小的。2、剥夺资源:从其他进程剥夺足够的资源给死锁进程,3.7.2、死锁的解除,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报