edited by
394 views

1 Answer

1 votes
1 votes

There is no progress as there is a possibility of a DEADLOCK. 

I'll show how.

Suppose the buffer is empty.

Then empty=N and full=0

Suppose producer runs first and it runs till the line down(empty) and then it got preempted.

Now the consumer runs.

Mutex was initially 1

Down(Mutex) makes it 0

Down(full) suspends the consumer as full is 0

Now the producer runs again. When it executes down(mutex) it gets suspended too.

--->>Producer and consumer both are suspended-->>Deadlock---> No Progress 

Related questions

1 votes
1 votes
0 answers
3
snaily16 asked Jan 12, 2019
497 views
Fails to Guarantee mutual exclusion Guarantee mutual exclusion and prevents deadlockFails to prevent deadlockFails to guarantee mutual exclusion and fails to prevent dead...
2 votes
2 votes
3 answers
4