Revision as of 19:50, 22 August 2007 edit67.90.197.194 (talk) Commented out the thread priority paragraphs, which really ought to be moved out into their own article← Previous edit | Latest revision as of 18:12, 8 January 2025 edit undoCitation bot (talk | contribs)Bots5,458,621 edits Added date. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | Category:Windows NT architecture | #UCB_Category 5/22 | ||
(119 intermediate revisions by 76 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Kernel process in Windows NT operating systems}} | |||
{{Cleanup|date=June 2007}} | |||
{{Multiple issues| | |||
] | |||
{{refimprove|date=July 2012}} | |||
In ]-based operating systems, the '''System Idle Process''' is the system ]: it tracks how much of the ]'s time is being utilized and issues the ] instruction to cut the processor's power usage. In the ], it provides information about how heavily loaded the CPU is. In a system that is not very busy, such as a typical workstation waiting for input, the idle process accounts for over 90% of the CPU. | |||
{{primary sources|date=July 2012}} | |||
{{no footnotes|date=July 2012}} | |||
}} | |||
{{Infobox software | |||
<!-- | |||
| name = System Idle Process | |||
THIS IS INTERESTING BUT DOESN'T BELONG HERE. IT BELONGS IN AN ARTICLE ON WINDOWS THREAD PRIORITIES. | |||
| screenshot = System idle process.png | |||
| screenshot_size = 300px | |||
| caption = ] in ] showing System Idle Process usage at 99%, indicating that no other process is using significant CPU time. | |||
| operating system = ] | |||
| genre = Kernel | |||
}} | |||
In ] operating systems, the '''System Idle Process''' contains one or more kernel ] which run when no other runnable thread can be scheduled on a CPU. In a multiprocessor system, there is one idle thread associated with each CPU core. For a system with ] enabled, there is an idle thread for each logical processor. | |||
There are 32 levels of priority: 1 through 15 for the common applications, 16 through 31 for critical threads, and a priority 0 that is used only for the system idle process. The higher the number, the greater the priority. Priorities 1 through 15 are the dynamic priorities that typical applications get assigned. The priorities of threads in this realm are constantly being changed, getting bumped and degraded according to need by the Operating System (OS). | |||
The primary purpose of the idle process and its threads is to eliminate what would otherwise be a special case in the scheduler. Without the idle threads, there could be cases when no threads were runnable (or "Ready" in terms of Windows scheduling states). Since the idle threads are always in a Ready state (if not already Running), this can never happen. Thus whenever the scheduler is called due to the current thread leaving its CPU, another thread can always be found to run on that CPU, even if it is only the CPU's idle thread. The CPU time attributed to the idle process is therefore indicative of the amount of CPU time that is ''not'' needed or wanted by any other threads in the system. | |||
The scheduler treats the idle threads as special cases in terms of thread scheduling priority. The idle threads are scheduled as if they each had a priority lower than can be set for any ordinary thread. | |||
Because of the idle process's function, its CPU time measurement (visible through, for example, ]) may make it appear to users that the idle process is monopolizing the CPU. However, the idle process does not use up computer resources (even when stated to be running at a high percent). Its CPU time "usage" is a measure of how much CPU time is not being used by other threads. | |||
In Windows 2000 and later the threads in the System Idle Process are also used to implement ] power saving. The exact power saving scheme depends on the operating system version and on the hardware and ] capabilities of the system in question. For instance, on ] processors under Windows 2000, the idle thread will run a loop of ] instructions, which causes the CPU to turn off many internal components until an ] arrives. Later versions of Windows implement more complex CPU power saving methods. On these systems the idle thread will call routines in the ] to reduce CPU clock speed or to implement other power-saving mechanisms. | |||
There are 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 usage. A limited ] of the CPU time categorization is also accessible through the ], which can display CPU usage by CPU, and categorized by time spent in user vs. kernel code. | |||
Priorities 16 through 31 are not dynamic, this is what is meant by "real time" when talking about a threads priority. The priority of real time threads is constant as the OS does not change them. These priorities are used for operations that are time critical. In addition, users with administrative authority can also set real time priorities for applications on their own. | |||
--> | |||
== See also == | == See also == | ||
* ] | * ] | ||
* ] | * ] | ||
* ] | * ] | ||
* ] | * ] | ||
* ] | |||
== References == | |||
⚫ | {{Windows Components}} | ||
* {{cite book | title = Microsoft Windows Internals | edition = 4th | chapter = Chapter 2: System Architecture | pages = | last = Russinovich | first = Mark | author-link = Mark Russinovich | author2 = David A. Solomon | year = 2005 | publisher = Microsoft Press | isbn = 0-7356-1917-4 | url-access = registration | url = https://archive.org/details/isbn_9780735619173/page/75 }} | |||
⚫ | ] | ||
* {{Cite web|title=What Is "System Idle Process," and Why Is It Using So Much CPU?|url=https://www.howtogeek.com/411569/what-is-system-idle-process-and-why-is-it-using-so-much-cpu/|access-date=2022-01-13|website=How-To Geek|date=25 April 2019 |language=en-US}} | |||
* {{Cite web|title=system idle process - What is system idle process?|url=https://www.processlibrary.com/en/directory/files/system%20idle%20process/25540/|access-date=2022-01-13|website=www.processlibrary.com}} | |||
⚫ | {{Windows Components}} | ||
⚫ | ] | ||
] |
Latest revision as of 18:12, 8 January 2025
Kernel process in Windows NT operating systemsWindows Task Manager in Windows XP showing System Idle Process usage at 99%, indicating that no other process is using significant CPU time. | |
Operating system | Microsoft Windows |
---|---|
Type | Kernel |
In Windows NT operating systems, the System Idle Process contains one or more kernel threads which run when no other runnable thread can be scheduled on a CPU. In a multiprocessor system, there is one idle thread associated with each CPU core. For a system with hyperthreading enabled, there is an idle thread for each logical processor.
The primary purpose of the idle process and its threads is to eliminate what would otherwise be a special case in the scheduler. Without the idle threads, there could be cases when no threads were runnable (or "Ready" in terms of Windows scheduling states). Since the idle threads are always in a Ready state (if not already Running), this can never happen. Thus whenever the scheduler is called due to the current thread leaving its CPU, another thread can always be found to run on that CPU, even if it is only the CPU's idle thread. The CPU time attributed to the idle process is therefore indicative of the amount of CPU time that is not needed or wanted by any other threads in the system.
The scheduler treats the idle threads as special cases in terms of thread scheduling priority. The idle threads are scheduled as if they each had a priority lower than can be set for any ordinary thread.
Because of the idle process's function, its CPU time measurement (visible through, for example, Windows Task Manager) may make it appear to users that the idle process is monopolizing the CPU. However, the idle process does not use up computer resources (even when stated to be running at a high percent). Its CPU time "usage" is a measure of how much CPU time is not being used by other threads.
In Windows 2000 and later the threads in the System Idle Process are also used to implement CPU power saving. The exact power saving scheme depends on the operating system version and on the hardware and firmware capabilities of the system in question. For instance, on x86 processors under Windows 2000, the idle thread will run a loop of halt instructions, which causes the CPU to turn off many internal components until an interrupt request arrives. Later versions of Windows implement more complex CPU power saving methods. On these systems the idle thread will call routines in the Hardware Abstraction Layer to reduce CPU clock speed or to implement other power-saving mechanisms.
There are 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 usage. 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.
See also
- List of Microsoft Windows components
- Idle (CPU)
- Microsoft Windows
- HLT (x86 instruction)
- Process Explorer
References
- Russinovich, Mark; David A. Solomon (2005). "Chapter 2: System Architecture". Microsoft Windows Internals (4th ed.). Microsoft Press. pp. 75–76. ISBN 0-7356-1917-4.
- "What Is "System Idle Process," and Why Is It Using So Much CPU?". How-To Geek. 25 April 2019. Retrieved 2022-01-13.
- "system idle process - What is system idle process?". www.processlibrary.com. Retrieved 2022-01-13.
Microsoft Windows components | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Management tools |
| ||||||
Apps |
| ||||||
Shell | |||||||
Services | |||||||
File systems | |||||||
Server |
| ||||||
Architecture |
| ||||||
Security | |||||||
Compatibility | |||||||
API | |||||||
Games | |||||||
Discontinued |
| ||||||
Spun off to Microsoft Store | |||||||