对于大部分负载并不重的计算机而言,可以说CPU大部分的时间都是停留在"idle task"中,在Windows中从任管理器中可以看到大部分的CPU时间都停留在System Idle Process,如下图所示:
在Linux中,idle task并不是一个独立的线程,但是可以通过top指令查看CPU的idle比例:
总的来说,在Intel x86架构CPU中,“idle task”的实现是通过执行HLT指令实现的。当CPU执行HLT指令后,CPU就会停止指令的执行,并且让CPU处于HALT状态。当CPU处于HALT状态的时候,CPU虽然停止指令执行,并且CPU的部分功能模块将会被关闭(达到降低功耗的目的),但是CPU的LAPIC(Local Advanced Programmable Interrupt Controller)并不会停止工作,即CPU将会继续接收外部中断、异常等事件(事实上,CPU HALT状态的退出将由外部事件触发)。当CPU接收到这些外部事件的时候,将会从HALT状态恢复回来,执行中断服务函数,并且当中断服务函数执行完毕后,指令寄存器(CS:EIP&#