《处理器管理》PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《处理器管理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《处理器管理》PPT课件.ppt(54页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第2章 处理器管理 主讲:周文强 课程:操作系统本章内容2.7 进程死锁进程死锁2.8 处理器管理新技术处理器管理新技术2.9 Windows操作系统的进程管理操作系统的进程管理2.7 进程死锁 死锁问题是Dijkstra于1965年在研究银行家算法(该问题原来是为了研究银行家如何将一定的资金安全地借给若干顾客的问题)时首先提出来的,后来Havender等人又进一步认识这一现象并将其发展。实际上,死锁是一个具有普遍性的现象,在各个领域乃至日常生活中也屡见不鲜。研究死锁问题是保证操作系统正确、可靠运行必须考虑的课题。并行进程的执行虽然改善了系统资源的利用率,提高了系统的处理能力,但并行执行的风险
2、增大了,因为并发进程执行的结果与时间有关,且对临界资源的管理或操作不当(如在生产者与消费者问题中的P操作的次序颠倒时等)就会产生死锁。1.死锁的概念 死锁(Deadlock),是指在多道程序系统中的两个或多个进程,当某个进程提出资源请求后,使得若干进程在无外力作用下,永远不能再继续前进,称这种情况为系统发生了死锁或僵局(Deadly Embrace)。或当两个或多个进程因竞争系统资源而无休止地相互等待时,称这些进程是死锁的,或处于死锁状态。2.死锁的原因 1竞争临界资源 当系统中供多个进程共享的临界资源(如输入设备、打印机、公用队列等)的数目不能满足各个进程的需要时,会引起各个进程对资源的竞争
3、而产生死锁。可以说,资源不足是产生死锁的最主要的原因,但是这个问题在多道程序系统中是无法解决的。2进程推进顺序不当 进程在运行过程中,请求和释放资源的顺序不当,也同样会导致死锁的产生。案例条件:1、进程A和进程B均需要申请得到资源R1和资源R2方可运行。2、进程A先申请得到R1,然后进程B申请也得到R2。执行:1、随后进程A又申请R2,但R2因为B进程正占用该资源而阻塞,等待B释放R2。2、进程B又申请R1,但R1因为A进程正占用该资源而阻塞。结论:A、B两个进程都因为申请不到所需的资源而处于阻塞状态,都不能继续运行,就形成了死锁。3.产生死锁的必要条件 系统中资源有限,而且进程各自按照自己的
4、顺序向前推进。因此会产生死锁,但并非一定会产生死锁。(1)互斥条件。在同一段时间内,每一资源只能被一个进程使用,若有别的进程也请求该资源,则必须等待该资源被释放。(2)占有并请求条件。允许进程不释放已经分配到了一些资源,并可以请求并等待分配新的资源。(3)不可剥夺条件。已分配给某进程的资源不可被剥夺,只能由占有它的进程使用完后主动释放。(4)循环等待条件。系统必然存在一条由两个或两个以上的进程组成的循环链,链中的每一个进程都在等待相邻进程所占用的资源。这反映在资源分配图(一种有向图:含进程与资源两类结点,由进程结点指向资源结点的边表示资源请求,由资源结点指向进程结点的边表示资源分配)中就是存在
5、有向封闭环路。2.7.2 死锁的预防和避免 了解产生死锁的必要条件后,下一步就是如何预防和避免死锁的问题。1死锁的预防死锁的预防死锁的预防就是通过破坏产生死锁的必要条件之一,使系统中不发生死锁的一种操作系统用来对付死锁的办法。这种办法是在系统运行之前就采取措施,即在系统设计时确定资源分配算法,消除发生死锁的任何可能性。该方法虽然比较保守、资源利用率低,但因简单明了并且安全可靠,仍被广泛采用。产生死锁的四个必要条件中,互斥条件和不可剥夺条件几乎都是由共享资源本身的使用特性所决定的,因此不好破坏。那么,实用的死锁预防办法就是通过破坏占有并请求条件和循环等待条件来实现的。(1)静态资源分配法 采用这
6、种方法时,系统规定每个进程在开始运行前,都必须次性地申请其在整个运行过程中所需的全部资源。此时,若系统有足够的资源,便把进程想要的全部资源一次性地分配给它;若不能全部满足进程的资源请求,则一个资源也不分给它。这样,进程在运行过程中就不会再提出资源请求,从而破坏了占有与请求条件。该方法的优点是简单、安全、易实现,缺点是资源被严重浪费。(2)有序资源使用法在采用这种方法时,系统中的所有资源按类都被赋予一个唯一的编号,每个进程只能按编号的升序申请资源。即对同一个进程而言,它一旦申请了一个编号为n的资源,就不允许再申请编号比n小的资源了,因此,破坏了循环等待条件。该方法的优点是安全且资源利用率比静态资
7、源分配法有所提高,因为它实际是一种半动态的资源分配法。缺点是实现较困难,因为难给出合适的资源编号,不便于系统增添新设备,不便于用户编程,且仍有一定的资源浪费现象。2.7.3 死锁的避免死锁的避免在死锁的预防中我们采用限制死锁的必要条件的方法虽然简单,但严重损害了系统的性能。如果将限制条件弱化,既能获得满意的系统性能,也能够有效地避免死锁。安全状态与不安全状态安全状态与不安全状态 安全状态是指系统能够按照某种进程顺序,即一种进程推进序列(称为安全序列),来为每个进程分配其所需资源,使每个进程都可以顺利完成。如果系统不存在这种安全序列,系统处于不安全状态。不安全状态并非都是死锁状态,但系统一旦进入
8、不安全状态,则有可能继而进入死锁状态。而系统如果处于安全状态,则可避免进入死锁状态。安全状态与不安全状态 避免死锁要使系统不进入不安全状态。系统允许进程动态申请资源,但系统在分配资源之前,先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给该进程,否则,让该进程等待。案例分析 条件:1、系统中现有3个进程P1,P2,P3,可供进程使用的总资源数有122、各进程需求资源数及已得到资源数情况如下:进程P1需求资源数为9,已分配到的资源数3;进程P2需求资源数为5,已分配到的资源数3;进程P3需求资源数为10,已分配到的资源数2,系统资源剩余数是4。按照以下两种方法安排进程序
9、列:计算安全序列 1、剩余资源4中分配2给进程P2,分配1给进程P1,分配1给进程P3;2、进程P2完成后释放资源5,全部给进程P1;3、进程P1完成后,释放资源9,在分配7给进程P3。这样,进程按照序列P2,P1,P3推进,该序列是安全序列,采用它,系统处于安全状态,各个进程都能顺利完成,不会产生死锁。不安全序列 剩余资源4中分配2给进程P2,分配1给进程P1,分配1给进程P3;进程P2完成后释放资源5,如果全部给进程P3,P3和P1都不能满足而相互等待对方释放资源,造成死锁。也就是说,进程按照序列P2,P3,P1推进,该序列是不安全序列,会产生死锁。2.7.4 死锁的检测与解除 这种对付死
10、锁的办法适用于那些对死锁的产生不采取任何预防或避免的对策,即允许死锁发生的系统中,其功能是由以下两部分实现的。1、定时触发执行的死锁检测程序 2、可能在死锁检测程序中被调用执行的死锁解除程序 1死锁的检测死锁的检测 死锁检测程序的任务就是实际确定系统中是否存在死锁,并试图找出陷入死锁的进程和资源。通常采用的检测算法主要是通过对资源分配图的化简来确定资源分配时是否有循环等待事件。死锁定理 化简资源分配图,是指依次把所有资源请求都能满足的进程结点变成孤立结点的过程(即消去其请求边和分配边,回收资源)。当且仅当某时刻系统的资源分配图是不可完全化简的(即至少有一个进程结点不会变成孤立结点),则称此时系
11、统处于死锁状态,这是死锁产生的充分条件,称为死锁定理。2死锁的解除死锁的解除 当死锁检测程序检测到系统中出现死锁时,应该立即把系统从死锁状态中解脱出来。常见的死锁解除方法有以下两种:1)资源剥夺法1.还原算法。即恢复计算结果和状态。2.建立检查点主要是用来恢复分配前的状态。2)撤消进程法1.程序的优先数,即被撤消进程的优先数。2.作业类的外部代价 3.运行代价,即重新启动它并运行到当前撤消点所需要的代价。(1)撤销进程法 最简单的做法是撤销全部死锁进程,但被撤销进程前面所做的一切工作都白费了,这种代价也太大了,因此这种做法已经没有用的。更常用的解除死锁的方法叫最小代价撤销法。该方法首先计算死锁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理器管理 处理器 管理 PPT 课件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内