过去在哪个杂志看过:
好象是让CPU空闲得时候利用起来,紧忙的时候减慢指令的执行,记得不太清楚了!

解决方案 »

  1.   

    像屏保一样,低优先级线程,系统闲置的时候就运行,不停的nop,nop,nop,,,...上帝。
      

  2.   

    不是nop,是Halt指令,CPU空转也要消耗能量的,不过做起来很多的问题要解决,首先好像要有Ring0的特权?原理是知道的,程序是写不出来的。:(
      

  3.   

    很简单
    嵌入汇编
    执行hlt指令
      

  4.   

      
      好象再win 9x和winNT中是不同的。
    HLT指令。
      

  5.   

    hlt指令好像是没错,不过嵌入进去以后好像没什么用
      

  6.   

    工欲善其事,必先利其器,首先应该明白整个原理和过程:
    在Win9X、WinNT/2000中,执行的最小单位是线程。线程的状态有两种:运行、阻塞。处于阻塞态的线程由于条件不满足而无法继续执行,所以在系统的任务调度中就不再分配CPU时间片;如果在一段临界时间里,所有的线程都处于阻塞态,并且没有外部中断,则此时操作系统进入Idle状态;如果此时有线程恢复运行,或是有外部中断,则系统退出Idle状态。由于处于Idle状态的系统没有任何需要执行的线程代码,所以此时要么是在空循环(NOP)等待,要么使CPU暂停(HLT)。当然,空循环(NOP)对于CPU来说还是在执行指令,所以CPU仍旧在全速运行;而暂停(HLT)指令对于CPU来说,会使CPU中的许多部分停止工作,CPU处于一种半睡眠状态,此时的功耗就小得多,当然产生的热量也少很多。当系统退出Idle状态时,CPU会重新恢复工作状态,这个过程非常迅速。
    其实在Win2000中已经有这个功能,PID为0的进程便是Idle处理进程,已经拥有了HLT功能,而Win9X没有。但是有一点需要知道:只有在Ring0的状态下执行HLT才会有效,因为CPU会屏蔽所有非特权级的特权指令,当然HLT也是其中之一。
      

  7.   

    如果实现HLT指令!主要就在这里啊!
      

  8.   

    实在没有必要,从Win2000开始OS已经具备了这个功能,即使你做出来了,也用不了多少时间