Linux には、スケジュールされたタスクレットのキューがあります。CPU が割り込みまたはシステム コールから戻ると、CPU はスケジュールされたタスクレットをチェックして実行します。処理するタスクレットが多すぎる場合はどうなりますか? それらはどのようにスケジュールされていますか?.
質問する
1352 次
1 に答える
2
テジャス、
それは本当に素晴らしい質問です。
この質問に対するtl;dlの答えは次のとおりです。
first-come-first-serve within the softirq-tasklet thread.
(タスクレットは softirq の上に構築されているため、これは予想されますが、よりシンプルなインターフェイスと緩和されたロック規則を備えています。)
記事「I'll Do It Later: Softirqs、Tasklets、Bottom Halves、Task Queues、Work Queues and Timers」では、新しい割り込みや他のデバイスが失われないように、割り込みハンドラーであまり多くの作業を行うべきではない方法について説明しています。続行する機会に飢えています (これは注意すべき主な落とし穴です)。
スケジューリング アルゴリズムとタスクレットの内部について詳しく説明している記事「タスクレット」を読むことを強くお勧めします。
より一般的なレベルでは、「The Linux Process Scheduler」という記事は、Linux に実装されているスケジューリング ポリシーを説明する優れた仕事をしています。
ご不明な点がございましたら、お気軽にお問い合わせください。
于 2014-09-27T22:55:23.390 に答える