For deadlock, the following four conditions described in the table given below must hold, according to the computer scientist/programmer, named Coffman et al. (1971).
|Mutual exclusion condition||In mutual exclusion condition, each resources is either currently assigned to exactly one process or is available|
|Hold and wait condition||In hold and wait condition, processes currently holding resources granted earlier can request new resources|
|No preemption condition||In no preemption condition, resources previously granted can't be forcibly taken away from a process. They must be explicitly released by the process holding them|
|Circular wait condition||In circular wait condition, there must be a circular chain of two or more processes, each of which is waiting for a resource held by the next member of the chain|
For a deadlock to occur, all the four conditions, provided in the above table, must be present.
In case, if any one of all the four conditions is absent, the deadlock is impossible.