To avoid deadlocks two types of strategies are used:
1) Static prevention: It uses V and P operators and Semaphores to allocate and deallocate shared resources in a multiprocessor. Semaphores are developed based on sleep wait protocol. The section of programme, where a deadlock may occur is known as critical section. Semaphores are control signals used for avoiding collision among processes. V and P technique of Deadlock prevention associates a Boolean value 0 or 1 to each semaphore. Two atomic operators, V and P are used to access the critical section represented by the semaphore. The P(s) operation causes value of semaphore s to be increased by one if s is already at non-zero value.
The V(s) operation increases the value of s by one if it is not already one. The equation s=1 indicates the availability of the resource and s=0 indicates non- availability of the resource.
During implementation, various processes can submit their requests for resources asynchronously. The resources are allocated to many processors in such a way that they do not make circular wait. The shortcoming of the static avoidance is poor resource utilization.
2) One other method of deadlock prevention is dynamic deadlock avoidance. It checks deadlocks on runtime condition, which may initiate heavy overhead in detecting potential existence of deadlocks.