资源分配图

作者: 贪婪的君子 | 来源:发表于2017-05-27 11:57 被阅读33次

为了准确的描述死锁问题,我们引出了资源分配图

什么是资源分配图


资源分配图是一种有向图,学过离散数学,我们知道一个图G可以由结点集V以及边集E组成。
在资源分配图中,结点集定义为V=P∪R,边集则是被定义为E={(Pi,Ri)}∪{(Ri,Pi)}

P为系统中所有进程的集合,R为系统中所有资源类的集合。
边集中(Pi,Ri)表示一条由进程Pi到资源类Ri的有向边,即进程Pi申请资源Ri。
(Ri,Pi)则是表示资源的分配,即为分配边。

从资源分配图中看死锁


基于资源分配图的定义,再结合死锁的引发条件——竞争资源,我们可以得出一个结论——
如果一个图中没有环路(也称回路),则系统中不存在死锁;若有环路,系统可能存在死锁。**即可说,环路是死锁的必要条件,但不是充分条件。

  • 无环路的资源分配图


    无环路的资源分配图

    无环路,自然就无死锁问题。

  • 有环路且有死锁的资源分配图


    有环路且有死锁的资源分配图

    发现了吗?我只添加了一条申请边哦~

  • 有环路但无死锁的资源分配图


    有环路无死锁的资源分配图

    虽然产生了P1->R2->P3->R1->P1这一条环路,但是由于P2是不属于这一条环路的,当环路上的进程在等待资源的时候,P2可以不受限制的继续执行,结束后释放R1资源,这样一来P3就可以被满足申请,环路就不存在了,可以继续执行。
    这就是环路是死锁的必要条件而非充分条件的图示。

可复用资源分配图例


以每个进程占有资源又申请资源作为一个标志结点,记作(Pi:Aj:Ak1:,Ak2,......),其含义为(进程:当前请求资源:已占有资源),有向弧则是表示申请被某一进程所占有的资源。

假设有三个进程以及a,b,c三个资源,P1占有a资源申请c资源,P2占有b资源申请a资源,P3占有c资源申请b资源,做出可复用资源申请图如下:


可复用资源申请图

小结


知道了资源分配图,我们就可以正经的去分析死锁问题了

你以为我会在这里正经的总结吗?/奸笑

相关文章

  • 资源分配图

    为了准确的描述死锁问题,我们引出了资源分配图 什么是资源分配图 资源分配图是一种有向图,学过离散数学,我们知道一个...

  • 化简资源分配图

    化简资源分配图 方法步骤 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的...

  • 关于组织关系的远近思考

    任何组织都有权利分配问题,组织中的每个成员都会拼命讨好资源分配者,已图能够得到更多资源。 资源分配者知道他们的用意...

  • 队列的应用

    树和图的遍历 系统调用资源分配

  • 做事成功资源分配图

    清晰的目标是成功的航标,这是努力的方向! 关键点小结:1—做目标分析———第一步:列出关键的目标,目标具体化清晰;...

  • 9.3 死锁检测与解除

    当系统为进程分配资源时,若未采取任何限制性措施,则系统应该提供检测和解除死锁的手段。 资源分配图 系统死锁,可利用...

  • 死锁检测 资源分配图 资源共享

    求大神帮忙 一个c++小程序呀

  • 资源分配

    社会的不公平,主要原因是社会资源分配的不公平。所为的绝对的公平是不存在的,只是人与人之间在权利上和资源上享有的相对...

  • 资源分配

    很多人都喜欢说,我有钱了,就会很快乐了。然而他们中的一部分人真的有了钱以后,快乐或许是增加一些。但生活还是没体现出...

  • 资源分配

    开始进行资源调度

网友评论

    本文标题:资源分配图

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