Description of Performance Options in Windows
This article was previously published under Q259025
This article has been archived. It is offered "as is" and will no longer be updated.
SUMMARY
MORE INFORMATION
The term "quantum" is a unitless measure of time for each time slice that a thread will run until a "context switch" occurs and another thread (either within the same program or from within another program) is selected to run. This prevents a CPU-bound process from monopolizing the processor. Currently in Windows, 3 quantums are equal to either 10 milliseconds (single processor) or 15 milliseconds (multiple-processor Pentium). This depends on the hardware abstraction layer (HAL) selected for your computer. Original Equipment Manufacturer (OEM) HALs may have a different value. Time slices that are fixed at 36 quantums are currently used when background services are selected (as you might choose in a typical server installation).
The situation become more complex when you enable the Foreground Applications option. This introduces the "variable quantum" concept. In this case, background tasks receive a different quantum than the quantums received by the foreground tasks. Also, both sets of quantums are shorter than a thread would receive on a computer set for background services. Currently, a background process receives a quantum of 3 and a foreground process receives a quantum of 9. Therefore, you can calculate the length of time the thread will run before its timer expires.
In addition to time slice settings in Windows, the Foreground Applications option results in a process boost of 2 over background processes. Note that this boost applies only to current thread priority, which is not visible in Task Manager. You can use System Monitor to observe the thread's current priority and see the priority boost in action. Also, remember that Microsoft Windows NT also uses additional priority adjustments (usually 2) based on other events, such as momentarily boosting a thread's priority when it returns from an I/O call, when returning from a user-mode subsystem call, or when receiving keyboard input. When the Foreground Applications option is active, the current thread priority for a running process is boasted from 8 to 12 on occasion. The keyboard boost is also the reason the process boost is limited to 2, so the other threads can respond quickly to keyboard input. This setting is applied to all process threads immediately.
None of the foregoing discussion applies to the concept of priority classes or job scheduling classes. In Windows Advanced Server and Datacenter Server, which uses Job objects to control the behavior of jobs, job scheduling classes are used only if the Background Services option is selected.Please consult the Microsoft Developers Network documentation for additional information about Job scheduling classes.
Properties
Article ID: 259025 - Last Review: 12/05/2015 19:31:07 - Revision: 3.2
Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Datacenter Server
- kbnosurvey kbarchive kbenv kbinfo KB259025