避免死锁

资源分配图是系统状态的图形表示。 顾名思义,资源分配图是关于持有一些资源或等待某些资源的所有进程的完整信息。

它还包含有关所有资源的所有实例的信息,无论这些资源是否可用或正在被进程使用。

在资源分配图中,进程由圆形表示,而资源由矩形表示。 我们来详细看看顶点和边的类型。

顶点主要有两种类型,资源和过程。 它们中的每一个将以不同的形状表示。 Circle代表进程,而矩形代表资源。

一个资源可以有多个实例。 每个实例将由矩形内的一个点表示。

RAG中的边也有两种类型,一种代表分配,另一种代表资源进程的等待。 上面的图片显示了每一个边。

如果箭头的尾部附加到资源的实例并且头部连接到进程,则将资源显示为分配给进程。

如果在头指向资源时将箭头的尾部连接到进程,则会显示进程等待资源。

示例

我们考虑有3个进程:P1,P2和P3以及两种资源R1和R2。 每个资源都有1个实例。

根据图表,R1正在被P1使用,P2正在保持R2并等待R1,P3正在等待R1以及R2。

由于图中没有形成循环,因此该图是无死锁的。


上一篇:避免死锁

下一篇:使用RAG进行死锁检测

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程