System Idle Process PDF Print

In Windows NT operating systems, the System Idle Process is a kernel thread, which runs when no other runnable thread can be scheduled on a CPU. For example, there may be no runnable thread in the system, or all runnable threads are already running on a different CPU.

The System Idle Process is used by Windows NT to implement CPU power saving. The exact power saving scheme depends on the hardware and firmware capabilities of the system in question. For instance, on x86 processors, the process will run a loop of HLT instructions, which causes the CPU to turn off many internal components and wait until an IRQ arrives.

The CPU time consumed by the System Idle Process is commonly of interest for end users, as it is a measure of the CPU utilization in their system which is easily accessible through Windows' Task Manager program. There are, however, more detailed sources of such information available through Windows' performance monitoring system (accessible with the perfmon program), which includes more finely grained categorization of CPU time spending. A limited subset of the CPU time categorization is also accessible through the Task Manager, which can display CPU usage by CPU, and categorized by time spent in user vs. kernel code. It should be noted, though, that that information is not calculated from information about the System Idle Process, but from the system's global performance counters.

 

Programs which make use of CPU Idle Time mean that they run at a low priority so as not to impact programs which run at normal priority. Many programs that use CPU idle time cause the CPU to always be 100% utilised, so that the time spent where the CPU would have been idle is instead spent performing useful computations. This generally causes the CPU to consume more power as most modern CPUs can enter power-save modes when they are idle.

Most operating systems 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.

On modern processors, where a HLT (halt) instruction saves significant amounts of power and heat, the idle task almost always consists of a loop which repeatedly executes HLT instructions. However, on older computers, where temperature dissipation was almost constant with CPU load, the program would often do useless things, like blink the front panel lights in an amusing or recognizable pattern.

Often, this meant that someone in the computer room of a timeshared system could glance at the front panel lights to see how busy the machine was; programmers might use this to decide when to take lunch or coffee breaks




This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia.


This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia.