Saturday, May 4, 2013
- The context switch refers to the process that involves storing and restoring of the context or the state of the process.
- This makes it possible to resume the execution of the process from that same saved point in the future.
- This is very important as it has enabled the various processes for sharing one CPU and therefore it represents one of the essential features of an operating system that is capable of multi – tasking.
- It is the operating system and the processors which decide what will constitute the context.
- One of the major characteristic of the context switches is that they are computationally very intensive.
- Most of the designing of the operating systems is concerned with the optimization of the use of these switches.
- A finite amount of time is required for switching from one process to another one.
- This time is spent in the administration of the process which includes saving and loading of the memory maps, registers etc. plus the various lists and tables are updated.
- A context switch may mean either of the following:
Ø A register context switch
Ø A task context switch
Ø A thread context switch
Ø A process context switch
There are three potential triggers for a context switch. A switch can be triggered in any of the three conditions:
- It is common that one process has to be switched out of the processor so as to execute another process.
- This is done by the use of some scheduling scheme.
- Here, if the process makes itself un-executable, then it can trigger this context switch.
- The process can do this by waiting for synchronization or an I/O operation to finish.
- On a multitasking system that uses pre-emptive scheduling, the processes that are still executable might be switched out by the scheduler.
- A timer interrupt is employed by some of the preemptive schedulers to avoid process starving of the CPU time.
- This interrupt gets triggered when the time slice is exceeded by the process. - Furthermore, this interrupt makes sure that the scheduler will be able to gain control for switching.
2. Interrupt handling:
- Modern architectures are driven by the interrupts.
- This implies that the CPU can issue the request while continuing with some other execution and without waiting for the current read/ write operation to get over.
- When the currently executing operation is over, the interrupt fires and presents the result to the CPU.
- Interrupt handler is used for handling the interrupts.
- The interrupts are handled by this program directly from the disk.
- A part of the context is automatically switched by the hardware up on the occurrence of an interrupt.
- This context is enough for the handling program to go back to the code that raised the interrupt.
- The additional context might be saved by the handler as per the details of both the software and hardware designs.
- Usually, only a required small context’s part is changed so as to keep the amount of time required for handling as minimum as possible.
- Kernel does not take part in scheduling a process that would handle the interrupts.
3. User and kernel mode switching:
- A context switch is not required for making a transition between the kernel mode and the user mode in an operating system.
- A mode transition in itself cannot be considered to be a context switch.
- But, it depends on the OS whether or not the context switch will take place.