Lec 18 Deadlock Detection and Recovery
Lec 18 Deadlock Detection and Recovery
SYSTEM:
COCSC301/
CACSC301
OUTLINE
Deadlock detection
Deadlock recovery
DEADLOCK DETECTION
Detection algorithm
Recovery scheme
DEADLOCK DETECTION: SINGLE INSTANCE
Periodically invoke an algorithm that searches for a cycle in the graph. If there is a cycle,
there exists a deadlock
Available: A vector of length m indicates the number of available resources of each type
Request: An n x m matrix indicates the current request of each process. If Request [i][j] =
k, then process Pi is requesting k more instances of resource type Rj.
DETECTION ALGORITHM
Algorithm requires an order of O(m x n2) operations to detect whether the system is in
deadlocked state
DETECTION ALGORITHM : EXAMPLE
Five processes P0 through P4;
Three resource types
A (7 instances), B (2 instances), and C (6 instances)
Snapshot at time T0:
Allocation Request Available
ABC ABC ABC
P0 010 000 000
P1 200 202
P2 303 000
P3 211 100
P4 002 002
Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i
DETECTION ALGORITHM : EXAMPLE (CONT)
If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would
not be able to tell which of the many deadlocked processes “caused” the deadlock.
DEADLOCK RECOVERY
PROCESS TERMINATION
Abort all deadlocked processes
Abort one process at a time until the deadlock cycle is eliminated
In which order should we choose to abort?
1. Priority of the process
2. How long process has computed, and how much longer to completion
3. Resources the process has used
4. Resources process needs to complete
5. How many processes will need to be terminated
6. Is process interactive or batch?
DEADLOCK RECOVERY
RESOURCE PREEMPTION
Rollback – return to some safe state, restart process for that state
Starvation – same process may always be picked as victim, include number of rollback in cost
factor
THANK YOU