资源分配图是系统状态的图形表示。顾名思义, 资源分配图是有关持有某些资源或正在等待某些资源的所有进程的完整信息。
它还包含有关所有资源的所有实例的信息, 无论这些资源是否可用或被线程使用。
在资源分配图中, 线程用圆圈表示, 而资源用矩形表示。让我们详细了解顶点和边的类型。
文章图片
顶点主要有两种类型, 即资源和线程。它们中的每一个将以不同的形状表示。圆形代表线程, 而矩形代表资源。
一个资源可以有多个实例。每个实例将由矩形内的一个点表示。
文章图片
RAG中的边缘也有两种类型, 一种代表分配, 另一种代表等待资源的进程。上图显示了它们中的每一个。
如果箭头的尾部附加到资源的一个实例上, 而箭头的尾部附加到一个线程上, 则资源显示为已分配给该线程。
如果箭头的尾部连接到线程, 而头部指向资源, 则该线程显示为正在等待资源。
文章图片
文章图片
例子
让我们考虑3个进程P1, P2和P3, 以及两种类型的资源R1和R2。资源每个都有1个实例。
根据该图, R1正在由P1使用, P2正在保留R2并且正在等待R1, P3正在等待R1和R2。
【操作系统资源分配图】该图没有死锁, 因为图中没有形成任何循环。
文章图片