Hi,
Just checking in to see if the information provided was helpful.
Please let us know if you would like further assistance.
Best Regards,
Vicky
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Would some one be able to share what exactly is the role of the dispatcher in context switching ? My understanding is that the dispatcher is responsible for loading of the context of a process on to the CPU and the saving the context of the current executing process. Does this sound correct ?
Hi,
Just checking in to see if the information provided was helpful.
Please let us know if you would like further assistance.
Best Regards,
Vicky
You can find details in this extract of Mark Russinovich book, "Windows Internals" :
Processes, Threads, and Jobs in the Windows Operating System
(it is complex...)
Thanks Vicky. Can someone tell me if kernel code for the scheduler runs on a separate CPU/Core or does it share ?
Context Switching
Switching the CPU to another process requires saving the state of the old process and loading the saved state for the new process. This task is known as a context switch.
The context of a process is represented in the Process Control Block(PCB) of a process; it includes the value of the CPU registers, the process state and memory-management information. When a context switch occurs, the Kernel saves the context of the old process in its PCB and loads the saved context of the new process scheduled to run.
Context switch time is pure overhead, because the system does no useful work while switching. Its speed varies from machine to machine, depending on the memory speed, the number of registers that must be copied, and the existence of special instructions(such as a single instruction to load or store all registers). Typical speeds range from 1 to 1000 microseconds.
Context Switching has become such a performance bottleneck that programmers are using new structures(threads) to avoid it whenever possible.