Professional Documents
Culture Documents
Week 16
Week 16
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Today’s Outline
Deadlock Detection
Recovery from Deadlock
Operating System Concepts – 10th Edition 8.2 Silberschatz, Galvin and Gagne ©2018
Banker’s Algorithm
Multiple instances of resources
When a process gets all its resources it must return them in a finite
amount of time
Operating System Concepts – 10th Edition 8.3 Silberschatz, Galvin and Gagne ©2018
Data Structures for the Banker’s Algorithm
Let n = number of processes, and m = number of resources types.
Operating System Concepts – 10th Edition 8.4 Silberschatz, Galvin and Gagne ©2018
Safety Algorithm
1. Let Work and Finish be vectors of length m and n, respectively.
Initialize:
Work = Available
Finish [i] = false for i = 0, 1, …, n- 1
4. If Finish [i] == true for all i, then the system is in a safe state
Operating System Concepts – 10th Edition 8.5 Silberschatz, Galvin and Gagne ©2018
Resource-Request Algorithm for Process Pi
Requesti = request vector for process Pi. If Requesti [j] = k then
process Pi wants k instances of resource type Rj
1. If Requesti Needi go to step 2. Otherwise, raise error
condition, since process has exceeded its maximum claim
2. If Requesti Available, go to step 3. Otherwise Pi must wait,
since resources are not available
3. Pretend to allocate requested resources to Pi by modifying the
state as follows:
Available = Available – Requesti;
Allocationi = Allocationi + Requesti;
Needi = Needi – Requesti;
• If safe the resources are allocated to Pi
• If unsafe Pi must wait, and the old resource-allocation state
is restored
Operating System Concepts – 10th Edition 8.6 Silberschatz, Galvin and Gagne ©2018
Example of Banker’s Algorithm
Operating System Concepts – 10th Edition 8.7 Silberschatz, Galvin and Gagne ©2018
Example (Cont.)
The content of the matrix Need is defined to be Max – Allocation
Need
ABC
P0 743
P1 122
P2 600
P3 011
P4 431
The system is in a safe state since the sequence < P1, P3, P4, P2, P0>
satisfies safety criteria
Operating System Concepts – 10th Edition 8.8 Silberschatz, Galvin and Gagne ©2018
Example: P1 Request (1,0,2)
Check that Request Available (that is, (1,0,2) (3,3,2) true
Allocation Need Available
ABC ABC ABC
P0 010 743 230
P1 302 020
P2 302 600
P3 211 011
P4 002 431
Executing safety algorithm shows that sequence < P1, P3, P4, P0, P2>
satisfies safety requirement
Operating System Concepts – 10th Edition 8.9 Silberschatz, Galvin and Gagne ©2018
Deadlock Detection and Recovery
Detection algorithm
Recovery scheme
Operating System Concepts – 10th Edition 8.10 Silberschatz, Galvin and Gagne ©2018
Today’s Lecture
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Deadlock Detection
Operating System Concepts – 10th Edition 8.12 Silberschatz, Galvin and Gagne ©2018
Single Instance of Each Resource Type
Maintain wait-for graph
• Nodes are processes
• Pi Pj if Pi is waiting for Pj
Operating System Concepts – 10th Edition 8.13 Silberschatz, Galvin and Gagne ©2018
Resource-Allocation Graph and Wait-for Graph
Operating System Concepts – 10th Edition 8.14 Silberschatz, Galvin and Gagne ©2018
Resource-Allocation Graph and Wait-for Graph
Operating System Concepts – 10th Edition 8.15 Silberschatz, Galvin and Gagne ©2018
Resource-Allocation Graph and Wait-for Graph
Operating System Concepts – 10th Edition 8.16 Silberschatz, Galvin and Gagne ©2018
Several Instances of a Resource Type
Operating System Concepts – 10th Edition 8.17 Silberschatz, Galvin and Gagne ©2018
Example of Detection Algorithm
Five processes P0 through P4; three resource types
A (7 instances), B (2 instances), and C (6 instances)
Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i
Operating System Concepts – 10th Edition 8.18 Silberschatz, Galvin and Gagne ©2018
Example (Cont.)
State of system?
• Can reclaim resources held by process P0, but insufficient
resources to fulfill other processes; requests
• Deadlock exists, consisting of processes P1, P2, P3, and P4
Operating System Concepts – 10th Edition 8.19 Silberschatz, Galvin and Gagne ©2018
Detection-Algorithm Usage
When, and how often, to invoke depends on:
• How often a deadlock is likely to occur?
• How many processes will need to be rolled back?
one for each disjoint cycle
Operating System Concepts – 10th Edition 8.20 Silberschatz, Galvin and Gagne ©2018
Detection-Algorithm Usage
When, and how often, to invoke depends on:
Operating System Concepts – 10th Edition 8.21 Silberschatz, Galvin and Gagne ©2018
Recovery from Deadlock: Process Termination
Operating System Concepts – 10th Edition 8.22 Silberschatz, Galvin and Gagne ©2018
Recovery from Deadlock: Resource Preemption
Operating System Concepts – 10th Edition 8.23 Silberschatz, Galvin and Gagne ©2018
Questions
Operating System Concepts – 10th Edition 8.24 Silberschatz, Galvin and Gagne ©2018
End of Chapter 8
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018