RAG是操作系统中“资源分配图”的缩写。 RAG是一个有向图,可以用来以图片的形式表示系统的状态。死锁可以用有向图(RAG)来更精确地描述。
图(V,E)包含一组顶点,这些顶点可以划分为两种不同类型的节点:
- 处理顶点–
它们表示过程,并绘制为圆圈,例如,{P1, P2, P3.....Pn}
- 资源顶点–
这些顶点表示资源,并绘制为带有点的正方形,这些点表示资源的实例,例如,{R1, R2, R3.....Rn}
绘制资源分配图是为了查看流程和资源之间的分配关系。在这里,进程用圆圈表示,而资源用正方形表示,里面带有点,表示资源实例的数量。
RAG有两种类型的Edge,一种代表分配,另一种代表等待资源的进程。
- 如果箭头的尾部附加到资源的一个实例上,而箭头的尾部附加到一个流程上,则将资源分配给该流程。
- 如果箭头的尾部连接到进程,而头部指向该资源,则该进程正在等待资源。
如果RAG包含一个周期,则系统处于死锁状态,否则就没有死锁。
RAG的特点:
- 绘画作品–
RAG是系统状态的图形表示 - 死锁检测–
使用RAG,我们可以轻松地检测到系统是否处于死锁状态。 - 资源信息–
RAG包含资源及其实例的所有信息,无论这些资源是空闲的还是当前由任何其他进程使用。 - 流程信息–
RAG告诉我们有关进程的信息,即哪个进程正在保存哪个资源以及它正在请求哪个资源。
RAG的优势:
- 它在死锁检测中非常有用。
- 它被广泛用于银行家算法中。
- 它是系统的图形表示。
- 有时,我们只要看一眼图表就可以判断系统是否处于死锁状态。
- 通过RAG了解资源分配的时间更少。
RAG的缺点:
- 当我们拥有较少数量的流程和资源时,RAG很有用。
- 在具有大量资源或进程的情况下,最好将数据存储在表中而不是RAG中。
- 如果有大量的资源或流程,则该图将难以理解并且将变得复杂。