- 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
Potential Triggers for a Context Switch
There are three potential triggers for a context switch. A switch can be triggered in any of the
three conditions:
1. Multi-tasking:
- 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.
No comments:
Post a Comment