Title: Operating Systems Principles Process Management and Coordination Lecture 6: Deadlocks
1Operating Systems PrinciplesProcess Management
and CoordinationLecture 6 Deadlocks
2Content
- Deadlocks with Reusable and Consumable Resources
- Approaches to the Deadlock Problem
- System Model
- Resource Graphs
- State Transitions
- Deadlock States and Safe States
- Deadlock Detection
- Reduction of Resource Graphs
- Special Cases of Deadlock Detection
- Deadlock Detection in Distributed Systems
- Recovery from Deadlock
- Dynamic Deadlock Avoidance
- Claim Graphs
- The Bankers Algorithm
- Deadlock Prevention
3Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
- Deadlocks with Reusable and Consumable Resources
4Deadlocks
5Deadlocks
- Informal definition Process is blocked on
resource that will never be released. - Deadlocks waste resources
- Deadlocks are rare
- Many systems ignore them
- Resolved by explicit user intervention
- Critical in many real-time applications
- May cause damage, endanger life
6Reusable/Consumable Resources
- Reusable Resources
- Number of units is constant
- Unit is either free or allocated no sharing
- Process requests, acquires, releases units
- Examples (h/w) memory, devices (s/w) files,
tables - Consumable Resources
- Number of units varies at runtime
- Process may create new units
- Process may consume units (no releasing)
- Examples messages, signals
7Reusable/Consumable Resources
- Reusable Resources
- Number of units is constant
- Unit is either free or allocated no sharing
- Process requests, acquires, releases units
- Examples (h/w) memory, devices (s/w) files,
tables - Consumable Resources
- Number of units varies at runtime
- Process may create new units
- Process may consume units (no releasing)
- Examples messages, signals
Main topic of the lecture Reusable Resources
8Example (File Sharing)
p1 ... open(f1,w) open(f2,w) ...
p2 ... open(f2,w) open(f1,w) ...
Deadlock when executed concurrently
9Example (Message Passing)
Assume that send/recv are blocking operations.
p1 ... if(C)send(p2,m) while(1)
recv(p3,m) ... send(p2,m)
p2 ... while(1) recv(p1,m) ...
send(p3,m)
p3 ... while(1) recv(p2,m) ...
send(p1,m)
Deadlock when C is not true
10Deadlock, Livelock, and Starvation
Deadlock and livelock will lead to
starvation. But, the inverse is not necessary
true.
- Deadlock
- Two or more processes (threads) are blocked
indefinitely, waiting for each other. - Livelock
- Processes (threads) run but make no progress
- An active form of deadlock.
- Starvation
- Some Processes (threads) get deferred forever.
- E.g., one process dominates, not allowing other
processes to progress.
11ExamplesStarvation Not Due to Deadlock or
Livelock
Deadlock and livelock will lead to
starvation. But, the inverse is not necessary
true.
- Higher-Priority Process dominates
- ML scheduling where one queue is never empty
- Starvation on Memory Blocks
- Total memory is 200MB
- Unbounded stream of 100MB requests may starve a
200MB request
12Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
- Approaches to the Deadlock Problem
13Approaches to Deadlock Problem
- Detection and Recovery
- Allow deadlock to happen and eliminate it
- Avoidance (dynamic)
- Runtime checks disallow allocationsthat might
lead to deadlocks - Prevention (static)
- Restrict type of request and acquisitionto make
deadlock impossible
14Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
15Resource Graph
Process Circle Resource Rectangle with small
circles for each unit Resource Request Edge
from process to resource class Resource
Allocation Edge from resource unit to process
16State Transitions by p1 Process
The state transition diagram described below is
not complete. The actual number of states depends
on possible operations of processes.
S0
S1
S2
S3
17Process Operations on Resources
- Request Create new request edge pi?Rj
- pi has no outstanding requests
- number of edges between pi and Rj ? units in Rj
- Acquisition Reverse request edge to pi?Rj
- All requests of pi are satisfied
- pi has no outstanding requests
- Release Remove edge pi?Rj
18Deadlock States and Safe States
- A process is blocked in state S if it cannot
cause a transition to a new state, i.e., - it cannot request, acquire, or release any
resource. - A Process is Deadlocked in state S if it blocked
now and remains blocked forever. - Deadlock State
- A state contains a deadlocked process.
- Safe State
- No deadlock state can ever be reached using
request, acquire, release.
19Example
p1 and p2 both need R1 and R2.
20Example
21Example
p1 Request(R1) Request(R2)
Release(R2) Release(R1)
22Example
p1 Request(R1) Request(R2)
Release(R2) Release(R1)
23Example
p1 Request(R1) Request(R2)
Release(R2) Release(R1)
p2 Request(R2) Request(R1)
Release(R1) Release(R2)
24Example
25Example
p1 is blocked.
p2 is blocked.
26Example
No state is safe since the deadlock state is
always reachable.
A deadlock state.
27Necessary Condition for Deadlock
A cycle in the resource graph is a necessary
condition for deadlock.
28Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
29Graph Reduction Technique
- Graph Reduction
- Repeat the following
- Select unblocked process p
- Remove p and all request and allocation edges
- Deadlock ? Graph not completely reducible.
- All reduction sequences lead to the same result.
30Graph Reduction Technique
- Graph Reduction
- Repeat the following
- Select unblocked process p
- Remove p and all request and allocation edges
p1
p2
p3
R1
R2
R3
p4
p5
31Graph Reduction Technique
- Graph Reduction
- Repeat the following
- Select unblocked process p
- Remove p and all request and allocation edges
p1
p2
p3
R1
R2
R3
p4
p5
32Graph Reduction Technique
- Graph Reduction
- Repeat the following
- Select unblocked process p
- Remove p and all request and allocation edges
p1
p2
p3
R1
R2
R3
p4
p5
33Graph Reduction Technique
- Graph Reduction
- Repeat the following
- Select unblocked process p
- Remove p and all request and allocation edges
p1
p2
p3
irreducible
R1
R2
R3
Deadlock detected
p4
p5
34Graph Reduction Technique
- Graph Reduction
- Repeat the following
- Select unblocked process p
- Remove p and all request and allocation edges
35Special Cases of Deadlock Detection
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
36Testing for specific process
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
- Testing for specific process p
- Reduce until p is removed or graph irreducible
37Continuous Deadlock Detection
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
- Testing for specific process p
- Reduce until p is removed or graph irreducible
- Continuous deadlock detection
- Current state not deadlocked
- Next state T deadlocked only if
- Operation was a request by p and
- p is deadlocked in T
- Try to reduce T by p
38Immediate Allocations
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
- All satisfiable requests granted immediately
- Expedient state no satisfiable request edges
Non-Expedient State
Expedient State
Granted immediately
Satisfiable
39Immediate Allocations
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
- All satisfiable requests granted immediately
- Expedient state no satisfiable request edges
- Knot K
- Every node in K reachable from any other node in
K - No outgoing edges (only incoming)
- Knot in expedient state ? Deadlock
- Intuition
- All processes must have outstanding requests in K
- Expedient state ? ? requests not satisfiable
40Immediate Allocations
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
Expedient State
41Immediate Allocations
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
Expedient State
Knot
42Single-Unit Resources
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
- For single-unit resource, cycle ? deadlock
- Every p must have a request edge to R
- Every R must have an allocation edge to p
- R is not available and thus p is blocked
Deadlocked
Not Deadlocked
43Single-Unit Resources
- Testing for specific process p
- Continuous deadlock detection
- Immediate allocations
- Single-unit resources
- Wait-For Graph (wfg) Show only processes
44Deadlock Detection in Distributed Systems
- Central Coordinator Approach
- Distributed Approach
45Central Coordinator Approach
- Central Coordinator (CC)
- Each machine maintains a local wfg
- Changes reported to CC
- CC constructs and analyzes global wfg
- Problems
- Coordinator is a performance bottleneck
- Communication delays may cause phantom deadlocks
46Phantom Deadlocks
Due to timeout, p3 cancel the request. But, the
message passed to CC is delayed
Deadlock
- Central Coordinator (CC)
- Each machine maintains a local wfg
- Changes reported to CC
- CC constructs and analyzes global wfg
- Problems
- Coordinator is a performance bottleneck
- Communication delays may cause phantom deadlocks
?
p1 requesting the resource holding by p4 causes
phantom deadlock.
phantom edge
47Distributed Approach
- Detect cycles using probes.
- If process pi blocked on pj , it launches probe
pi ? pj - pj sends probe pi ? pj ? pk along all request
edges, etc. - When probe returns to pi, cycle is detected
p1 ? p2 ? p3 ? p4 ? p5 ? p1
p1 ? p2 ? p3
p1? p2
p1 ? p2 ? p3 ? p4
p1 ? p2 ? p3 ? p4 ? p5
p1 ? p2 ? p3 ? p4 ? p5 ? p6? p4
p1 ? p2 ? p3 ? p4 ? p5 ? p6
p1 ? p2 ? p3 ? p7
48Distributed Approach
- Detect cycles using probes.
- If process pi blocked on pj , it launches probe
pi ? pj - pj sends probe pi ? pj ? pk along all request
edges, etc. - When probe returns to pi, cycle is detected
Deadlock detected by M1.
Deadlock detected by M4.
p1 ? p2 ? p3 ? p4 ? p5 ? p1
p1 ? p2 ? p3
p1? p2
p1 ? p2 ? p3 ? p4
p1 ? p2 ? p3 ? p4 ? p5
p1 ? p2 ? p3 ? p4 ? p5 ? p6? p4
p1 ? p2 ? p3 ? p4 ? p5 ? p6
p1 ? p2 ? p3 ? p7
49Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
50Recovery from Deadlock
- Process termination
- Kill all processes involved in deadlock or
- Kill one at a time. In what order?
- By priority consistent with scheduling or
- By cost of restart length of recomputation or
- By impact on other processes CS,
producer/consumer - Resource preemption
- Direct Temporarily remove resource (e.g.,
Memory) - Indirect Rollback to earlier checkpoint
51Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
- Dynamic
- Deadlock Avoidance
52Deadlock Avoidance
- Deadlock Detection Recovery
- The resources requested by processes are granted
as long as they are available. - OS resolves deadlock if detected.
- Deadlock Avoidance
- Prevent deadlocks from developing by delaying
acquisition of resources that might cause
deadlock in the future. - Deadlock cannot occur.
53The Prior Knowledge for Deadlock Avoidance
- Deadlock avoidance requires some future knowledge
of requests for resources from each of the
participating processes. - The precise knowledge is usually not available in
advance. - Processes specify maximum claim, i.e., the
largest number of units of each resource needed
at any one time.
54Maximum Claim Graph (MCG)
- Process indicates maximum resources needed
- Potential request edge pi?Rj (dashed)
- May turn into real request edge
p1
p2
55State Transition Using MCG
- Process indicates maximum resources needed
- Potential request edge pi?Rj (dashed)
- May turn into real request edge
S0
56The Bankers Algorithm
Testing for safety algorithm (Dijkstra 1968)
- Theorem Prevent acquisitions from producing a
irreducible claim graph ? All state are safe. - Bankers algorithm
- Given a satisfiable request, p?R, temporarily
grant request changing p?R to R?p - Reduce new claim graph
- If it is completely reducible, proceed
- else reverse acquisition.
57The Bankers Algorithm
58The Bankers Algorithm
Can p1?R1 be safely be granted?
Can p2?R1 be safely be granted?
Can p3?R1 be safely be granted?
Which of the requests can safely be granted?
59The Bankers Algorithm
Can p1?R1 be safely be granted?
Can p2?R1 be safely be granted?
Can p3?R1 be safely be granted?
Temporarily grant
Can such an RAG be completely reducible?
60The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
Can p3?R1 be safely be granted?
p1
p2
p3
Temporarily grant
Can such an RAG be completely reducible?
61The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
Can p3?R1 be safely be granted?
granted
Can such an RAG be completely reducible?
62The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
Can p3?R1 be safely be granted?
63The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
?
Can p3?R1 be safely be granted?
Temporarily grant
Can such an RAG be completely reducible?
64The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
?
Can p3?R1 be safely be granted?
not granted
65The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
?
Can p3?R1 be safely be granted?
66The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
?
Can p3?R1 be safely be granted?
Temporarily grant
Can such an RAG be completely reducible?
67The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
?
Can p3?R1 be safely be granted?
?
Temporarily grant
p1
p2
p3
Can such an RAG be completely reducible?
68The Bankers Algorithm
Can p1?R1 be safely be granted?
?
Can p2?R1 be safely be granted?
?
Can p3?R1 be safely be granted?
?
granted
69Special Case Single-Unit Resource
- Check for cycles after tentative acquisition
- Disallow if cycle is found
-
- If claim graph contains no undirected cycles,all
states are safe - No directed cycle can ever be formed. ?
70Operating Systems PrinciplesProcess Management
and Coordination Lecture 6 Deadlocks
71Deadlock Prevention
- Deadlock Detection Recovery
- Granted resources as long as they are available.
- OS resolves deadlock if detected.
- Deadlock Avoidance
- Os performs runtime checks to ensure the system
- never enters unsafe state.
- Deadlock cannot occur.
- Deadlock Prevention
- All processes must follow certain rules for
requesting and releasing resources. - Deadlock is impossible to occur.
72Conditions for a Deadlock
Eliminating any of these conditions would make
deadlock impossible.
- Mutual exclusion
- Resources are not sharable.
- Hold and wait
- Process must be holding one resource while
requesting another. - No preemption
- No resource is preemptable.
- Circular wait
- A closed chain of processes exists, such that
each process holds at least one resources needed
by the next process in the chain.
73Deadlock Prevention
- Mutual exclusion
- Hold and wait
- No preemption
- Circular wait
Eliminating any of
- Eliminating the Mutual Exclusion Condition
- Not possible in most cases
- E.g., data files and databases for write access
are not sharable. - Spooling makes I/O devices sharable
- Virtual devices
74Deadlock Prevention
- Mutual exclusion
- Hold and wait
- No preemption
- Circular wait
Eliminating any of
- Eliminating the Hold and Wait Condition
- Request all resources at once
- Release all resources before a new request
- Eliminating the No preemption Condition
- Release all resources if current request blocks
75Deadlock Prevention
- Mutual exclusion
- Hold and wait
- No preemption
- Circular wait
Eliminating any of
- Eliminating the Circular Wait Condition
- Impose a total ordering of all resource types,
and require that each process requests resources
in an increasing order of enumeration.
Fact A cycle in the resource graph can develop
only when processes request the same resources in
the different order.
76Comparisons