
When you set the performance option for processor scheduling in the GUI, you only see two possible choices for the duration of the timeslice quantum:ġ) Programs: value is 38 decimal, binary is 100110 = shorter intervals, variable timeslice length, 3 x boostĢ) Background Services: value is 24 decimal, binary is 011000 = longer timeslice interval, timeslice fixed length, no boost It’s a great read!Ĭhanging the processor scheduling option modifies the Win32PrioritySeparation value under the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Priorit圜ontrol key, which consists of 6 bits (AABBCC)…Ġ0 – foreground/background processes have same priorityĠ1 – foreground process gets 2 x boost compared to background processġ0 – foreground process gets 3 x boost compared to background process You can still download chapter 6 from the Fourth Edition titled “ Processes, Threads, and Jobs“. There is some excellent information on how Windows manages Processes and Threads in the updated Windows Internals, Fifth Edition book by Mark E.

Thomas Koetzing wrote a great article on Understanding and Troubleshooting context switches. So obviously we need to avoid excessive context switching but still maintain the illusion of concurrency. Context Switches are computationally expensive, and we all know how bad excessive context swtiching is in any environment, more so in a Terminal Services environment. Every time the CPU switches to a new process, there is what’s called a context switch. The quantum is simply the amount of time the CPU will spend on the task. In a nutshell the processors are allowed to spend finite chunks of time per process.

The choice of scheduling algorithm can be immensely important. In reality, the CPUs rapidly skip from task to task using various algorithms and heuristics, making one think the processes truly are running simultaneously. Multi-tasking Operating Systems just give the illusion that they’re doing things in parallel.
