- Mutual exclusion : Some resources such as read only files shouldn’t be mutually
exclusive. They should be sharable. But some resources such as printers must be
- Hold and wait : To avoid this condition we have to ensure that if a process is
requesting for a resource it should not hold any resources.
- No preemption : If a process is holding some resources and requests another
resource that cannot be immediately allocated to it (that is the process must wait),
then all the resources currently being held are preempted(released autonomously).
- Circular wait : the way to ensure that this condition never holds is to impose a
total ordering of all the resource types, and to require that each process requests
resources in an increasing order of enumeration.