资源分配图

17 Mar 2025 | 阅读 2 分钟

资源分配图是系统状态的图形表示。正如其名称所示,资源分配图包含了有关所有正在持有某些资源或等待某些资源的所有进程的完整信息。

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

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


OS Resource Allocation Graph

顶点主要有两种类型:资源和进程。它们各自由不同的形状表示。圆圈表示进程,矩形表示资源。

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


OS Resource Allocation Graph 1

RAG 中的边也有两种类型,一种表示分配,另一种表示进程对资源的等待。上面的图显示了它们各自。

如果箭头的尾部连接到资源的实例,而头部连接到进程,则表示该资源已分配给该进程。

如果箭头的尾部连接到进程,而头部指向资源,则表示该进程正在等待该资源。


OS Resource Allocation Graph 2 OS Resource Allocation Graph 3

示例

让我们考虑三个进程 P1、P2 和 P3,以及两种类型的资源 R1 和 R2。这些资源各有一个实例。

根据图,R1 正在被 P1 使用,P2 持有 R2 并等待 R1,P3 也在等待 R1 和 R2。

该图没有死锁,因为图中没有形成循环。


OS Resource Allocation Graph 4