5,028 views
12 votes
12 votes
Is is true that...If there is deadlock then system can not progress?

1 Answer

Best answer
16 votes
16 votes

If u look at the definition of progress , quoted from Galvin , it says :

If no process is executing in its critical section and some
processes wish to enter their critical sections, then only those processes
that are not executing in their remainder sections can participate in
deciding which will enter its critical section next, and this selection cannot
be postponed indefinitely.
 

So this at least one of the process willing to go into critical section  should be allowed to do so provided the critical section is empty at that instant..

Also we know deadlock is the scenario where all processes will get blocked and hence unable to go into the critical section..So it violates the progress condition required fr proper synchronisation construct..

So 

Deadlock  ==> Progress Violation

But converse is not necessarily true..

By converse I mean some specific process is not allowed to enter into CS even though it is empty , thus violating the progress condition..But the other process may go into CS as in the case of Dekker's Algorithm..Thus it is not deadlock..

selected by

Related questions

869
views
0 answers
1 votes
Chhotu asked Dec 4, 2017
869 views
Hi Guys,Deadlock implies no progress. This statement is mentioned at many places. But i just want to verify my reasoning with respect to Progress definition ProgressIf no...
2.3k
views
1 answers
1 votes
ejaz asked Jun 9, 2018
2,260 views
I like to ask you regarding progress, bounded waiting and deadlockProgress - No deadlockDeadlock - Starvation and no progressStarvation - No bounded waiting I have made t...
448
views
1 answers
0 votes
Rackson asked Dec 14, 2018
448 views
Please describe the Deadlock Condition in synchronization and when will be synchronization possible and condition ..?
2.4k
views
3 answers
3 votes
Purple asked Jan 29, 2016
2,448 views
var occupiedvar blockedEnter Region:{If (occupied) {then blocked= blocked +1sleep ( );}else occupied= 1;}Exit Region:{occupied= 0If (blocked) {then wakeup (process);block...