System Deadlock
A deadlock refers to the situation when simultaneous processes are holding resources and preventing each other from completing their implementation.
The following conditions can avoid the deadlock from occurring:
1)    Mutual exclusion: Every process is given exclusive control of the resources allotted to it.
2)    Non-preemption: A process is not allowed to release its resources till task is finished.
3)    Circular wait:  Multiple processes wait for resources from the other processes in a circularly dependent situation
4)    Wait for: A process can hold resources while waiting for additional resources.