Deadlock is a situation where the execution of two or more processes is blocked because each process holds some resource and waits for another resource held by some other process. Deadlock happens when Mutual exclusion, hold and wait, no preemption, and circular wait occur simultaneously.