コンピューターは人類の最も成功した発明の XNUMX つと考えられており、特定のタスクを完了する際に、手間のかからないエクスペリエンスを私たちに提供してきました。 私たちの仕事や社会生活を改善するのに役立ち、私たちにとって実行可能なスペースを作り出してくれました。
コンピューター上で特定のタスクを実行すると、技術的な問題が原因で問題が発生することがあります。 このような問題のうち 1 つは、2. デッドロックと XNUMX. オペレーティング システム OS のスタベーションです。
主要な取り組み
- デッドロックは、XNUMX つ以上のプロセスが相互にリソースを解放するのを待っているときに発生し、デッドロック状態になります。スタベーションは、プロセスが実行に必要なリソースを取得できないときに発生します。
- デッドロックは、リソースの不適切な同期が原因で発生する状況であり、スタベーションは、他のプロセスがリソースを保持しているためにプロセスがリソースを取得できない場合に発生します。
- デッドロックとは、プロセスがそれ以上進められない状況です。飢餓状態では、一部のプロセスは続行できますが、影響を受けるプロセスは続行できません。
オペレーティング システム OS でのデッドロックと飢餓
オペレーティング システム OS におけるデッドロックとスタベーションの違いは、それらが発生する時間です。 デッドロックは、プロセスがリソースを保持し、プロセスが保持する他のリソースを待機すると発生します。 一方、オペレーティングシステムosのスタベーションは、優先度の低いプロセスがブロックされ、優先度の高いプロセスが実行されることで発生します。

あるプロセスの実行を要求されたリソースが、待機中の別のプロセスによって保持されている状態をデッドロックといいます。デッドロックは、マルチプロセッシング、分散システム、並列コンピューティングで発生します。
デッドロックでは、プロセスの共有リソースは、プロセス同期の実装のためにハードウェアおよびソフトウェアのロックによって判断されます。 通信システムでデッドロックが発生する原因は、信号の損失または破損です。
優先度の低いプロセスがブロックされ、優先度の高いプロセスが実行されることによって問題が発生することを、オペレーティング システム os ではスタベーションと呼びます。
飢餓は、優先度の低い手順の不確実な待機を引き起こすため、優先度スケジューリング アルゴリズムにおける大きな問題です。飢餓は、同時コンピューティングでも発生します。
スタベーションの原因には、スケジューリングのエラー、リソース リークなどが含まれます。スタベーションの例としては、マルチタスク システムの XNUMX 番目のタスクが最初の XNUMX つのタスク間で切り替わったり、実行されなかったり、CPU 時間のためにスタベーションされたりすることが挙げられます。
比較表
比較のパラメータ | Deadlock オペレーティング システム OS で | オペレーティング システム OS の飢餓 |
---|---|---|
意味 | あるプロセスの実行を要求されたリソースが、待機中の別のプロセスによって保留されている状態は、デッドロックと呼ばれます。 | 優先度の低いプロセスがブロックされて許可されない場合、リソースと優先度の高いプロセスはリソースの許可によって実行されます。これは、オペレーティング システム os ではスタベーションとして知られています。 |
としても知られている | 循環待機 | ライブロック |
その他 | リソースは別の待機中のプロセスによって保持されています。 | 優先度の高いプロセスはリソースを使用します。 |
目的 | プリエンプションなしと循環待ち、相互排除、保留と待ちの同時発生。 | スケジューリングのエラー、リソース管理の制御不能、リソースの制限。 |
安全防災 | プリエンプションの許可。 | エージング。 |
オペレーティング システム OS のデッドロックとは何ですか?
あるプロセスを実行するために要求されたリソースが別の待機中のプロセスによって保持されている状態をデッドロックといいます。デッドロックは循環待機とも呼ばれます。
マルチプロセッシング システムと分散システム、そして並列コンピューティングの両方でデッドロック状況が発生します。 通信システムでも観察されます。
デッドロックの発生原因としては、プリエンプションなしと循環待ちの同時発生、相互排他、ホールドアンドウェイトなどが考えられます。 この XNUMX つが同時に発生すると、デッドロックが発生します。
通信システムにおけるデッドロックの発生は、信号の損失または破損が原因で発生します。
デッドロックの主な例は、プロセス 1 がプロセス 2 のリソース 2 を使用していて、プロセス 2 がまだ実行されている場合です。デッドロックは、プリエンプションを許可したり、リソース割り当てグラフなどを使用したりすることで防止できます。
これらのリソース割り当てグラフは、特定のタスクまたはアルゴリズムの実行時にデッドロックを検出するのにも役立ちます。
オペレーティング システムが異なれば、デッドロックの状況の処理方法も異なります。 デッドロック状況へのアプローチには、デッドロックの無視、検出、防止などが含まれます。
分散トランザクションまたは同時実行制御の使用が原因で、分散システムで発生する分散デッドロックが存在します。 分散デッドロックは、グローバル待機グラフを作成するか、分散アルゴリズムを実行することによって回避されます。

オペレーティング システム OS のスターベーションとは何ですか?
優先度の低いプロセスがブロックされてリソースが許可されず、優先度の高いプロセスがリソースを許可されて実行されることによって問題が発生することを、オペレーティング システム OS ではスタベーションと呼びます。
オペレーティング システム OS のスタベーションは、ライブ ロックとも呼ばれます。
オペレーティング システムでスタベーションが発生する原因は、スケジューリングのエラー、リソース管理の制御不能、およびリソースの制限です。
最初の XNUMX つのタスクを切り替えるマルチタスキング システムの XNUMX 番目のタスクは実行されないか、不足します。これは、CPU 時間が不足の顕著な例であるためです。
システム内で長時間待機する優先プロセスを徐々に増やしていきます。 このプロセスは老化と呼ばれます。 老化のプロセスは予防策の XNUMX つであり、むしろオペレーティング システムの飢餓に対する解決策です。
一般に、負荷の高いコンピュータ システムでは、優先度の高いプロセスにより、優先度の低いプロセスが CPU を取得できなくなります。
オペレーティング システムでのスターベーションの防止は、リソース割り当てのためにランダムなプロセスを選択しないなど、スターベーションを引き起こすプロセスを回避するなど、他の方法で防ぐことができます。 スターベーションが不可能なアルゴリズムは、スターベーションフリーまたはロックアウトフリーと呼ばれます。

オペレーティング システム OS におけるデッドロックとスターベーションの主な違い
- 一方、プロセスがリソースを保持し、他のプロセスが保持するリソースを待機すると、デッドロックが発生します。また、優先度の低いプロセスがブロックされ、優先度の高いプロセスが実行されると、オペレーティング システムの飢餓が発生します。
- デッドロックの防止策としては、プリエンプションの許容や相互排除の回避などが挙げられますが、一方、オペレーティングシステムの枯渇はエージング処理を実行することで回避できます。
- どちらの状況でもリソースの状態は異なります。 デッドロックでは、リソースは他の待機プロセスによって保持され、オペレーティング システムの枯渇では、リソースは優先度の高いプロセスによって使用されます。
- デッドロックの増加状況には、同時に XNUMX つのケースが発生することが含まれます。一方、不十分なリソース管理を含むいくつかの理由により、飢餓が発生します。
- どちらの状況でもプロセスのロールバックは異なります。デッドロックでは、優先度の高いプロセスと低いプロセスの両方が互いに待機し、どのプロセスもロールバックしないため、プロセスが無限になります。飢餓、優先度の低いプロセスのロールバック。
- デッドロックが原因でオペレーティング システムのスタベーションが発生する可能性がありますが、スタベーションが原因でデッドロックが発生するわけではありません。