5

何もすることがない場合 (SMP を含む)、「何もしない」のではなく、Linux カーネルがアイドル スレッドを実行するのはなぜですか?

4

2 に答える 2

7

スケジューラーがアイドルタスクに切り替えることを決定すると、この時点で、次のタイマーが切れるまで定期的なティックを無効にすることにより、動的ティックが機能し始めます。ティックは、この期間の後、またはある時点で割り込みが発生したときに再び有効になります。

その間、CPUはアーキテクチャ固有の方法で十分なスリープ状態になり、電力を節約します。cpu_idle()arch / x86 / kernel/process.cの定義を見てください。

/*
 * The idle thread. There's no useful work to be
 * done, so just try to conserve power and have a
 * low exit latency (ie sit in a loop waiting for
 * somebody to say that they'd like to reschedule)
 */
void cpu_idle(void)
于 2013-01-14T14:43:26.337 に答える