93 views

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.

Which of the following is correct.

a)S1 only.

b)S1 and S2 only.

c)S2 and S3 only.

d)S1 , S2 and S3

edited | 93 views
0
@bikram sir @shaik mastan sir @srestha mam @arvin .....anyone please explain this problem
0

if you got it, close your question !

0
no need  to add our names, we will responds automatically if we see the question.

Moreover no need to call me as sir.
0
Thanks

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)

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

by Veteran