0

明日の朝、OS コースの最終テストがありますが、問題が発生しました。

システムに 4 つのプロセス (P1、P2、P3、P4) と、4 つの異なるリソース (R1、R2、R3、R4) があるとします。この図に示されているシステムの現在の状態。

ここに画像の説明を入力

問題は、「システムがデッドロック状態にあるかどうか」です。同様の問題をいくつか解決したので、システムはデッドロック状態にあると思います。これは、使用可能なリソースが十分にないためです (たとえば、P4 は R3 の 2 つのインスタンスを要求しますが、使用可能なリストには R3 のリソースが 1 つしか存在しません)。

私の開業医の答えは次のとおりであるため、少し混乱しています:システムはデッドロック状態ではなく、プロセスは次の順序で実行されています:P4-> P3-> P1-> P2

正しいソリューションはどれですか?

ありがとう。

4

3 に答える 3

1

あなたのインストラクターは正しいです。特に、P4 は既に (1 0 1 1) を持っているため、必要なのは (0 0 1 0) だけです。これは、利用可能なリソースによって簡単に満たすことができます。P4 にリソースが提供された後、使用していたすべてのもの (現在の割り当てを含む) を完了して解放します。その後、OS はそれらのリソースを残りのプロセスに (正しい順序で) 送信できるため、デッドロックは発生しません。

于 2014-01-30T17:21:58.753 に答える
0

ここの説明によると、P4->P3->P2->P1 は機能しません。これは、P2 が R1 を 0 にするためです。これにより、P2 のデッドロックが発生する可能性があり、P2 がループするか、長時間使用できないため、P1 はそのすべてを待機します。 R1 がゼロのときの時間。?

P3 と P4 が完了した後、Avail Matrix は 3334 になり、P2 のニーズも十分に満たすことができます。

于 2014-09-07T15:34:32.460 に答える