Consider the following pseudocode, where S is a semaphore intialized to 5 in line#2 an counter is a shared variable intialized to 0 in line#1. Assume that the increment operation in line#7 is not atomic.
1. int counter = 0;
2. Semaphore S = init(5);
3. void parop(void)
4. {
5. wait (S);
6. wait (S);
7. counter++;
8. signal (S);
9. signal (S);
10. }
If five threads execute the function parop concurrently, which of the following program behavior (s) is/are possible?
Consider a state of the system with the Allocation matrix as shown below, and in which $$3$$ instances of $$E$$ and $$3$$ instances of $$F$$ are the only resources available.
| Allocation | |||
|---|---|---|---|
| E | F | G | |
| P0 | 1 | 0 | 1 |
| P1 | 1 | 1 | 2 |
| P2 | 1 | 0 | 3 |
| P3 | 2 | 0 | 0 |
| Max | |||
|---|---|---|---|
| E | F | G | |
| P0 | 4 | 3 | 1 |
| P1 | 2 | 1 | 4 |
| P2 | 1 | 3 | 3 |
| P3 | 5 | 4 | 1 |
From the perspective of deadlock avoidance, which one of the following is true?
GATE CSE Subjects
Browse all chapters by subject