📜  抹布完整形式

📅  最后修改于: 2021-09-28 10:04:36             🧑  作者: Mango

RAG是操作系统中Resource Allocation Graph的缩写。 RAG是一种有向图,可以用图片的形式表示系统的状态。死锁可以用有向图 (RAG) 更精确地描述。

图(V,E)由一组顶点组成,这些顶点可以划分为两种不同类型的节点:-

  1. 处理顶点 –
    它们代表流程并绘制为一个圆圈,例如,
    {P1, P2, P3.....Pn}  
  2. 资源顶点 –
    这些顶点代表资源,画成一个正方形,里面有点,代表资源的实例,例如,
    {R1, R2, R3.....Rn} 

绘制资源分配图是为了查看进程和资源之间的分配关系。在这里,进程在一个圆圈内表示,而资源在一个正方形内表示,其中的点表示资源实例的数量。

RAG 有两种类型的边,一种表示分配,另一种表示进程对资源的等待。

  • 如果箭头的尾部连接到资源的实例,而箭头连接到进程,则资源被分配给进程。
  • 如果箭头的尾部连接到进程而头部指向资源,则进程正在等待资源。

如果 RAG 包含一个循环,则系统处于死锁状态,否则不会。

RAG的特点:

  • 图示——
    RAG 是系统状态的图形表示
  • 死锁检测——
    使用RAG,我们可以很容易地检测到系统是否处于死锁状态。
  • 资源信息——
    RAG 包含资源及其实例的所有信息,无论它们是空闲的还是正在被任何其他进程使用。
  • 流程信息 –
    RAG 告诉我们哪些进程持有哪些资源以及它正在请求哪些资源。

RAG的优点:

  • 它在死锁检测中非常有用。
  • 它在银行家算法中被广泛使用。
  • 它是一个系统的图形表示。
  • 有时我们只需看一眼图表就可以判断系统是否处于死锁状态。
  • 通过 RAG 了解资源分配所需的时间更少。

RAG的缺点:

  • 当我们的进程和资源较少时,RAG 很有用。
  • 对于大量资源或进程,最好将数据存储在表中而不是 RAG。
  • 如果有大量的资源或进程,那么图表将难以理解并且会变得复杂。