dca - Distributed Computing End Sem Exam Answers:

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Distributed Computing End Sem Exam Answers: Question 1:  Consider the following algorithm to solve the n-process mutual exclusion problem,  presented as Algorithm 1 For each question below, either sketch a proof, or display an execution where it fails.  • Does this protocol satisfy mutual exclusion?   • Is this protocol starvation-free?  • Is this protocol deadlock-free? Answer 1: This protocol ensures mutual exclusion. A process enters CS only when turn is set to its process No.  and busy is set to false. So a process needs to get out of the outer while loop to enter CS. So if two  processes are competing for the CS, only one will be able to enter CS because the turn variable can  take only one value. So the process which sets the value of turn to its process no will be able to get  past the outer while loop (lines 5-10).  When a process enters the CS it sets busy to True. The only way  it can be made to false is when that process exits the CS and sets busy to False. In this time (when the  process is in CS) if any other process tries to enter CS, it will get stuck in the inner while loop (line 6-8).  The only way this cannot happen is when both the processes are in line 9. But in this case, the process  which set turn to its process number last, gets out of the outer while loop, and the other gets stuck.  Thus, in all the cases there is at most only one process inside critical section.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This protocol is not starvation free. A process (say A) stuck in the inner while loop (line 6-8) can set the  value of turn to its process no, but in the very next moment control can be passed to another process  (say B) which is algo stuck in the inner while loop, sets the value of turn to its process no and can enter  the CS if busy is set to false by the process that was executing the CS. So the process A is being  deprived of CS.  So while a process is stuck in the inner loop other processes (if given sufficient  amount of time of control) can enter  the outer while loop, set the turn variable to its process number  and then exit the loop and enter the critical section again without allowing the waiting process to enter  the critical section. So this protocol is not starvation free. This protocol is not deadlock free.  To illustrate this let us consider two processes A and B, Process A  executed line 7 and made turn to its process no (say 0). Process A is now interrupted and control is  passed to  process  Proc j   which was in CS and it executes line 12 to make busy = false . Now Procj is 
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 8

dca - Distributed Computing End Sem Exam Answers:

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online