バンカーのアルゴリズム (問題を解決するための詳細な手順)

あるシステムには、5 つのプロセス P1、P2、P3、P4、P5 で共有できる 4 種類のリソース A、B、C、D があります。システムには、タイプ A が 3 個、タイプ B が 14 個、タイプ C が 12 個、タイプ D が 12 個の 4 種類のリソースがあります。リソース要件とプロセスの割り当ては次のとおりです。

(1) 現在、システムにさまざまなリソースがいくつ残っていますか?

次の表によると、MAX は最大需要を表し、ALL は割り当てられたリソースを表し、NEED はまだ必要なリソースを表します (最大需要 - 占有リソース)

  マックス 全て 必要
  B C D B C D B C D
p1 0 0 1 2 0 0 1 2 0 0 0 0
p2 1 7 5 0 1 0 0 0 0 7 5 0
p3 2 3 5 6 1 3 5 4 1 0 0 2
p4 0 6 5 2 0 6 3 2 0 0 2 0
p5 0 6 5 6 0 0 1 4 0 6 4 2

システム内の各種リソースの残量:システムが所有する各種リソースの量 - 各種リソースの割り当て量

入手可能=A:1 B:5 C:2 D:0

① work は残りのリソースを表します。NEED のリソースの種類ごとに 1 未満を選択します。上の表で、数値 5、2、0、P4、P1 がすべて満たされている場合は、以下の P1 を選択してください。

2、3、2) リソースなど: 

  仕事 全て 必要 仕事+すべて T&F
  B C D B C D B C D B C D  
P1 1 5 2 0 0 0 1 2 0 0 0 0 1 5 3 2 T
P4 1 5 3 2 0 6 3 2 0 0 2 0 1 11 6 4 T
P2 1 11 6 4 1 0 0 0 0 7 5 0 2 11 6 4 T
P3 2 11 6 4 1 3 5 4 1 0 0 2 3 14 11 8 T
P5 3 14 11 8 0 0 1 4 0 6 4 2 3 14 12 12 T

(2) システムは現在安全な状態にありますか?その理由は何ですか? 

P1->P4->P2->P3->P5 のような安全なシーケンスが見つかるため、システムは安全な状態にあります。

(3) プロセス P2 が現在、タイプ A のリソース 0 個、タイプ B のリソース 4 個、タイプ C のリソース 2 個、タイプ D のリソース 0 個を要求している場合、システムはその要求を満たすことができますか? その理由を説明してください。​ 

P2:リクエスト(A:0,B:4,C:2,D:0)

① 次のステップに進む前に、次の条件が満たされている場合のみ次のステップに進みます。

リクエスト\レクスラントNEED(0,7,5,0)

リクエスト\レクスラントAvail(1,5,2,0)

Avail=Avail-request=(1, 5,2,0) - (0,4,2,0) =(1,1,0,0)

NEED=NEEDリクエスト=(0,7,5,0) - (0,4,2,0) =(0,3,3,0)

ALL=ALL+リクエスト=(1,0,0,0)+(0,4,2,0) = (1,4,2,0)

次に、新しいデータを上表の P2 に変更し、上記の手順を続行します。安全なシーケンスが取得できればリクエストは満たされます。安全なシーケンスが取得できない場合は、リクエストは満たされません。

おすすめ

転載: blog.csdn.net/weixin_69884785/article/details/134778393