「RES: 割り込みの再スケジューリング」と「LOC: ローカルタイマー割り込み」の違いは何ですか? RES 割り込みを起動する責任があるのは何ですか? LOC は、プロセッサ内のタイマー h/w によって生成される一般的なタイマー割り込みと同じですか?
また、タイマー割り込みと RES 割り込みの間に呼び出されるスケジューラの部分を明確にしてください。Linuxカーネルではどのように発生しますか?
前もって感謝します。
「RES: 割り込みの再スケジューリング」と「LOC: ローカルタイマー割り込み」の違いは何ですか? RES 割り込みを起動する責任があるのは何ですか? LOC は、プロセッサ内のタイマー h/w によって生成される一般的なタイマー割り込みと同じですか?
また、タイマー割り込みと RES 割り込みの間に呼び出されるスケジューラの部分を明確にしてください。Linuxカーネルではどのように発生しますか?
前もって感謝します。
割り込みの再スケジュールは、別の CPU コアにスレッドをスケジュールするように通知する Linux カーネルの方法です。
SMP システムでは、これはスケジューラによって行われ、複数の CPU コアに負荷が分散されます。
スケジューラは、プロセッサのアクティビティをできるだけ多くのコアに分散しようとします。一般的な経験則では、他のコアがスリープしている間に 1 つのコアをフル スピードで実行するのではなく、すべてのコアでできるだけ多くのプロセスを低電力 (低クロック周波数) で実行することをお勧めします。
割り込みの再スケジューリングは、プロセッサ間割り込み (IPI)を使用して実装されます。詳細については、Linuxでの割り込みの再スケジュールに関するこの記事を参照してください。
ローカル タイマー割り込みは、特定の CPU コアの APIC によって発生します。その CPU コアだけが割り込みを受け取り、処理します。そのさまざまな利点の簡単な説明については、この回答をご覧ください。