デッドロック
デッドロックは、各コンピューターが別のプロセスが処理しているリソースを待機するときに発生します。デッドロックが発生する前に、デッドロックを防ぐことが重要です。リソーススケジューラはデッドロックの発生を検出できるため、オペレーティングシステムがさまざまなプロセスに割り当てられたリソースを追跡するのに役立ちます。デッドロックは、次の4つの条件が同時に発生する場合に発生する可能性があります。
•プリエンプティブアクションがない - プロセスがタスクを完了した後に、リソースを占有しているプロセスが自発的にリソースを解放できます。
•相互排他 - 共有リソースへのアクセスを制御するために使用される特殊なタイプのバイナリセマフォ。これにより、現在の優先度の高いタスクをブロックし続ける時間を可能なかぎり短くすることができます。
•占有して待機 - この状態では、1つ以上の他のリソースを同時に待機している間に、プロセスが1つ以上のリソースの占有を停止する必要があります。
•循環待機 - すべてのリソースタイプの合計順序を課します。循環待機では、すべてのプロセスが列挙の昇順でリソースを要求する必要もあります。
デッドロックを処理するには、次の3つの方法があります。
•システムをデッドロック状態にしません。
•デッドロックを発生させ、デッドロック中にデッドロックの防止を試みます。
•デッドロックが発生した場合は、システムを再起動します。