贪婪的君子@IT·互联网程序员

资源分配图

2017-05-27  本文已影响33人  贪婪的君子

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

什么是资源分配图


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

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

从资源分配图中看死锁


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

可复用资源分配图例


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

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


可复用资源申请图

小结


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

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

上一篇下一篇

猜你喜欢

热点阅读