死锁:补充

作者: 贪婪的君子 | 来源:发表于2017-05-28 10:57 被阅读21次

麻烦了......竟然忘记了这个。

可复用资源死锁的静态分析


定义一个由若干相对独立的资源构成的集合称为组合资源,而这个集合中的每一个元素称为子资源
当集合中的元素为相同类型时,称其为同种组合资源

下面开始可复用资源死锁的静态分析。


可复用资源死锁的静态分析

注意:在A5步骤中如果发现环路中有相同的进程,则不能同时到达,环路不成立(一个进程无法同时处于两种状态),如果环路中有相同的被占有资源,则不能同时到达,环路不成立(一个资源同一时刻只能分配 给一个进程)。

举个栗子:
设可复用资源集合R = { A,B,C,D,E,F,G },进程P1,P2,P3有关资源活动如下:

p1:c  d  ^c  a  b  ^d  ^a  ^b
p2:d  e  ^d  b  f  ^e  ^b  ^f  
p3:c  e  ^e  f  a  ^e  ^f  ^a
//符号^表示释放资源

做出结点状态:


结点状态图

画出有向弧:


资源申请有向弧

找到其中的环路:(P1:b:a,d)->(P2:f:e,b)->(P3:a:c,f)
发现没有相同进程,没有相同的被占用资源,于是进一步分析,环路上的状态是否可到达。

找到环路上对应的状态:


环路上的状态

推出由前一步是否能够到达此状态:

从前一步推是否能够到达此状态
我们发现各个进程到达环路上的状态时,都要经过一步资源申请,同时到达环路状态,意味着资源申请可以同时被满足,那么我们回退到各个资源申请的前一步,即c图这个状态也是可以同时到达的(既然申请资源都能被满足,那么去除这些资源的申请更加会有利于进程的推进)。
我们现在假设P1先到达c图的状态,此时P2处于d命令前或者是d命令前,如果处于d命令前,那么P2是不可以得到d资源的(被进程P1占有),如果是处于d命令前,那么P1是不可以到达c图的状态的,由此推出P1不能比P2先到达
同理,我们可以继续推出P3先于P2到达,P1先于P3到达。这是一个矛盾的状态,说明三个进程是不可以同时到达c图的状态的,无法到达c图的状态,那么环路的状态也是不可以同时到达的,故而该系统无死锁的可能性。

同种组合资源死锁的必要条件


必要条件,不是充分条件,即死锁发生后系统一定会出现的情况。

系统已经死锁了,那根据我们所了解的死锁状态,死锁进程所需要的资源总量>=系统中剩余的资源总量+其他进程所占有的资源总量,这就是死锁的必要条件了。

还有一种比较麻烦的推导形式,这里就不叙述了。

小结


死锁问题很重要(记不清这是说第几遍了),但是有时候不需要特地的去预防死锁,或者通过一系列麻烦的算法去解锁,就像鸵鸟一样把头埋在地里,假装没看见,以为没什么危险就是了,毕竟像我们平时用电脑发现窗口无响应时的做法一样,等一会儿不就好了?(死锁产生的影响不是很严重时可以这样做)

开会的时候
领导:这个项目都有谁经手过?
内心OS:你看不见我,你看不见我,你看不见我......

相关文章

  • 死锁:补充

    麻烦了......竟然忘记了这个。 可复用资源死锁的静态分析 定义一个由若干相对独立的资源构成的集合称为组合资源,...

  • mysql死锁场景整理

    简述 本文死锁场景皆为工作中遇到(或同事遇到)并解决的死锁场景,写这篇文章的目的是整理和分享,欢迎指正和补充,本文...

  • 死锁理论知识补充

    目录 1.死锁的定义与例子2.死锁的原因3.破题 定义: 死锁的一个比较专业的定义是:一组互相竞争资源的线程因互相...

  • 死锁

    线程饥饿死锁 锁顺序死锁 动态锁顺序死锁通过锁顺序来避免死锁 避免死锁

  • MySQL:GAP LOCK 栗子的补充解释

    对《insert 加锁与死锁分析》一文中 gap lock 栗子做个补充解释,原文是这样的: 如果是在 REPEA...

  • 死锁

    第11章:死锁和进程通信 死锁概念 死锁处理方法 死锁预防(Deadlock Prevention) 死锁避免(D...

  • java多线程笔记

    产生死锁的四个必要条件 处理死锁的基本方法 死锁预防 死锁避免 死锁检测 死锁解除 https://blog.cs...

  • [现代操作系统]--死锁

    table of content 死锁定义 死锁建模-- 资源分配图 处理死锁鸵鸟算法检测并恢复死锁检测死锁恢复利...

  • Java-多线程(四)死锁

    死锁 死锁示例

  • Java死锁

    什么是死锁 死锁检测 产生死锁的四个必要条件 如何避免死锁 死锁 死锁,指两个或多个线程之间,由于互相持有对方需要...

网友评论

    本文标题:死锁:补充

    本文链接:https://www.haomeiwen.com/subject/pkacfxtx.html