如果无事可做(包括SMP),而不是“无所事事”,为什么Linux内核会运行空闲线程?
最佳答案
当调度器决定切换到空闲任务时,此时动态滴答开始工作,通过禁用周期性滴答直到下一个计时器到期。在此时间跨度之后或在某个时间发生中断时,将重新启用滴答声。
与此同时,CPU 将以特定于架构的方式进入当之无愧的 sleep 状态,从而节省您的电量。看看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)
关于linux-kernel - 为什么linux内核需要空闲线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315923/