Deadlocks
 

Necessary conditions for deadlock to occur

Mutual exclusion
Hold and wait
No preemption
Circular wait

Definition of deadlock

Why does deadlock occur in the case of message passing?
Why does deadlock occur with test and set() primitive
with a priority scheduler?
 
 
Non-consumable (reusable) resources
Consumable resources