linux-kernel - 为什么linux内核需要空闲线程?

标签 linux-kernel smp

如果无事可做(包括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/

相关文章:

linux - `[stack]` 、 `[vdso]` 和 `[vsyscall]` mmaps 从哪里来?

c - 在内核线程启动时使用 use_mm 和 set_fs

javascript - 使用 Javascript 从 Strobe Media Playback 获取统计信息

linux - 如何在 linux 中执行加密的 bash 脚本文件

linux tasklets - 执行顺序

c - 插入 mymodule 后,我没有看到/sys/module/mymodule/parameters 文件夹被创建

linux - SMP 中的 CPU 停顿

linux - linux 中的 smp 亲和性设置

assembly - 在多核 x86 处理器中设置关联