The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+18 votes

Consider three CPU-intensive processes, which require $10$, $20$ and $30$ time units and arrive at times $0$, $2$ and $6$, respectively. How many context switches are needed if the operating system implements a shortest remaining time first scheduling algorithm? Do not count the context switches at time zero and at the end.

  1. $1$
  2. $2$
  3. $3$
  4. $4$
asked in Operating System by Active (3.7k points)
edited by | 3.3k views

3 Answers

+41 votes
Best answer

Process execute in this way.

$0 ---- p1---- 10$ (switching)$--------p2-----30$ (switching)$-----p3-----60 $

So, here only $2$ switching possible (when we did not consider the starting and ending switching )

now here might be confusion that at $t= 2 \ \ p1$ is preempted and check that available process have shortest job time or not, but he did not get anyone so it should not be consider as context switching.(same happened at $t=6$) 

Reference: to anurag_s)

Answer is (B)

answered by Boss (15.6k points)
edited by

what about OS Scheduler Process

       P1------>OS Scheduler--------->p2--------->OS scheduler--------->p3

and hence, Shouldn't there be 4 context switches?

4 in case of if we count both first and last context switching
Please just clear me... current process execution is finished and processor is going for another process is it a context switch? Is the cpu stores any context about the finished process?

According to Galvin,



Here at time t=2 and t=6 context switch doesn't happens BUT preemption will be there right ?? as Scheduler will be loaded to decide which one load next ??

Can we say that in non preemptive scheduling if number of processes are n then number of Context switch will be n-1 if we exludee first and last ones?
+6 votes
Only two switches wil be required after process 1 and 2 complete.Option B.
answered by Active (3.3k points)
0 votes


when execution of one process is completed and other process is scheduled , Is it called Context switch ?

I think , It is not Context switch, as according to wiki

In computing, a context switch is the process of storing the state of a process or of a thread, so that it can be restored and execution resumed from the same point later. This allows multiple processes to share a single CPU, and is an essential feature of a multitasking operating system.

As we are not storing results od earlier process for later execution. If there are any results produced by some operation within process or program , It is responsibility of program (or process when it running) to store them back.

For example : when C program to add two number gets converted to Assembly language code , It also has instruction to store result of addition back into memory.

Hence answer to this previous year gate question must be 0

answered by Active (2.1k points)

Related questions

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

40,878 questions
47,536 answers
62,300 users