操作系统死锁.pptx
《操作系统死锁.pptx》由会员分享,可在线阅读,更多相关《操作系统死锁.pptx(25页珍藏版)》请在第壹文秘上搜索。
1、操作系统原理第3章 进程管理第7讲 进程死锁 2023-4-242今日主题n什么是死锁?(了解)n死锁防止(熟悉)n死锁避免(掌握)n死锁检测和恢复(熟悉)重点:死锁必要条件、死锁防止、避免、检测和恢复难点:银行家算法。 2023-4-243 汽车竞争汽车竞争路口路口 它们到达路口的时间很它们到达路口的时间很“凑巧凑巧” 每个车队既每个车队既占有占有一一个路口,又个路口,又等待等待另一车队让出路口另一车队让出路口交通拥堵现象所有的所有的车车都都在在等待等待,如果如果没有交警来没有交警来,只好只好无限无限等待下去!等待下去!2023-4-244输出井输出井 满啦!满啦! 不够!不够!进程进程A
2、AABCCDEFABCD进程进程B BABCD 不够!不够! 进程竞争进程竞争资源资源 每一进程既每一进程既占有占有一个资源,又一个资源,又等待等待另一进程让出资源另一进程让出资源 要是输出井再多一个就好啦要是输出井再多一个就好啦! !SPOOLing系统死锁示例一 什么是死锁? 死锁的定义2023-4-245一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到该资源,这种现象称为进程死锁死锁(Deadlock),这一组进程就称为死锁进程。P1P2.GPS照相机照相机请求请求请求请求分配分配每一进程既占有一个资源,又等待另一进程让出资源!每一进程既占有一个资源,又等
3、待另一进程让出资源!进程进程P1和和P2拍拍照并在照片上照并在照片上标定位置信息标定位置信息死锁的原因起因是并发进程的资源竞争。根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。是否死锁取决于各进程申请和释放资源的顺序。因此,死锁的原因归为两点: (1)系统资源不足。(资源数比进程需要量少)。 (2)进程推进顺序不当。2023-4-246死锁的必要条件(1)互斥(Mutual Exclusion) 必须存在需要互斥使用的资源 (2)不剥夺(No Preemption) 进程占有的资源未主动释放时不可以剥夺(3)部分分配(又叫占有等待Hold and Wait) 进程占有已分到的部分
4、资源而又等待其它资源(4)环路(又叫循环等待Circular Wait) 进程集合P0, P1, , Pn,Pi等待Pi+1的资源,Pn等待P0的资源。形成等待环。2023-4-2474P0P1P2PnPiPi+1.死锁的解决方法 死锁预防(Deadlock prevention) 死锁避免(Deadlock avoidance) 死锁的检测和恢复(Deadlock Detection and Recovery from Deadlock) 忽略(ignore)2023-4-248因为死锁的处理开销较大,所以很多操作系统,因为死锁的处理开销较大,所以很多操作系统,如如Linux、Windows
5、,都忽略,都忽略死锁。死锁。二 死锁预防 什么是死锁预防? 采用某种策略,限制并发进程对资源的请求,从而使得死锁的必要条件在系统执行的任何时间都不满足。 死锁预防方法 破坏“互斥”条件:共享使用资源。缺点:不一定可行。 破坏“部分分配”条件:进程申请资源时必须一次性申请其全部所需资源。缺点:资源利用率低,可能饥饿。 破坏“不剥夺”条件:当进程申请的资源不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请。缺点:释放的资源的前期工作将失效。 破坏“环路”条件:系统将资源编号,进程按照资源序号递增的次序提出资源申请。缺点:限制了新设备增加,资源可能限制,用户变成受限制。202
6、3-4-249三 死锁避免 什么是死锁避免? 系统采用动态分配资源,在分配过程中预测出死锁发生的可能性并加以避免的方法。 有代表性的死锁避免算法是Dijkstra提出的银行家算法。2023-4-2410借给Q:1银行家算法示意【例】设银行家有10万元,顾客P,Q,R分别需要8,3,9万元搞项目(假设任何人满足资金总额后都会归还所有贷款)。如果P、Q、R分别已借到了4万、2万、2万。以后银行家怎样放贷?2023-4-2411P Q R4 2 2剩 余:2P Q R4 3 2剩 余:1Q还款:3P Q R4 0 2剩 余:4借给P:4P Q R8 0 2剩 余:0P还款:8P Q R0 0 2剩
7、余:8借给R:7P Q R0 0 9剩 余:1R还款:9P Q R0 0 0剩余:10得到借款的安全序列:得到借款的安全序列:Q P R其他借款序列,如其他借款序列,如PQR、PRQ、都不安全!都不安全! 所谓安全状态,是指系统能按某种进程顺序(P1, P2, Pn)来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都能顺利地完成,则称这个系统处于安全状态,序列(P1, P2, Pn)称为安全序列。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。2023-4-2412设单类资源系统中有设单类资源系统中有n个进程,若存在一个个进程,若存在一个序列序列(P1,
8、P2, Pn)使得使得Pi(i1,2n)以后还需要的资源可以通过系统现有资源加上所有以后还需要的资源可以通过系统现有资源加上所有Pj(ji)占有的资源来满足占有的资源来满足 ,则则该该系统系统处于安全状态,处于安全状态,序列序列(P1,P2 Pn)称为称为安全序列。安全序列。安全状态与安全序列讨论:安全状态与死锁的关系2023-4-2413 安全安全状态状态不是死锁不是死锁状态状态。死锁。死锁状态状态是不是不安全状态安全状态。 并非并非所有的不安全状态都会死锁,但不安全状态可能导致死锁所有的不安全状态都会死锁,但不安全状态可能导致死锁。 系统处于安全状态系统处于安全状态,可,可避免进入死锁状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 死锁