logo

リソース割り当てグラフ

リソース割り当てグラフは、システムの状態を図で表現したものです。その名前が示すように、リソース割り当てグラフは、リソースを保持している、またはリソースを待機しているすべてのプロセスに関する完全な情報です。

また、すべてのリソースのすべてのインスタンスに関する情報(リソースが利用可能であるか、プロセスによって使用されているか)も含まれます。

電子バンキングの制限

リソース割り当てグラフでは、プロセスは円で表され、リソースは四角形で表されます。頂点と辺の種類を詳しく見てみましょう。


OS リソース割り当てグラフ

頂点には主にリソースとプロセスの 2 種類があります。それぞれが異なる形状で表現されます。円はプロセスを表し、四角形はリソースを表します。

リソースには複数のインスタンスを含めることができます。各インスタンスは、長方形内のドットで表されます。


OSリソース割り当てグラフ1

RAG のエッジにも 2 つのタイプがあり、1 つは割り当てを表し、もう 1 つはリソースに対するプロセスの待機を表します。上の画像はそれぞれを示しています。

矢印の末尾がリソースのインスタンスにアタッチされ、矢印の先端がプロセスにアタッチされている場合、リソースはプロセスに割り当てられているように示されます。

矢印の先端がリソースの方向を向いていて、矢印の尾部がプロセスに接続されている場合、プロセスはリソースを待っていることを示します。

C# サンプルコード

OSリソース割り当てグラフ2 OSリソース割り当てグラフ3

3 つのプロセス P1、P2、P3 と 2 種類のリソース R1、R2 を考えてみましょう。リソースにはそれぞれ 1 つのインスタンスがあります。

グラフによると、R1 は P1 によって使用されており、P2 は R2 を保持して R1 を待機し、P3 は R1 と R2 を待機しています。

グラフ内にサイクルが形成されていないため、グラフにはデッドロックがありません。


OSリソース割り当てグラフ4