What are necessary conditions for dead lock?

  1. Mutual exclusion (where at least one resource is non-sharable)

  2. Hold and wait (where a process hold one resource and waits for other resource)

  3. No preemption (where the resources can’t be preempted)

  4. circular wait (where p[i] is waiting for p[j] to release a resource. i= 1,2,…nj=if (i!=n) then i+1 else 1 )