リソース割り当てグラフは、システムの状態を図で表現したものです。その名前が示すように、リソース割り当てグラフは、リソースを保持している、またはリソースを待機しているすべてのプロセスに関する完全な情報です。
また、すべてのリソースのすべてのインスタンスに関する情報(リソースが利用可能であるか、プロセスによって使用されているか)も含まれます。
電子バンキングの制限
リソース割り当てグラフでは、プロセスは円で表され、リソースは四角形で表されます。頂点と辺の種類を詳しく見てみましょう。
頂点には主にリソースとプロセスの 2 種類があります。それぞれが異なる形状で表現されます。円はプロセスを表し、四角形はリソースを表します。
リソースには複数のインスタンスを含めることができます。各インスタンスは、長方形内のドットで表されます。
RAG のエッジにも 2 つのタイプがあり、1 つは割り当てを表し、もう 1 つはリソースに対するプロセスの待機を表します。上の画像はそれぞれを示しています。
矢印の末尾がリソースのインスタンスにアタッチされ、矢印の先端がプロセスにアタッチされている場合、リソースはプロセスに割り当てられているように示されます。
矢印の先端がリソースの方向を向いていて、矢印の尾部がプロセスに接続されている場合、プロセスはリソースを待っていることを示します。
C# サンプルコード
例
3 つのプロセス P1、P2、P3 と 2 種類のリソース R1、R2 を考えてみましょう。リソースにはそれぞれ 1 つのインスタンスがあります。
グラフによると、R1 は P1 によって使用されており、P2 は R2 を保持して R1 を待機し、P3 は R1 と R2 を待機しています。
グラフ内にサイクルが形成されていないため、グラフにはデッドロックがありません。