Two processes, P1 and P2, need to access a critical section of code. Consider the following synchronization construct used by the processes.
Process P1 :
while(true)
{
w1 = true;
while(w2 == true);
Critical section
w1 = false;
}
Remainder Section
Process P2 :
while(true)
{
w2 = true;
while(w1 == true);
Critical section
w2 = false;
}
Remainder Section
Here, w1 and w2 have shared variables, which are initialized to false. Which one of the following statements is TRUE about the above construct?.
a) It does not ensure mutual exclusion
b) It does not ensure bounded waiting
c) It requires that processes enter the critical section in strict alternation
d) It does not prevent deadlocks but ensures mutual exclusion
Answer: d
Explanation: It does not prevent deadlocks but ensures mutual exclusion
Related Posts
What will be the output of the following C code?
#include <stdio.h>
int main()
{
int x = 1, y = 0;
x &&= y;
printf(“%d\n”, x);
}What will be the output of the following C code?
#include <stdio.h>
int main()
{
int x = 2, y = 2;
x /= x / y;
printf(“%d\n”, x);
return 0;
}What will be the output of the following C code?
#include <stdio.h>
int main()
{
int x = 2, y = 1;
x *= x + y;
printf(“%d\n”, x);
return 0;
}What will be the output of the following C code snippet?
#include <stdio.h>
void main()
{
unsigned int x = -5;
printf(“%d”, x);
}What will be the output of the following C code snippet?
#include <stdio.h>
void main()
{
1 < 2 ? return 1: return 2;
}What will be the output of the following C code?
#include <stdio.h>
void main()
{
char a = ‘a’;
int x = (a % 10)++;
printf(“%d\n”, x);
}What will be the output of the following C code?
#include <stdio.h>
void main()
{
int k = 8;
int x = 0 == 1 && k++;
printf(“%d%d\n”, x, k);
}
Join The Discussion