2017-08-22 8 views
0

ネットを検索しようとしましたが、これに対して完全な答えが見つかりませんでしたか?この無限ループが無限ループか無限ループかを問わず、他のワーカー関数が永遠にこのwaitループを待つこの状況を避けるために続く手順の名前は何ですか。infinteループを含む関数が作業キューに入れられたときにLinuxがどのように処理するのですか?

+0

質問は特に明白ではありませんが、少し修正することを検討してください。おそらく例を挙げてください。どのような状況、具体的には避けようとしていますか? –

+0

あなたは 'NMIウォッチドッグ 'をGoogleで探そうとしましたか? – myaut

答えて

0

あなたが探しているキーワードは「優越」であり、それはどんな尊敬できるosの本でも検索できます。

無限ループがカーネル自体にCPUをあきらめていない場合、それはプログラミングエラーです。これは 'ウォッチドッグ'で検出されます。

0

Linuxでは、実行の各スレッドは、指定されたクォンタムに対してのみ実行され、別のクォンタムにスワップアウトされることがあります。プロセスが無限ループにあるかどうかは関係ありません。カーネルはここでパワーを持っています。

量子ビットが完全に使用される前にCPUを解放するスレッドには、カーネルが一時的に優先順位を上げることができ、うまく動作するように報酬を与えることができます(これは現在のカーネルでも同様です)。

+0

作業キューがワーカー関数の新しいスレッドを作成するのではなく、作業キューと同じスレッドのワーカー関数を実行している場合は、先取りを使用して交換できますか? –

関連する問題