The Gateway to Computer Science Excellence

0 votes

Consider the following solution for critical section problem with 'n' processes P0,P1,P2,......P(n-1).For all i,number[i] is an integer array initialized to zero, and for all j,choosing[j] is a binary array initialized to false.

CODE FOR Pi : Repeat { choose[i]=true; number[j]= max(number[0],number[1],.......................number[n-1])+1; choosing[i]=false; for j=0 to n-1 do begin while(choosing[j]) do nothing; while(number[j]!=0 and (number[j],i) < (number[i], i)) do nothing; end; critical section; number[i]=0; remainder section; }until false;

consider the following statements about above solution:

S1:solution preserve first come first serve property.

S2:solution follows mutual exclusion condition.

S3:solution leads to starvation.

Which of the following is correct.

a)S1 only.

b)S1 and S2 only.

c)S2 and S3 only.

d)S1 , S2 and S3

(please anyone elaborate this solution.thanks in advance)

0

check this https://gateoverflow.in/228832/process-synchronisation-self-doubt-bakery-algorithms-code

if you got it, close your question !

0 votes

This is an extended question from this https://gateoverflow.in/39719/gate2016-1-50

while(number[j]!=0 and (number[j],i) < (number[i], i))

This line specifies that, if two process has same value, Suppose P2=2 and P3=2, then among i and j , which one will has less value will execute first. Here P2 index value is less So, it will execute first. So, it will be guaranteed Mutual Exclusion. Also it will execute FCFS manner. But there should not be any Starvation.

So, ans B)

Refer:https://gateoverflow.in/283766/self-doubt

https://gateoverflow.in/blog/342/algorithm-solution-critical-section-processes-explanation

52,215 questions

60,006 answers

201,212 comments

94,685 users