Does a context switch occur in a system whose ready queue has only one process and which uses round-robin scheduling?
Assume that current cpu burst of the lone process spans more than one time-slice of the round-robin algorithm.
My reasoning is as below
The steps that may take place when a timer interrupt occurs in a typical case are
- Interrupt occurs. Switch to kernel mode
- OS saves current context into PCB(save registers, process state and memory-management info of current process)
- Perform many architecture-specific operations, including flushing data and instruction caches and TLB's.
- Put current process into the ready queue
- Choose the new process to execute
- Load context from the PCB of that process
- Switch to user mode. Start executing the new process
I am now thinking that the OS might as well inspect the ready queue first and check if there are other processes. If there aren't any there is no need for a context switch. Thus handling of the timer interrupt will entail switching between the user mode and kernel mode, checking the ready Q, and switching back to the user mode to resume execution of the process.
Is this what happens? Or does a proper context switch of involving the unnecessary saving of the current state of the lone process and the restoring the same take place?
If the later does happen, is there a special reason?
This confusion arose due to a question in a exam paper concerning the calculation of the time spent in context-switching in such a situation. The answer given implies that context switches do take place.
I am hoping that people who have looked into kernel code will be able to through light on this. Thus this question on stackoverflow.