Deadlock Summary

Rating - 3/5


A deadlock state occurs when two or more processes are waiting indefinitely for an event that can be caused only by one of the waiting processes.

There are three principal methods for dealing with deadlocks:

• Use some protocol to prevent or avoid deadlocks, ensuring that the system, will never enter a deadlock state.

• Allow the system to enter a deadlock state, detect it, and then recover.

• Ignore the problem altogether and pretend that deadlocks never occur in the system. The third solution is the one used by most operating systems, including UNIX and Windows

 A deadlock can occur only if four necessary conditions hold simultaneously in the system: mutual exclusion, hold and wait, no preemption, and circular wait. To prevent deadlocks, we can ensure that at least one of the necessary conditions never holds.

 A method for avoiding deadlocks that is less stringent than the prevention algorithms requires that the operating system have a priori information on how each process will utilize system resources.

Deadlock Summary

The banker's algorithm, for example, requires a priori information about the maximum number of each resource class that may be requested by each process. Using this information, we can define a deadlock-avoidance algorithm. It a system does not employ a protocol to ensure that deadlocks will never occur, then a detection-and-recovery scheme must be employed.

These Topics Are Also In Your Syllabus Deadlock Summary
1 Types of Operating Systems - Batch operating system, Time-sharing systems, Distributed OS, Network OS, Real Time OS link
2 Network Topology link
You May Find Something Very Interesting Here. Deadlock Summary link
3 Revocation of Access Rights link
4 Capability-Based Systems link
5 Robustness link

 A deadlock detection algorithm must be invoked to determine whether a deadlock has occurred. If a deadlock is detected, the system must recover either by terminating some of the deadlocked processes or by preempting resources from some of the deadlocked processes.

Where preemption is used to deal with deadlocks, three issues must be addressed: selecting a victim, rollback, and starvation. In a system that selects victims for rollback primarily on the basis of cost factors, starvation may occur, and the selected process can never complete its designated task.

Finally, researchers have argued that none of the basic approaches alone is appropriate for the entire spectrum of resource-allocation problems in operating systems. The basic approaches can be combined, however, allowing us to select an optimal approach for each class of resources in a system.

Rating - 3/5