直接回答:操作系统"空闲"时并非真的什么都不做。当就绪队列没有可运行的进程时,CPU 会运行一个特殊的空闲任务(idle task / 0 号进程),它通常执行 HLT 之类的指令让 CPU 进入低功耗状态,等待下一次中断唤醒;同时系统仍在响应时钟中断、处理延迟到此时执行的内核后台工作。
展开解析:空闲期常见的后台活动包括:时钟中断驱动的调度记账与定时器检查;内存子系统的后台回收(如 Linux 的 kswapd 回收页、维护空闲页水位);脏页回写磁盘;延迟过程调用、软中断和内核线程(如工作队列);电源管理(动态调频、深度睡眠)。这也解释了为什么"空闲"机器的 CPU 占用仍不是绝对零——那些零星的活动来自中断处理和内核线程。追问方向:tickless(动态时钟)内核如何在空闲时停掉周期时钟中断以省电;idle 进程算不算一个真正的进程(它没有独立用户上下文,只是内核中的循环)。