A Context switch is a time spent between two processes (i.e., bringing a waiting process into execution and sending an executing process into a waiting-for state). This happens in multitasking. The operating system must bring the state information if waiting for the process into memory and save the state information of the currently running process.
In order to solve this problem, we would like to record the timestamps of the first and last instructions of the swapping processes. The context switch time is the difference between the two processes.
Let’s take an example: Assume there are only two processes, P1 and P2.
P1 is executing, and P2 is waiting for execution. At some point, the operating system must swap P1 and P2; let’s assume it happens at the nth instruction of P1. If t(x, k) indicates the timestamp in microseconds of the kth instruction of process x, then the context switch would take t(2, 1) – t(1, n).
Another issue is that swapping is governed by the scheduling algorithm of the operating system, and there may be many kernel-level threads that also make context switches. Other processes could be contending for the CPU or the kernel handling interrupts. The user does not have any control over these extraneous context switches. For instance, if at time t(1, n) the kernel decides to handle an interrupt, then the context switch time would be overstated.
In order to avoid these obstacles, we must construct an environment such that after P1 executes, the task scheduler immediately selects P2 to run. This may be accomplished by constructing a data channel, such as a pipe between P1 and P2.
That is, let’s allow P1 to be the initial sender and P2 to be the receiver. Initially, P2 is blocked(sleeping) as it awaits the data token. When P1 executes, it delivers the data token over the data channel to P2 and immediately attempts to read the response token. A context switch results and the task scheduler must select another process to run. Since P2 is now ready to run, it is a desirable candidate to be selected by the task scheduler for execution. When P2 runs, the roles of P1 and P2 are swapped. P2 is now acting as the sender, and P1 as the blocked receiver.
To summaries:
The key is that the delivery of a data token induces a context switch. Let Td and Tr be the time it takes to deliver and receive a data token, respectively, and let Tc be the amount of time spent in a context switch. In step 2, P1 records the timestamp of the delivery of the token, and in step 9, it records the timestamp of the response. The amount of time elapsed, T, between these events may be expressed by:
T = 2 * (Td + Tc + Tr)
This formula arises because of the following events:
10 videos|99 docs|33 tests
|
1. What is a context switch in operating systems? |
2. How is the time spent in context switching measured? |
3. What factors can affect the time taken for a context switch? |
4. Why is minimizing context switch time important for system performance? |
5. What are some strategies to reduce context switch time? |
|
Explore Courses for Computer Science Engineering (CSE) exam
|