Which of the following actions by a running pro...

Which of the following actions by a running process will always result in a context switch of the running process, even in a non-preemptive kernel design?

P. Servicing a disk interrupt, that results in another blocked process being marked as ready/runnable. 
Q. A blocking system call. 
R. The system call exit, to terminate the current process. 
S. Servicing a timer interrupt.

(A) P, S
(B) Q, R
(C) Q, R, S
(D)R,S

A

B

C

D

Hint: 

<div class="tex2jax"></div>

2Comments
reena reenakandari 11 Jan 2018 07:55 pm

why not P?

Sumit Verma sumitverma 13 Jan 2018 04:33 am
@reenakandari
Question is about non-preemptive kernel design, where a running process can be preempted only when it is being forced for it.
Timer interrupts and Disk interrupts will wait untill the process is running. A blocking system call or an exit request are the high priority kernel requests, so these can not be hold on wait.