操作系统第5章-第9章(华中科技大学版).ppt
《操作系统第5章-第9章(华中科技大学版).ppt》由会员分享,可在线阅读,更多相关《操作系统第5章-第9章(华中科技大学版).ppt(261页珍藏版)》请在三一办公上搜索。
1、1,5.1 资源管理概述,OS的资源:包括各种硬件资源和软件资源。根据对资源的使用方式,可将资源分为:共享资源。如:CPU、内存空间、磁头、可重入的程序等使用方式:只让用,不让占,独占资源。如:打印机、卡片输入机 互斥的变量、队列、表格、文件等会修改的数据使用方式:只要不释放,系统不能强行收回,2,一、资源管理的一般功能 1、构造描述资源的数据结构 操作系统通过这些数据结构而 感知到资源的存在,并对资源进行管理,这些数据结构,应包含描述资源的:物理名(内部标识)、逻辑名(用户定义的名称)分配状态 类型、地址、等所有信息,3,3.实施资源的分配(及回收)根据分配原则,将资源分配给请求的用户 并完
2、成相应操作。如:CPU:恢复现场 内存:将程序调入内存、改内存分配标志 独占资源:上锁,2.制定资源的分配原则 决定资源应先分给谁(当有多个进程请求时)何时分配,分配多少等问题,当资源使用完毕后,收回资源,4,4.存取控制和安全保护 对资源的存取进行控制 并对资源实施安全保护措施(如:内存、文件的保护),5.其他的特殊功能,5,三.资源的分配方式(接受者)1.静态分配(接受者是作业)系统在调度一个作业运行时:根据作业的需求进行资源的分配 在作业运行完毕后,才收回所分配的全部资源,2.动态分配(接受者是进程)在进程的运行过程中,根据进程提出的请求 进行资源的分配 资源使用完毕(共享)、或被进程释
3、放(独占)后 回收该资源,6,四.资源的分类 为了简化系统的设计,对不同的资源,可采用不同的方式进行分类。常用的分类方式有:,1.硬件资源和软件资源 硬件:如处理机、主存、外部设备 软件:如文件、消息、数据结构,2.同类资源 如:打印机类、显示器类、内存区域等,.虚拟资源和实际资源,虚拟资源和实际资源,实际资源,虚拟资源,目的:提高独占资源的利用率,5.3 资源分配的策略,资源的分配策略 指获得资源的先后次序,通常的实现方法是:将资源的请求者按某种原则 形成一个具有先后次序的请求队列,当资源可用时,按队列的次序分配资源,9,1.先请求先服务(FIFO First In First Out)排序
4、原则:按请求的先后排序。即:新产生的请求均排在队尾,分配时在队首,表头,适用范围:系统中的一切资源优点:简单、次序不会改变,因此系统开销小 缺点:有时显得不合理、系统无法进行干预,10,2.优先调度 系统对每个进程(或作业),都指定一个优先级 以反映请求资源的紧迫程度,排序原则:按优先级的高低排序 即:新产生的请求,按其优先级的高低 插入到队列中相应的位置,11,优点:系统可进行干预,以优化资源的使用方式,优先级的确定:主要由系统定,并可动态改变。如:进程时间片到:收回CPU,优先级降低 自动放弃CPU:优先级升高,问题:优先级相同的多个请求,如何排序?,缺点:插入时要搜索队列、有时无法用队列
5、实现,适用的资源:由于系统开销较大,主要用于 系统中的紧缺资源(如处理机),12,多优先级队列 适用于:每个优先级上,有很多进程 排序:优先级不同,所排的队列不同 优先级相同,在同一队列中按FIFO排序,分配方式:仅当高优先级队列为空时 才考虑低优先级队列 优点:减少了系统的排序开销,3.针对设备特性的调度 思想:分配策略制定的资源访问次序 应与资源的实际使用次序相一致 目的:提高资源访问的平均速度,如:读、写磁盘上的多个扇区时,对数据的访问,涉及到磁头定位的:柱面(磁道):由磁头的直线运动得到 耗时较长 扇区:通过磁盘的旋转得到,耗时较短 盘面:由不同的磁头的得到,不耗时,故要根据耗时的长短
6、,依次决定访问次序,例:不好的访问次序,好的访问次序:应在磁头的一次移动或磁盘的一周旋转中完成,磁头,16,5.4 死锁的概念,一.什么是死锁 1.死锁的例子(1)交通堵塞,17,(2)不恰当的 P 操作 当:mutex=1 full=0 empty=n 时 p1()p2()while(生产未完成)while(还要继续消费)p(mutex)生产一个产品;p(full);p(empty);从缓冲区中取产品;p(mutex);v(mutex);送一个产品到缓冲区;v(empty);v(mutex);v(full);消费一个产品;,18,(3)设备的共享 例:设系统只有一台打印机(R1),和一台光标
7、 记阅读机(R2),由进程p1、p2 共享。用信号灯的P、V操作,控制资源的申请和释放,其信号灯的设置为:s1:表示R1是否可用,初值为1 s2:表示R2是否可用,初值为1,讨论资源分配的各个环节,看什么情况是安全的 先看资源的请求方式:,19,进程P1 进程P2 p(s1);p(s2);申请R1 申请R2 释放R1 释放R2 v(s1);v(s2);p(s2);p(s1);申请R2 申请R1 释放R2 释放R1 v(s2);v(s1);,原因:会同时封锁二个资源,进程P1 进程P2p(s1);p(s2);申请R1 申请R2p(s2);p(s1);申请R2 申请R1,释放R1释放R2 v(s1
8、);v(s2);释放R2释放R1 v(s2);v(s1);,安全!不足:对同一个进程来说 资源的使用没有并发,不安全!,20,进 程 P1 进 程 P2p(s1);p(s2);申请R1 申请R2p(s2);p(s1);又申请R2 又申请R1 释放R1 释放R2 v(s1);v(s2);释放R2 释放R1v(s2);v(s1);,思考:若二进程顺序执行,是否安全呢?二进程如何执行,才会发生死锁?,由于系统已没有它们所等待的资源 而占有资源的进程本身也在等待(无法释放资源)从而造成一种永久的相互等待死锁,21,发生死锁的进程执行序列:时刻t1:进程 p1占用打印机 时刻t2:进程 p2占用光标记阅
9、读机 时刻t3:进程 p1又请求光标记阅读机,等待 时刻t4:进程 p2又请求打印机,等待,思考:从资源的使用角度来看 对死锁问题应如何进行一般性的描述呢?,22,2.什么是死锁 在两个或多个并发进程中,如果每个进程都持有某种资源,而又都同时等待着 别的进程释放它们保持着的资源,即:在两个或多个并发进程中,所有的进程 都相互等待着其他的进程释放它们所持有的 某种资源,否则就不能向前推进,否则就不能向前推进 称这一组进程产生了死锁,(它们中),23,强调:(1)死锁是在n(n 2)个进程(不一定是所有进程)之间发生的一种状态 这种状态一旦发生,就永远无法改变?,(2)系统中已没有死锁进程所等待的
10、资源了(已被它们自己全占用了,或即使有也不够),(3)平常说系统会死锁,是指:系统存在着死锁的可能(由资源得请求序列定)(但不一定会出现,由资源的实际使用定),探讨:出现死锁的原因到底是什么呢?,24,二.死锁的起因和条件(对设备的共享例),阴影区:资源被共享,进程的执行轨迹不可能进入,从图中可看出:1、死锁的原因(1)系统的资源总数各进程的资源总需求,能进行一般性的表述吗?因此:死锁没有充分条件!,(2)进程推进的顺序不合理(对资源的申请次序、使用方式、占有方式),26,(1)避开危险区(一个进程同时得到全部的资源)(2)将危险区变为阴影区(二进程申请资源次序一致)(3)从危险区回退(强行收
11、回某进程占有的资源),2、解决死锁的方法:至少可看出三种,3.死锁的示意表示,占有边,占有边,申请边或等待边,申请边或等待边,用途:可描述资源的分配过程,若死锁则构成有向环,可用资源 进程有向图描述资源的使用状态,问题:若同一类型的资源有多个怎么表示?能否找到死锁的某些判别方法呢?判别,(1)资源次序图的一般形式 当同一资源有多个时,死锁的判别方法,资源的占有和申请可表示为:,4、死锁的判别方法,(a)若资源分配图中无环,则不存在死锁(b)若资源分配图中有环,且环内每类资源只有一个个体,则死锁发生(此时环是充分条件)(c)若资源分配图中有环,且环内有的资源有多个个体,则无法判定死锁是否发生(此
12、时环不是充分条件)(d)对资源分配图可进行化简,若化简后的图中仍有环(无法化简),则环中的进程被死锁,(2)死锁的判别方法,例1:,?,?,环?,例:,化简后的状态:,死锁?,(a)若节点只有占有边,则可去掉占有边并释放资源(b)当有了空闲的资源后,等待边可变为占有边,化 简 的 方 法,33,(1)互斥条件 涉及的资源为临界资源,5、死锁的必要条件,(2)不剥夺条件 进程占有的资源 不能被其他进程强行剥夺,(3)部分分配 每次仅申请一部分资源。在占有资源以后,还会继续申请新资源。只有不满足才等待,(4)环路条件 在进程与资源有向图中,存在有向环,意义:只要其中一条不成立,死锁就不会发生,34
13、,三.死锁的预防和避免 基本点:破坏死锁的某一个必要条件(1)互斥条件(2)不剥夺条件(3)部分分配(4)环路条件,问题:破坏哪些必要条件是可行的呢?,35,降低了设备的利用率(只用很短时间,或根本不用)造成不必要的等待(一开始,可能并不用)用户可能提不出所需的全部资源,1.静态预防死锁(死锁不会发生)在作业调度时,为选中的作业 分配它所需要的所有临界资源 在作业的整个运行期间,这些资源都为它独占,缺点:,思考:(1)破坏了死锁必要条件中的哪一条?(2)资源利用率高不高?为什么?,2.有序资源分配法(不让死锁出现)按资源类对资源进行排序(每一类给定一个唯一的序号)分配请求必须以上升的次序进行;
14、而且同一类型的资源必须一次申请完,思考:破坏了死锁的哪一个必要条件?如何破坏的?,37,5,假定n个进程(不妨设为P1Pn)被死锁 而且 Pi占有的资源序号最高(如5号),P1,Pi,Pn,4,5,5,则Pi等待的资源已被死锁的进程占有,而根据分配原则:分配请求必须以上升的次序进行 而且同一类的资源必须一次申请完,5,矛盾!,38,若:资源的使用次序与资源类的排序不一致时 低序号资源必须预先申请,降低了资源的利用率(用户很难做到与资源类的排序相一致),例如一个进程的资源请求次序为:p(S2)占住R2 p(S5)使用R5 使用R2,不足的地方?,能否做到:使用资源前才申请,而又不出现死锁呢?,基
15、本思想:当系统现有的资源可保证申请进程完成时,才进行分配。否则,申请进程等待,3.银行家算法,不 进 行 分 配,进 行 分 配,Pi:,Pj:,银行家靠什么来积累财富呢?,说明:每次分配前都要进行相应的验证,P 0 8,Q 0 4,R 0 9,系统资源数:10,P 4 4,系统资源数:8,R 2 7,Q 2 2,系统资源数:4,系统资源数:2,思考:这种方法破坏了哪一个必要条件?它是如何避免死锁的呢?,Q 4 0,Q,系统资源数:0,系统资源数:4,P 8 0,P,系统资源数:0,系统资源数:8,例:某系统有三个进程共享同类型的10个资源进程已占资源数 还需资源数,基本原理:采用部分分配,且
16、允许环存在。但任何时候 都有一个占有资源的进程是可完成的,进程的完成序列为:Q P R.,该进程完成后,释放资源 则又有另一个进程是可完成的如此重复,直到系统中所有的进程完成,即:系统的资源分配图,在任何时候 都是可化简的(没有发生死锁),如上例中:进程的申请序列为:.R P Q,P 0 8,Q 0 4,R 0 9,系统资源数:10,P 4 4,系统资源数:8,R 2 7,Q 2 2,系统资源数:4,系统资源数:2,Q 4 0,Q,系统资源数:0,系统资源数:4,P 8 0,P,系统资源数:0,系统资源数:8,进程已占资源数 还需资源数,R,P,Q,.,.,要点:(1)每次分配前都进行检测(2
17、)确保死锁不会发生(3)对进程的资源申请方式不进行任何限制,不足:(1)还不够大胆。为什么?有些还需要的资源,以后可能不会再申请(2)对每类资源都要检测,开销较大 银行家算法的深入讨论,银行家算法的深入讨论,进程请求资源时可分三种情况进行处理:(1)每类资源还需数都 系统的拥有数:分配(2)每类资源还需数都 系统的拥有数:不分配,(3)仅部分资源类的还需数 系统的拥有数:则需判别系统的状态是否安全,若安全:不会死锁,分配 若不安全:可能会死锁,不分配,问题:如何对系统状态的安全进行判别呢?,系统状态的图论判别方法 将进程的还需资源也作为申请边:化简资源分配图 化简后,若图中所有的进程都是孤立节
18、点:则系统是安全的 否则,系统是不安全的(可能会死锁),系统状态的程序判别算法所需的数据结构(t为时间参数,参考P 113)进程向量:P(t)=(p1、ppn),系统拥有的资源向量:W(t)=(r1、rrm)初值:系统对每类资源的最大拥有数,所有进程占有资源矩阵:A(t)=(行:进程;列:资源)初值:全为0,所有进程还需资源矩阵:R(t)=(行:进程;列:资源)初值:各进程对各类资源的最大需求数,可完成的进程向量:L(t)初值为空,算法的描述:对任一时刻 tWhile(存在 pi P(t)R(i,t)W(t)P(t)=P(t)-pi L(t)=L(t)+pi W(t)=W(t)+A(i,t),
19、If P(t)=系统是安全的,不会死锁 else 系统是不安全的,其中的进程可能会死锁,对预防和避免死锁的评价 死锁出现的概率很小,而各种避免死锁的策略 都不同程度地降低了资源的利用率 因此一般的小系统,只对用户频繁使用的临界资源 才进行环路检测,问题:如果系统已出现死锁怎么办?,如写文件:若已上锁,进行环路检测,有环则收回CPU,四、死锁的检测和恢复,基本思想:允许死锁发生在适当的时机进行检测 若发现死锁,则进行恢复,1、死锁检测的方法(1)限定进程等待的时间(2)由系统管理员,观测进程的运行情况(3)定期执行检测算法(类似系统状态的判别,但仅用等待边进行),2、死锁恢复的方法(解开环)(1
20、)逐个撤销死锁的进程,直到死锁打开优点:简单、可行性较强缺点:部分进程重新执行,代价较高,(2)逐个收回死锁进程占有的资源,直到 死锁打开(进程回退,要记住所有的分配点),(3)从上次未发现死锁的检测点处,重新执行(要保存上个检测点现场)为什么可行?,51,6.1 处理机的多级调度,一、处理机调度的功能 从资源管理的角度看,处理机调度的功包括:维护有关的数据结构 制订调度策略(谁能优先得到处理机)设计调度算法(实现调度策略)实施处理机的分配(保护、恢复现场;修改PCB、及有关的队列),问题:实现处理机的分配要经过那些过程呢?,52,另外,有些系统在内存紧张时,会将某些进程的程序在内、外存之间进
21、行交换,只有内存的程序(进程)才能在CPU上运行,二、处理机调度的分层,就绪态的进程有多个,CPU分配给谁?,?,?,53,因此,处理机的调度可分为二层(或三层)(1)宏观调度 对象为作业,故又称为作业调度 任务:在已进入系统的作业中,按某种原则 挑选一个、或一批作业到内存执行,完成的工作:为选中作业的执行程序建立进程 为其分配内存 分配其他需静态分配的资源,54,(2)微观调度 对象为进程,故又称为进程调度 任务:确定哪个进程、在什么时候 获得处理机,以及使用多长时间,完成的工作:选择一个在内存就绪的进程 将其状态改为运行 若分时,给出运行的时间片 恢复该进程的现场,55,(3)中级调度 用
22、于某些分时系统(如Unix)中 对象为进程 任务:确定哪些进程被允许参与处理机的竞争 短期内(如进程太多时)调整系统内存的负荷,完成的工作:,56,换出:在内存中最不可能得到CPU的进程 首先:等待态的就绪进程 其次:优先级低且驻留内存时间长的就绪进程,换入:在进程调度程序挑选运行进程前 换入在外存驻留时间较长的就绪进程,说明:对处理机的调度,不同的操作系统 往往采用不同的实现方式,57,6.2 作业调度,一个作业,是一个用户的一次上机过程。因此(1)最基本的作业:执行一个可执行程序(2)复杂的作业:执行一组可执行程序:如编译、连接、执行等,作业的表现形式:(1)批处理:用户提出的作业申请 完
23、成内容:在操作说明书中所包含的所有执行语句(2)分时系统:用户登录后的活动(注销后结束)完成内容:通过终端输入的一组命令(可执行的程序),58,二、作业控制块 操作系统对作业进行管理的数据结构,称为作业控制块(JCB),它是一个作业存在的标志。,JCB的主要内容包括:作 业 名 对资源的要求 估计执行时间 最迟完成时间 要求的主存量 要求外设的类型及台数 要求文件量和输出量,59,资 源 使 用 情况 进入系统的时间 开始执行的时间 已执行的时间 程序在主存的地址 占有的外部设备,状 态 优 先 级 作业类型(如:多CPU、多IO、或均衡等)控制方式(如脱机、联机),60,(1)设 作业 i
24、的周转时间为 ti,则 ti=完成时间提交时间=tci tsi 或:ti=运行时间等待时间,t=,四、作业调度性能的衡量,(2)平均周转时间,1.周转时间 从作业提交给系统,到完成所需的时间,意义:描述了作业 i 在系统中停留时间的长短,61,例:作业 运行时间 等待时间周转时间(分钟)1 5 25 30 2 20 20 40 调度算法对哪个作业有利呢?,(3)如何用于评价 对用户:周转时间越小越好(更方便)对系统:平均周转时间越小越好(吞吐量大、利用率高),原因?因为周转时间中包含了运行时间,使评价出现误差 平均周转时间同样也有类似的问题 如何衡量更准确呢?,10 15,问题:不够准确,62
25、,2.带权周转时间(1)带权周转时间,指:一个作业的周转时间与其运行时间的比值 wi=?,(2)平均带权周转时间 t=精确度:二者都高于周转时间、平均周转时间,周转时间运行时间,等待时间运行时间,3.其他的衡量方法 可用CPU利用率、或系统吞吐量直接衡量(无满意度),意义:说明作业 i 在系统中的相对等待时间,=1+,63,五、作业调度算法 1.先来先服务调度算法(FCFS)特点:简单,易实现,8.00 9.10 1.10 1 9.10 9.60 1.10 2.2 9.60 9.90 0.90 3 9.90 10.00 0.50 5,1 8.00 1.10 2 8.50 0.50 3 9.00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 华中科技大学

链接地址:https://www.31ppt.com/p-6049820.html