- Back to Home »
- Deadlock Detection/Algorithm/Example in Operating System
Deadlock Detection/Algorithm/Example in Operating System:
If the system does not use any of the preventive or avoidance methods, there is a possibility of deadlock occurrence. If a deadlock occurs in the system, it must be detected and recovered. The system needs to provide some methods of deadlock detection and recovery. These methods are overhead for the system.
1 Single Instance of Each Resource Type:
If each resource type has only one instance (There is only 1 printer, 1 hard drive, 1 tape drive, etc.), we can use a variant of the resource-allocation graph called a wait-for graph. It is done by removing the nodes of type resource and collapsing the appropriate edges.
In this graph, processes are not waiting for resources. They are waiting for other processes that hold these resources. A cycle in the graph indicates the occurrence of a deadlock in the system.
This approach requires that a cycle detection algorithm runs from time to time to detect deadlock. Algorithms that detect cycles are O(N2). N is the number of vertices in the graph.
2. Detection-Algorithm Usage:
Detection algorithms need to be executed to detect a deadlock. The frequency and time when we run such algorithm is dependent on how often we assume deadlocks occur and how. many processes they may effect.
If deadlocks may happen often, we run the detection often. If it affects many processes, we may decide to run it often so that less processes are affected by the deadlock.
We could run the algorithm on every resource request. The deadlocks are rare so it is not very efficient use of resources. We could run the algorithm from time to time like every hour or at random times during the system execution lifetime.