Which of the following statements is/are TRUE with respect to deadlocks?

A.

Circular wait is a necessary condition for the formation of deadlock. 

B.

In a system where each resource has more than one instance, a cycle in its wait-for graph indicates the presence of a deadlock. 

C.

If the current allocation of resources to processes leads the system to unsafe state, then deadlock will necessarily occur.  

D.

In the resource-allocation graph of a system, if every edge is an assignment edge, then the system is not in deadlock state.

Solution:

Option A: True, There are four necessary conditions for Deadlock.

  • Mutual Exclusion
  • Hold & Wait
  • No Preemption
  • Circular Wait

Option B: False, wait-for graph is used for deadlock detection, If a cycle is present in the wait-for graph it doesn't indicate the presence of deadlock.

Option C: False, If the system is in an unsafe state, we can say that the deadlock may occur, but we cannot say that the deadlock will necessarily occur.

Option D: True, Assignment Edge indicates that the resource is already assigned. If all edges are assignment edges in RAG (Resource Allocation Graph) then the system is not in a deadlock state.