Every program or task that runs on a computer system occupies a certain amount of processing time on the CPU. If the CPU has completed all tasks it is idle.
Modern processors use idle time to save power. Common methods are reducing the clock speed along with the CPU voltage and sending parts of the processor into a sleep state. On processors that have a halt instruction that stops the CPU until an interrupt occurs, such as x86's HLT instruction, it may save significant amounts of power and heat if the idle task consists of a loop which repeatedly executes HLT instructions.
Most operating systems[which?] will display an idle task, which is a special task loaded by the OS scheduler only when there is nothing for the computer to do. The idle task can be hard-coded into the scheduler, or it can be implemented as a separate task with the lowest possible priority. An advantage of the latter approach is that programs monitoring the system status can see the idle task along with all other tasks; an example is Windows NT's System Idle Process.
Some programs are designed to make use of CPU idle time, meaning that they run at a low priority so as not to impact programs that run at normal priority. This allows non-crucial background programs to only run when it would not affect the performance of other applications. Programs like this may cause the CPU to be at 100% utilization all the time which causes the CPU to consume more power, since most modern CPUs can enter power-save modes when they are completely idle.