質問

複合加工システムは、異常な条件の進捗状況の実行プロセスやスレッド)。私はどちらでもプロセスやスレッドは単に"プロセス".これら二つの条件と呼ばれるデッドロックをブロックの設定が有効になります。

前者はプロセスをブロック、防止のいずれかから。後者とは、プロセスの防止から進んでもない実際にブロックを実行します。例えば、継続的な原因が互いにロールバック取引をもって終えることができます。

他の条件として知られる資源の飢餓、一つ以上の有限の資源に必要な進展過程において劣化しないので復元されない限り、プロセス。これも特別な場合のブロックの設定が有効になります。

というのがあった場合は定義は、特に学一、"飢餓"とは限らない"リソースの餓死"といいます。参考文献を特に歓迎いたします。

と、この宿題も出されたりする。:-)

役に立ちましたか?

解決

んあるリソース飢餓には特別の場合livelock.通常:

  • にlivelockレムページで見ることができます。でい。(行き詰まりもなく実行)

  • が飢餓、一部のスレッド(s)するようになったのは、進行や一部のスレッド(s)せん。

良い解説: http://docs.oracle.com/javase/tutorial/essential/concurrency/starvelive.html.にとっては選択肢の用語は変更になる場合がございます。

で飢餓の定義を聞いたのは:

ではないでしょうか指定することが可能で、無限のパスの実行(背面ることを確保するための前提セマフォ意味論、OSのスケジューラの動...)がスレッドTは停止を待って一部の資源のいかんを再開した場合といえども、可能な限ります。それはという詳細

その実践に一致しない。このスレッドを実行しcritial、無限ループを実行します。ご同期コードで最初のスレッドに入critial一部を提供しています。で飢餓?両方のスレッドに進捗が、最初はいつもの仕事を痛感します。

最も簡単なソースの飢餓が弱いセマフォ.ご利用の場合は同期プリミティブ(自分の)と同様に動作し、飢餓となります。

古典的な問題が飢餓はよく知られています。

詳しくは、心を込めてお薦めの本のセマフォあり(無料): http://www.greenteapress.com/semaphores/.

お問れらを組み合わせると、飢餓の原因は何かを待ってます。いと思うん-その通りである。

スレッドを取り止めることができ:

(1)一部のブロックシステムコール-待機中/取得ミューテックス、セマフォ条件付き変数write()、poll()など。

(2)一部のnonblocking操作のような計算を行う.

飢餓(1)は飢餓にリソース(ミューテックス、バッファます。

飢餓と(2)は飢餓にCPUができるにつれて、パートナーとしてとして資源です。この問題は提供します。

HTH

他のヒント

あなたは妊娠中の女性が優先権を持っているレストランでは、食品を購入するためにキューにいると想像してください。そして、すべての時間を到着妊娠中の女性の全体の束がちょうどあります。

これはすぐに飢えされます。 ;)

これで、優先度の低いプロセスであり、妊娠中の女性は、優先度の高いものです想像してみてください。 =)

優先度スケジューリングアルゴリズムについて話すとき、

飢餓や「不定ブロッキングは、」一般的にアップしています別の領域です。優先度スケジューリングアルゴリズムは、無期限に待機しているいくつかの低優先度のプロセスを残す可能性があります。優先度の高いプロセスの安定した流れがこれまでに実行するようになってから、優先順位の低いプロセスを防ぐことができます。

優先スケジューラの場合には、溶液が「老化」です。高齢化が徐々に長い時間のためのシステムで待機プロセスの優先度を高くする技術である。

飢餓は、システム上のデッドロックが存在しない場合でも、プロセスまたはサービスが、サーブされていないときだけです。

これは私がちょうど明確にする目的で作ら一例です。

WANまたはそのような何かにコンピュータへのアクセスを制御するアルゴリズムを想像してみてください。このアルゴリズムは、「少ない帯域幅を使用するそれらのコンピュータへの優先アクセスを提供する」というポリシーを持つことができ、適切な政策のように見えるだろうことが、単一のコンピュータが、その意志FTPアップロードのためのネットワークにアクセスしたいときに何が起こりますどこかにいくつかのGBを送ります。このアルゴリズムは、そのコンピュータを選択することはありませんので、小さな帯域幅の使用を要求し、常に他のコンピュータが存在しますので、一人でこのポリシーを使用すると、そのコンピュータは、餓死します。

これは、飢餓と呼ばれます。

を作業も資源の一種です。生産者 - 消費者セットアップでの作業配分が公正(または理想的)でない場合は、いくつかのスレッドがビジー状態のすべての時間をそれらを保つために十分な作業項目を取得できないことがあります。

プロセスは長い時間のためのリソースまたはリソースを取得できません。問題のない一つのプロセス/ sの実行ので、これは、デッドロックではありません。 この問題を解決するために使用することができる老化、老化の要因は、各要求のために使用されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top