Given below is a program which when executed spawns two concurrent processes : semaphore X : = 0 ; /* Process now forks into concurrent processes P1 & P2 */
P1 |
P2 |
repeat forever V (X) ; Compute ; P(X) ; |
repeat forever P(X) ; Compute ; V(X) ; |
Consider the following statements about processes P1 and P2:
Which of the following holds?
A |
Both 1 and 2 are true |
B |
1 is true but 2 is false |
C |
2 is true but 1 is false |
D |
Both 1 and 2 are false |
P1 can be starves on P, then P2 loops forever.
P2 can be starves on P, then P1 loops forever.
Both statements (i) and (ii) are True.