あるシステムには、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 に変更し、上記の手順を続行します。安全なシーケンスが取得できればリクエストは満たされます。安全なシーケンスが取得できない場合は、リクエストは満たされません。