BACKGROUND:
The cause of deadlocks: Each process needing what another process has. This
results from sharing resources such as memory, devices, links.Under normal operation, a resource allocations proceed like this:
1. Request a resource (suspend until available if necessary ).
2. Use the resource.
3. Release the resource.