デッドロックとは、実行プロセス中に複数のプロセスがリソースを競合したり通信したりすることによって発生するブロック現象を指し、外部からの力がなければ先に進むことができなくなります。常に相互に待機しているこれらのプロセスは、デッドロック プロセスと呼ばれます。
この記事の動作環境: Windows7 システム、DELL G3 コンピューター
デッドロックの概念とは何ですか?
デッドロックとは、2 つ以上のプロセスが実行中にリソースの競合や通信を行うことによって発生するブロック現象のことで、外部からの力がなければ、すべてのプロセスが処理を進めることができなくなります。このとき、システムがデッドロック状態にある、またはシステムがデッドロックに陥っているといい、このように常に待ち合っているプロセスをデッドロックプロセスと呼びます。
解決策:
システムでデッドロックが発生した後は、デッドロックの発生を適時に検出し、デッドロックを解消するために適切な措置を講じる必要があります。
デッドロックの防止。
これは、よりシンプルで直感的な事前予防方法です。この方法は、デッドロックに必要な 4 つの条件のうち 1 つ以上を破壊するために一定の制限を設定することで、デッドロックを回避するというものです。デッドロックの防止は実装が簡単な方法であり、広く使用されています。ただし、課される制約が厳しすぎることが多いため、システム リソースの使用率とシステム スループットが低下する可能性があります。
デッドロックの回避。
システムは、システムが満たせるプロセスによって発行された各リソース要求を動的にチェックし、チェック結果に基づいてリソースを割り当てるかどうかを決定します。割り当て後にシステムがデッドロックする可能性がある場合は割り当てられません。割り当てられます。これは、システムがデッドロック状態にならないようにするための動的な戦略です。
デッドロックの検出と解放。
最初に検出: この方法では、事前に制限措置を講じる必要がなく、システムが安全でない領域に入ったかどうかを確認する必要もないため、動作中にシステムがデッドロックする可能性があります。しかし、システムに設けられた検出機構によりデッドロックの発生をタイムリーに検出することができ、デッドロックに関連するプロセスやリソースを正確に把握することができる。検出方法には、タイミング検出、効率が悪い場合の検出、プロセス待ちの場合の検出などがあります。
次に、デッドロックを除去します。適切な措置を講じて、システムから発生したデッドロックを除去します。
デッドロックの検知に合わせた対策です。システム内でデッドロックが検出された場合、プロセスをデッドロック状態から解放する必要があります。一般的な実装方法は、一部のプロセスをキャンセルまたは一時停止してリソースを再利用し、これらのリソースをすでにブロック状態にあるプロセスに割り当てて、実行を継続できる状態にします。デッドロックの検出と救済策により、システムのリソース使用率とスループットが向上する可能性がありますが、実装が最も難しいものでもあります。
関連知識の詳細については、FAQ 列をご覧ください。
以上がデッドロックの概念とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。