chapter 6 concurrency: deadlock and starvation. byu cs 345concurrency2 topics to cover… resources...
TRANSCRIPT
![Page 1: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/1.jpg)
Chapter 6Concurrency:Deadlock and Starvation
![Page 2: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/2.jpg)
Concurrency 2BYU CS 345
Topics to Cover…
Resources Deadlock Joint Process Diagrams Deadlock Conditions Circular Wait Resource Allocation Graph Handling Deadlock Avoidance Detection Recovery
Objectives
![Page 3: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/3.jpg)
Concurrency 3BYU CS 345
Reusable Resources
Used by one process at a time and not depleted by that use
Processes obtain resources that they later release for reuse by other processes
Processor time, I/O channels, main and secondary memory, files, databases, and semaphores
Deadlock occurs if each process holds one resource and requests the other
Resources
![Page 4: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/4.jpg)
Concurrency 4BYU CS 345
Consumable Resources
Created (produced) and destroyed (consumed) by a process
Interrupts, signals, messages, and information in I/O buffers
Deadlock may occur if a Receive message is blocking
May take a rare combination of events to cause deadlock
Resources
![Page 5: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/5.jpg)
Concurrency 5BYU CS 345
Deadlock
System Model Process must request a resource before
using Process must release the resource when
done Deadlock
A set of processes is in a deadlock state when every process in the set is waiting for an event that can only be caused by another process in the set.
Deadlock
![Page 6: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/6.jpg)
Concurrency 6BYU CS 345
Quiz 6.1
Answer…Process 1
Request 80K bytes
…
Request 60K bytes
…
How could deadlock occur when 200K bytes of memory is available for
allocation by the system Process 1 needs 140K in 80K, 60K blocks Process 2 needs 150k in 70K, 80K blocks
Deadlock
Process 2
…
Request 70K bytes
…
Request 80K bytes
![Page 7: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/7.jpg)
Concurrency 7BYU CS 345
Quiz 6.2
Answer…
How could deadlock occur when Two processes need to communicate via
send/receive messages Process 1 waits to hear from process 2 before
sending data Process 2 proceeds after hearing from process 1
Deadlock
Process 1
Receive(P2)
…
Send(P2)
…
Process 2
…
Receive(P1)
…
Send(P1)
![Page 8: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/8.jpg)
Concurrency 8BYU CS 345
Deadlock
Quiz 6.3
How is this deadlock??
![Page 9: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/9.jpg)
Concurrency 9
?
BYU CS 345
Joint Process DiagramProgress
of Q
Release A
Release B
Get A
Get B
Get A Get B Release A Release B
Progressof P
P has BQ has A
ARequired
BRequired
B Required
Both P and Qhave A
3
5
6
2
Both P and Qhave B
1
Fatal RegionP has A, Q has B
Deadlock!A Required
Diagrams
4
![Page 10: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/10.jpg)
Concurrency 10
?
BYU CS 345
Joint Process DiagramProgress
of Q
Release B
Release A
Get B
Get A
Get A Get B Release A Release B
Progressof P
Both P and Qhave A
BRequired
ARequired
B Required
3
2
Both P and Qhave B
1
A Required
Diagrams
4
P has A and BQ wants ACan’t get
there!
Q has A wants B,P wants A?
Can’t get there!
P has AQ has B
Ok!
![Page 11: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/11.jpg)
Concurrency 11BYU CS 345
Joint Process Diagram
Progressof Q
ReleaseA
ReleaseB
Get A
Get B
Get A Get BRelease A Release B
Progressof P
ARequired
BRequired
ARequired
BRequired
4
3
6BothP and Qhave A
BothP and Qhave B
5
Diagrams
1 2
![Page 12: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/12.jpg)
Concurrency 12BYU CS 345
Necessary Conditions
Mutual exclusion only one process may use a resource at a
time. no process may access resource allocated to
another. Hold-and-wait
a process may hold allocated resources while awaiting assignment of other resources.
No preemption no resource can be forcibly removed from a
process holding it.
Necessary Conditions
![Page 13: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/13.jpg)
Concurrency 13BYU CS 345
Conditions for Deadlock
Circular wait a closed chain of processes exists, such that
each process holds at least one resource needed by the next process in the chain
consequence of the first three conditions Other conditions are necessary but not
sufficient for deadlock - all four conditions must hold for deadlock
Unresolvable circular wait is the definition of deadlock!
Necessary Conditions
![Page 14: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/14.jpg)
Concurrency 14BYU CS 345
Circular Wait
ResourceB
ResourceA
ProcessP1
Requests
ProcessP2
Held by
RequestsHeld By
Circular Wait
![Page 15: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/15.jpg)
Concurrency 15BYU CS 345
Describing Deadlock
Deadlocks can be described using resource allocation graph Vertices
Active processes {P1, P2, … } Resources {R1, R2, … }
Edges A directed edge from Pi to Rj
Process Pi requested an instance of resource Rj A directed edge from Rj to Pi
Resource Rj has been allocated to process Pi Process are circles, resources are rectangles
Resource Allocation Graph
![Page 16: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/16.jpg)
Concurrency 16BYU CS 345
P1 P2 P3
R1 R2
R4
R3
Process are circles, resources are rectangles
Resource Allocation Graph
A directed edge from Pi to Rj indicates process Pi has requested an instance of resource Rj
A directed edge from Rj to Pi indicates resource Rj has been allocated to process Pi
Resource Allocation Graph
![Page 17: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/17.jpg)
Concurrency 17BYU CS 345
P1 P2 P3
R1 R2
R4
R3
Is there a cycle?
Resource Allocation Graph
Is there deadlock?
If the graph contains a cycle, deadlock MAY exist
If a graph contains no cycles, then no process in the system is deadlocked
Resource Allocation Graph
![Page 18: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/18.jpg)
Concurrency 18BYU CS 345
Deadlock?
P1
P2
P3
R2
Is there a cycle?
Is there deadlock?
P4
R1
Resource Allocation Graph
Yes
Maybe
![Page 19: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/19.jpg)
Concurrency 19BYU CS 345
Handling Deadlock
Ensure the system will never deadlock deadlock prevention
eliminate a condition avoidance algorithms
Recover from deadlock detect deadlock and eliminate it
Ignore deadlock system may hang so
Handling Deadlock
![Page 20: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/20.jpg)
Concurrency 20BYU CS 345
Prevention by Elimination
Mutual Exclusion non-sharable resources We can’t eliminate this condition
Hold and wait guarantee that when a process requests a
resource, it does not hold any other resources two protocols
system calls requesting resources precede all others a process can only request resources when it has
none low resource utilization?
Handling Deadlock
![Page 21: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/21.jpg)
Concurrency 21BYU CS 345
Eliminate No Preemption
If a process holds resources and requests more that cannot be allocated, all its other resources are preempted If you can’t hold all, you can’t hold any process is restarted only when it can have all
This works for resources whose state can be easily saved and restored later registers memory
Handling Deadlock
![Page 22: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/22.jpg)
Concurrency 22BYU CS 345
Eliminate Circular Wait
Impose a total ordering of all resources Require that all processes request
resources in increasing order.
Whenever a process requests a resource, it must release all resources that are lower
These two protocols eliminate circular wait
Handling Deadlock
![Page 23: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/23.jpg)
Concurrency 23BYU CS 345
Deadlock Avoidance
Allow general requests, but grant only when safe Assume we know the maximum requests (claims) for each
process Process must state it needs
Ie. max of 5 A objects, 3 B objects, 2 C objects. Do not need to use its max claims
Ie. Ok to set max=5 and only use 3 Can make requests at any time and in any order
Process Initiation Denial Track current allocations Assume all processes may make maximum requests at the same
time Only start process if it can’t result in deadlock regardless of
allocations
Avoidance
![Page 24: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/24.jpg)
Concurrency 24BYU CS 345
Resource Allocation Denial
Safe State – We can finish all processes by some scheduling sequence
Example: Finish P1, P4, P2, P5, P3 Banker’s Algorithm (Dijkstra)
Reject a request if it exceeds the processes’ declared maximum claims
Grant a request if the new state would be safe Determining if a state is safe
Find any process Pi for which we can meet it’s maximum requests Don't forget already allocated resources
Mark Pi as “done”, add its resources to available resource pool State is safe if we can mark all processes as “done”
Block a process if the resources are not currently available or the new state is not safe
Avoidance
![Page 25: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/25.jpg)
Concurrency 25BYU CS 345
Avoidance Example
A B C
9 3 6A B C
1 1 2
A B C
P1 3 2 2P2 6 1 3P3 3 1 4P4 4 2 2
Claim
200P4
112P3
115P2
P1 001
CBAAllocation
AvailableResource
024P4
301P3
201P2
P1 222
CBAC - A
200P4
112P3
115P2
P1 001
CBAAllocation
Are we in a safe state? Yes!
Avoidance
![Page 26: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/26.jpg)
Concurrency 26BYU CS 345
Quiz 6.4a
Carpentry Company XYZ has 4 employees, 9 clamps, 2 drills, and 2 bottles of glue.
Chair 4 clamps, 1 drill
Desk 6 clamps, 1 drill, 1 glue
Picture Frame 4 clamps, 1 drill, 1 glue
Book Case 6 clamps, 1 drill, 1 glue
Avoidance
![Page 27: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/27.jpg)
Concurrency 27BYU CS 345
Quiz 6.4a
Clamp Drill Glue
9 2 2Clamp Drill Glue
2 1 1
Clamp Drill Glue
P1 4 1 0P2 6 1 1P3 4 1 1P4 6 1 1
Claim
AvailableResource
114P4
102P3
014P2
P1 013
CBANeeded
P1 needs a drill. Is it OK to give it to him (ie. would we still be in a safe state)?
Avoidance
Clamp Drill Glue
P1 1 0 0P2 2 0 1P3 2 1 0P4 2 0 0
Allotted
Yes!
![Page 28: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/28.jpg)
Concurrency 28BYU CS 345
Quiz 6.4b
Clamp Drill Glue
9 2 2Clamp Drill Glue
2 0 1
Clamp Drill Glue
P1 4 1 0P2 6 1 1P3 4 1 1P4 6 1 1
Claim
AvailableResource
114P4
102P3
014P2
P1 003
CBANeeded
P4 needs a glue. Would you give it to him (still safe state)?
Avoidance
Clamp Drill Glue
P1 1 1 0P2 2 0 1P3 2 1 0P4 2 0 0
Allotted
No!
![Page 29: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/29.jpg)
Concurrency 29BYU CS 345
Quiz 6.4c
If you give P4 the glue, are we then deadlocked?
Clamp Drill Glue
9 2 2Clamp Drill Glue
2 0 0
Clamp Drill Glue
P1 4 1 0P2 6 1 1P3 4 1 1P4 6 1 1
Claim
AvailableResource
014P4
102P3
014P2
P1 003
CBANeeded
Avoidance
Clamp Drill Glue
P1 1 1 0P2 2 0 1P3 2 1 0P4 2 0 1
Allotted
No!
![Page 30: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/30.jpg)
Concurrency 30BYU CS 345
Deadlock Detection Avoidance methods tend to limit access to resources Instead, grant arbitrary requests and watch for deadlock Can vary how often we check
Early detection vs. overhead of checks Algorithm (Stallings, Figure 6.9)
Preparation: Create table of process requests, current allocations Note available resources
Mark processes with no resources Mark any process whose requests can be met (requests £
available resources) Include resources from that process as ‘available’ (this process
can finish) If multiple processes available, pick any
If any processes cannot be marked, they are part of a deadlock
Detection
![Page 31: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/31.jpg)
Concurrency 31BYU CS 345
1
E
0
D
000
CBA
Temporary Available
Detection Example
A B C D E
0 0 0 0 1
Request Allocation
Available
ResourceA B C D E
P1 0 1 0 0 1P2 0 0 1 0 1P3 0 0 0 0 1P4 1 0 1 0 1
A B C D E
P1 1 0 1 1 0P2 1 1 0 0 0P3 0 0 0 1 0P4 0 0 0 0 0
A B C D E
2 1 1 2 1
Mark P4 (not holding anything someone else wants)
11000
Mark P3, new available: 0 0 0 1 1
Cannot mark P1 or P2, so we are deadlocked
Detection
![Page 32: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/32.jpg)
Concurrency 32BYU CS 345
000
CBA
Temporary Available
Quiz 6.4
Are we deadlocked?
A B C
0 0 0
A B C
P1 0 0 0P2 2 0 2P3 0 0 0P4 1 0 0P5 0 0 2
Requests
Available
A B C
P1 0 1 0P2 2 0 0P3 3 0 3P4 2 1 1P5 0 0 2
Allocation ResourceA B C
7 2 6
Detection
![Page 33: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/33.jpg)
Concurrency 33BYU CS 345
Deadlock Detection Questions?
Does it really work? How often should you run a detection
process? How often is deadlock likely to occur? How expensive is the detection process?
Detection
![Page 34: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/34.jpg)
Concurrency 34BYU CS 345
Deadlock Recovery
Several possible approaches Abort all deadlocked processes
Simple but common Back up processes to a previously saved checkpoint, then
restart Assumes we have checkpoints and a rollback mechanism Runs risk of repeating deadlock
Assumes that the deadlock has enough timing dependencies it won’t happen
Selectively abort processes until deadlock broken Preempt resources until deadlock broken
Must roll back process to checkpoint prior to acquiring key resource
Recovery
![Page 35: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/35.jpg)
Concurrency 35BYU CS 345
Deadlock Recovery
Process Termination Kill them all One at a time Consider priority Time computing Who has most resources
Resource Preemption Who gets preempted Do you consider process rollback and
starvation
Recovery
![Page 36: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/36.jpg)
Concurrency 36BYU CS 345
Mixed Strategy
May group resources into classes, have a different deadlock strategy for each class
Swap Space Prevent deadlocks by requiring all space to be allocated at
once Avoidance also possible
Tapes/Files Avoidance can be effective here Prevention by ordering resources also possible
Main Memory Preemption a good approach
Internal Resources (channels, etc.) Prevention by ordering resources
Can use linear ordering between classes
Recovery
![Page 37: Chapter 6 Concurrency: Deadlock and Starvation. BYU CS 345Concurrency2 Topics to Cover… Resources Deadlock Joint Process Diagrams Deadlock Conditions](https://reader035.vdocuments.net/reader035/viewer/2022062221/56649d215503460f949f730f/html5/thumbnails/37.jpg)
Concurrency 37BYU CS 345