2013-08-23 13 views
6

「RES:割り込みの再スケジューリング」と「LOC:ローカルタイマ割り込み」の違いは何ですか? RES割り込みを発生させる原因は何ですか? LOCは、プロセッサのタイマh/wによって生成される汎用タイマ割り込みと同じですか?割り込みの再スケジューリング(RES)とは何ですか?何が原因ですか? Linuxカーネルではどのように処理されますか?

また、タイマ割込みとRES割込みの間にスケジューラのどの部分が呼び出されるのかを明確にしてください。 Linuxカーネルではどうなるのでしょうか?

ありがとうございます。

答えて

9

割り込みの再スケジューリングは、アイドル状態のCPUコアをスリープ解除してスレッドをスケジュールするLinuxカーネルの方法です。 SMPシステムでは、これは、複数のCPUコアに負荷を分散させるためにスケジューラによって行われることがよくあります。

スケジューラは、プロセッサのアクティビティを可能な限り多くのコアに分散しようとします。一般的な経験則では、他のコアがスリープしている間に1つのコアがフルスピードで実行されているのではなく、より低い電力(より低いクロック周波数)ですべてのコアで多くのプロセスを実行することが望ましいということです。

再スケジュール割り込みがInter-Processor Interrupts (IPI)使用して実装されています。チェックアウトの詳細は article on Rescheduling Interrupts on Linuxです。


ローカルタイマー特定のCPUコア用のAPICによって提起されている中断します。そのCPUコアのみが割り込みを受け取り、それらを処理します。さまざまな利点の簡単な説明については、こちらをご確認くださいanswer

+0

返信いただきありがとうございます。 CFSスケジューラコードの** 'TIF_NEED_RESCHED' **は、基本的にこのRES割り込みを処理していますか? そして、第2に、どの割り込みがスケジューラをトリガしますか?それはAPICを介してタイマー割り込みですか?もしそうなら、タイマとリセットされた割り込みの両方が非同期的に起こりますw.r.t.お互い? スケジューラの呼び出しをもっと明確にすることが役に立ちます。再度、感謝します! – user31986

関連する問題