銀行家のアルゴリズムに関するいくつかの明確化が必要です
-
27-09-2019 - |
質問
Dijkstraの安全/安全でない状態に関する簡単なクエリ 銀行家のアルゴリズム...
システムのスナップショットのプロセスの1つ(以下のプロセス)の1つがすでにすべてのニーズを満たしており、他のプロセスのニーズを満たすのに十分なリソースがない場合、安全な状態のシステムです?私は通常、プロセスが必要なリソースを受け取ると、すぐに終了してすべてのリソースを返すことを想定していますが、システムの状態を計算するときにこの仮定は考慮されていますか?
Allocated Maximum Available
| A | B | A | B A | B
---+---+--- ---+---+--- ---+---
P1 | 1 | 2 P1 | 1 | 2 1 | 3
P2 | 5 | 3 P2 | 7 | 8
編集
私の質問をもう少し明確にするために:上記の例のシステムは安全な状態ですか、それとも安全でない状態ですか? P1がリソースを返すまでP2からのリクエストが遅れていると仮定しますか?その時点でP2のリクエストが満たされるため、システムは安全であるか、現在、可能な要求が満たされないため、システムは安全ではありませんか?
解決
プロセス1が実行できるため、システムは安全な状態です。終了すると、プロセス2が終了するためのリソースAとリソースBのコピーが十分にあります。したがって、システムがプロセスを完了するために実行できる「スケジュール」が存在します。これは、それが安全であることを意味します。
所属していません StackOverflow