What Is a Deadlock? Necessary Conditions
- Process Management
- Memory Management
- Deadlocks
- OS Introduction & Fundamentals
- CPU Scheduling Algorithms
- Threads & Concurrency
- Inter-Process Communication (IPC)
- Process Synchronization
- Virtual Memory & Paging
- File Systems
- Disk Scheduling
- I/O Management
When Every Process Is Waiting Forever, and Nothing Moves
A deadlock happens when a group of processes are each waiting for a resource that another process in that same group is holding - and none of them can ever proceed, because every process in the cycle is stuck waiting on someone else.
Process A holds Resource 1, waiting for Resource 2
Process B holds Resource 2, waiting for Resource 1
Neither can ever proceed - each is waiting for something the other refuses to release.The Four Conditions That Must All Be True Simultaneously
A deadlock cannot occur unless all four of these conditions hold at the same time - understanding them is the foundation for every prevention and avoidance strategy covered later in this section.
| Condition | Meaning |
|---|---|
| Mutual Exclusion | At least one resource must be held in a non-shareable way |
| Hold and Wait | A process holding a resource can request additional resources |
| No Preemption | A resource can only be released voluntarily by the process holding it |
| Circular Wait | A closed chain of processes exists, each waiting for a resource held by the next |
Why All Four Conditions Genuinely Must Hold Together
Removing even one of these four conditions makes a deadlock impossible - which is exactly the underlying strategy every deadlock prevention technique (covered in the next note) relies on: deliberately breaking at least one of these four required conditions.
A Common Confusion: Deadlock vs Starvation
Starvation (covered earlier in this section) means a process waits an unfairly long time but could still eventually proceed. Deadlock means a process can genuinely never proceed at all - a permanent, unresolvable standstill, not merely an unfair delay.
Why Understanding Deadlocks Is Genuinely Important
A deadlocked system doesn't crash - it simply freezes, with affected processes doing absolutely nothing forever, often without any obvious error message pointing directly at the actual cause, making these bugs especially frustrating to diagnose without understanding this exact underlying mechanism.