The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+31 votes
5.2k 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$
asked in Operating System by Veteran (101k points)
edited by | 5.2k views
+3

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

0

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

This Link might be useful for understanding.

5 Answers

+61 votes
Best answer

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.

So, answer is: (C).

answered by Active (4k points)
edited by
+22

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 sir 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.

0
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 !
+38 votes
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

C is answer.
answered by Boss (16.2k points)
+1
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
pefect answer for the question
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!!!!!!
+6 votes

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

answered by Loyal (7.9k points)
+1 vote
Ans is :T1<T2:Explanation already given by others
answered by (69 points)
–1 vote
c As cs between processes involve loading processor state cpu registers into ram.
answered by Active (3.5k points)


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

39,849 questions
46,817 answers
141,159 comments
59,074 users