ダイクストラのアルゴリズム銀行
-
20-09-2019 - |
質問
誰かが銀行家のアルゴリズムを使用して、次の問題を解決するためのステップスルーアプローチを提供していただけますか?どのように私は、「安全な状態」が存在するかどうかを判断するのですか?プロセスは「最後まで実行」することができたときに何を意味する?
この例では、私は4つのプロセスと同じリソースの10個のインスタンスを持つ。
Resources Allocated | Resources Needed
Process A 1 6
Process B 1 5
Process C 2 4
Process D 4 7
解決
パーウィキペディアに、
(上記の例のように)状態は、すべてのプロセスが(終了)を実行終了することが可能であれば安全であると考えられます。プロセスが終了すると、システムは知ることができない、またはそれはそれまでに要求していますどのように多くのリソース、システムは、すべてのプロセスが最終的に定められた最大のリソースを獲得し、その後まもなく終了しようとしていることを前提としていますので。システムは、各プロセスが(デッドロック回避の観点から、少なくともしない)を実行する方法長いと特に関係ないので、これはほとんどの場合、合理的な仮定です。プロセスが最大のリソースを取得せずに終了した場合にも、それだけで、システム上のが容易になります。
が必要リソースの各タイプの数は、それ自体とシステムとの間、利用可能である場合、プロセスが完了するまで実行することができます。プロセスは、与えられたリソースの8つの単位を必要とし、5つの単位を割り当てた場合は、割り当てることができる利用可能な少なくとも3つの以上のユニットが存在する場合、それが完了するまで実行することができます。
10台利用可能で、あなたの例を考えると、このシステムは、単一のリソースを管理しています。実行中のプロセスは、既に8(1 + 1 + 2 + 4)単位が割り当てられているので、左の2つの単位が存在します。 、Aが5以上(6-1)が必要開始時に任意の処理が完了するのに必要な量は、Bが4以上(5-1)は、Cが必要必要があり、それが既に割り当てられているものは何でもその最大値以下である2以上(4- 2)、およびD)は、7-4(3以上が必要です。プロセスCは、完了するまで実行させ、したがって(4入手可能残す)2つの単位が解放されるように利用可能な2があります。この時点で、BまたはDのいずれかが(私たちはDを仮定します)を実行することができます。 Dが完了したら、AまたはBのいずれかを実行することができた後に使用可能に8台、(我々はAを仮定します)があるでしょう。 Aが完了すると、さらなる作業のために残さすべての10個の単位を残している、そこに9台利用できるようになり、その後、Bを実行することができます。我々はすべてのプロセスが実行されることを可能にするプロセスの順序を選択することができますので、状態は「安全」とみなされます。
他のヒント
Resources Allocated | Resources Needed claim
Process A 1 6 5
Process B 1 5 4
Process C 2 4 2
Process D 4 7 3
総資源が割り当てられた8です 従って2つのリソースはそれがBを処理するために与えることができるレリーフ4つのリソース、後にn個のプロセスAのプロセスに割り当てられているrelives 5つのリソースを終えた後のプロセスBが終了した後C.及びプロセスCを処理するために割り当てられ、従って割り当てられるまだあります仕上げは、Dを処理するために2つのリソースを割り当てる