オペレーティングシステム11
レッスン11
Deadlock
プロセスはブロックされ、互いに所有するリソースを待つ
しげん
Deadlock発生条件
反発反発(Mutual Exclusion):所有時間内に独占的に使用
Noプリエンプト(非線形)
Hold and Wait
:リソースを所有するプロセスが他のリソースを待機している間も、リソースを解放せずにリソースを保持します.
Circular wait
:リソースを待機するプロセス間でループを形成します.
p 0はp 1が所有するリソースを待つ
p 1 p 2が所有するリソースを待つ
pn-1 pnが所有するリソースを待つ
PnはP 0が所有するリソースを待つ
Deadlock処理方法
deadlock prevention
リソースの割り当て時に、デッドロックの4つの必要条件の1つが満たされていないことを確認します.
deadlock avoidance
:リソース要求の追加情報にデッドロックの可能性がない場合のみ、リソースを割り当てます.
リソースは、システムステータスが元のステータスに復元できる場合にのみ割り当てられます.
deadlock detection and recovery
:デッドロックの発生は許可されていますが、デッドロックが検出されたときにリカバリされる検出ルーチンがあります.
deadlock ignorance
:デッドロックはシステムの責任ではありません.ほとんどのオペレーティングシステム(UNIXを含む)は採用されています(ユーザーがプロセスを自動的に終了するためです).
1. Deadlock Prevention
hold & wait
リソースを待っている場合は、リソースがなければ大丈夫です.
方法プロセスの開始時に必要なすべてのリソースを割り当てる方法(リソースの効率が低下...救済方法2)
方法リソースが必要な場合は、すべてのリソースを解放し、再要求します.
no preemption
資源を奪い取ればいい.
主にCPUとメモリに使用され、リソースの現在の状態を簡単に保存および復元できます.
circular wait
リソースの割当て順序を指定し、リソースのみを順番に割り当てます.
グラフにループがなければデッドロックではありません.
ループが存在する場合、
インスタンスがデッドロックである場合、
複数であれば、行き詰まりではない可能性もあります.
- **Banker's Algorithm사용**
2. Deadlock avoidance
プロセスが起動時に書き込む最大リソース量を知っていると仮定し、デッドロックが発生する可能性がある場合、リソースは割り当てられません.
Banker's Algorithm
では、P 0のすべての人がユーザーリソースを使用している場合、それはデッドロックですか?
珍しくない.これは、他のプロセスのリソースが埋められるからです.
しかしBanker'sアルゴリズムは非常に保守的なので、割り当てないだけです.
3. Deadlock detect & recovery
デッドロックは頻繁に発生するイベントではないので、デッドロックが発生すると検出され、復元されます.
リソースが1つしかない場合は、リソース割り当てグラフィックを使用します.
複数のファセットテーブルが検出されました(1つはテーブルとしても、グラフィックは追加の方法です).
cycleを探す費用は?
O(n^2)
cycleがあるかどうか知りたいなら、ついて行ってみてください.n個の点がある場合、最大n-1個の矢印を持つことができます.(
n * (n -1)
)もしそうなら?
デッドロックが検出された場合は、リカバリが必要です.
同じパターンが再発したら?(同じプロセスが犠牲者として選択され続ける場合)
リソースのプリエンプト・モードを変更します.
これにより、起動の問題が発生する可能性があります.
このため、ロールバック回数も考慮する必要があります.
4. Deadlock Ignorance
:デッドロックは発生しないと判断し、いかなる措置も取らない
デッドロックはめったに発生しないため、デッドロックを処理すること自体がより大きなオーバーヘッドになる可能性があります.
オーバーヘッドが発生した場合は、手動でプロセスを殺す方法で処理できます.
Reference
この問題について(オペレーティングシステム11), 我々は、より多くの情報をここで見つけました https://velog.io/@aksel26/운영체제11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol