进程-资源分配图

「进程-资源分配图」是一种有向异质图,用于表示进程和资源的关系,可以用于分析死锁问题

进程-资源分配图用圆圈表示进程,方框表示一类资源,方框中的点表示此类资源的数量。将这些节点用箭头相连。

  • 如果进程指向资源,表示进程希望申请一个对应的资源;
  • 如果资源指向进程,意味着当前已经有一个对应资源分配给了进程。

img-2024-04-12 19-38-01.png

如果某个进程可以被顺利执行完毕,则可以释放并删除对应的箭头。如果一个进程-资源分配图可以被化简到没有任何一个箭头,则认为不会发生死锁问题,反之,则一定会出现死锁问题

比如对于上图, 不需要新的资源来进行进程,因此可以顺利释放两个对应资源。对于 ,此时就可以满足 的申请,自然也可以释放掉 资源。此过程持续进行,最终可以释放掉所有箭头,因此认为不会陷入死锁。

此外还可以总结出三条规律:

  • 如果资源分配图中没有环,系统中一定没有死锁。
  • 途中有环,可能存在死锁。
  • 如果每类资源只有一个,出现环路一定发生了死锁。