6.5k views

Let the time taken to switch from user mode to kernel mode of execution be $T1$ while time taken to switch between two user processes be $T2$. Which of the following is correct?

1. $T1 > T2$
2. $T1 = T2$
3. $T1 < T2$
4. Nothing can be said about the relation between $T1$ and $T2$
recategorized | 6.5k views
+5

Notice  important point mentioned by @Sachin Mittal 1 -> Context switches can occur only in kernel mode.

+1

http://www.linfo.org/context_switch.html

This Link might be useful for understanding.

Time taken to switch two processes is very large as compared to time taken to switch between kernel and user mode of execution because :

When you switch processes, you have to do a context switch, save the PCB of previous process (note that the PCB of a process in Linux has over $95$ entries), then save registers and then load the PCB of new process and load its registers etc.

When you switch between kernel and user mode of execution, OS has to just change a single bit at hardware level which is very fast operation.

edited
+26

Moreover context switch involves a switch to the kernel mode too.

But switching to kernel mode is not so fast- it is a system call.

+1
Arjun actually there is a mistake in GO pdf book for this question you swapped the options A and C. so please rectify it..
+1
The question seems merged - in UGC they shuffled the options and someone merged that question with GATE. Anyway answer is clear rt?
0
Answer is wrong in GO book.
0

yes, Options are shuffled in GateOverflow book.

+1

Switching from User mode to Kernel mode is not as straightforward as switching a single bit. In modern OS it is very expensive. Here this answer from SO has tried to put things in perspective.

Moreover, as @Arjun Sir said that context switch involves a switch from user mode to kernel mode, it just make things even more expensive.

+1
but for threads it is reverse right ? Context switch time is longer for kernel level threads than for user level threads. −− This is True, as Kernel level threads are managed by OS and Kernel maintains lot of data structures. There are many overheads involved in Kernel level thread management, which are not present in User level thread management !
Context switches can occur only in kernel mode. So, to do context switch first switch from user mode to kernel mode and then do context switch (save the PCB of the previous process and load the PCB of new process)

Context switch = user - kernel switch + save/load PCB + kernel-user switch

+2
Mode switch doesnot involve a context switch whereas a context switch definitely needs a mode switch as context switch is done by the dispatcher which is a portion of OS code ... And as we know OS code can run only in kernel mode so we need a mode change while doing a context switch ...
0
0
if context switch is only done in kernel mode then why context switching between user level threads is faster than context switching between kernel level threads?
0
Even when CPU switches from user mode to kernal mode then also we need to save the context of current executing process? correct me if i am wrong!!!!!!
0
And Mode Switch only has to flip Mode bit.

In Case of Context Switch in a Virtual Memory system with TLB,

TLB might need to be flushed, Memory Map of MMU needs to be changed, along with context save of preempted process and context restore of the process being resumed.

Context switching can be described in slightly more detail as the kernel (i.e., the core of the operating system) performing the following activities with regard to processes (including threads) on the CPU: (1) suspending the progression of one process and storing the CPU's state (i.e., the context) for that process somewhere in memory, (2) retrieving the context of the next process from memory and restoring it in the CPU's registers and (3) returning to the location indicated by the program counter (i.e., returning to the line of code at which the process was interrupted) in order to resume the process.

Context switches can occur only in kernel mode. Kernel mode is a privileged mode of the CPU in which only the kernel runs and which provides access to all memory locations and all other system resources. Other programs, including applications, initially operate in user mode, but they can run portions of the kernel code via system calls.

http://www.linfo.org/context_switch.html

+1 vote
Ans is :T1<T2:Explanation already given by others
–1 vote
c As cs between processes involve loading processor state cpu registers into ram.

1