Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CH 8

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 28

Chapter 8: Deadlocks

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne


Outline

 System Model
 Deadlock Characterization
 Methods for Handling Deadlocks
 Deadlock Prevention
 Deadlock Avoidance
 Deadlock Detection
 Recovery from Deadlock

Operating System Concepts – 10th Edition 8.2 Silberschatz, Galvin and Gagne
Deadlock Characterization
Deadlock can arise if four conditions hold
simultaneously.
 Mutual exclusion: only one process at a time can
use a resource
 Hold and wait: a process holding at least one
resource is waiting to acquire additional
resources held by other processes
 No preemption: a resource can be released only
voluntarily by the process holding it, after that
process has completed its task
 Circular wait: there exists a set {P0, P1, …, Pn} of
waiting processes such that P0 is waiting for a
resource that is held by P1, P1 is waiting for a
resource that is held by P2, …, Pn–1 is waiting for a
resource that is held by Pn, and Pn is waiting for a
resource that is held by P0.

Operating System Concepts – 10th Edition 8.3 Silberschatz, Galvin and Gagne
Resource-Allocation Graph

A set of vertices V and a set of edges E.

 V is partitioned into two types:


• P = {P1, P2, …, Pn}, the set consisting of all
the processes in the system

• R = {R1, R2, …, Rm}, the set consisting of all


resource types in the system

 request edge – directed edge Pi  Rj

 assignment edge – directed edge Rj  Pi

Operating System Concepts – 10th Edition 8.4 Silberschatz, Galvin and Gagne
Resource Allocation Graph Example

 One instance of R1
 Two instances of R2
 One instance of R3
 Three instance of R4
 T1 holds one instance of R2 and
is waiting for an instance of R1
 T2 holds one instance of R1,
one instance of R2, and is
waiting for an instance of R3
 T3 is holds one instance of R3

Operating System Concepts – 10th Edition 8.5 Silberschatz, Galvin and Gagne
Resource Allocation Graph with a Deadlock

Operating System Concepts – 10th Edition 8.6 Silberschatz, Galvin and Gagne
Graph with a Cycle But no Deadlock

Operating System Concepts – 10th Edition 8.7 Silberschatz, Galvin and Gagne
Basic Facts
 If graph contains no cycles  no
deadlock
 If graph contains a cycle 
• If only one instance per
resource type, then deadlock
• If several instances per
resource type, possibility of
deadlock

Operating System Concepts – 10th Edition 8.8 Silberschatz, Galvin and Gagne
Methods for Handling Deadlocks
 Ensure that the system will never enter a deadlock state:
• Deadlock prevention
• Deadlock avoidance
 Allow the system to enter a deadlock state and then
recover
 Ignore the problem and pretend that deadlocks never
occur in the system.

Operating System Concepts – 10th Edition 8.9 Silberschatz, Galvin and Gagne
Deadlock Prevention
Invalidate one of the four necessary conditions for deadlock:
 Mutual Exclusion – not required for sharable
resources (e.g., read-only files); must hold for non-
sharable resources
 Hold and Wait – must guarantee that whenever a
process requests a resource, it does not hold any
other resources
• Require process to request and be allocated all
its resources before it begins execution, or allow
process to request resources only when the
process has none allocated to it.
• Low resource utilization; starvation possible

Operating System Concepts – 10th Edition 8.10 Silberschatz, Galvin and Gagne
Deadlock Prevention (Cont.)
 No Preemption:
• If a process that is holding some resources requests
another resource that cannot be immediately
allocated to it, then all resources currently being held
are released
• Preempted resources are added to the list of
resources for which the process is waiting
• Process will be restarted only when it can regain its
old resources, as well as the new ones that it is
requesting
 Circular Wait:
• Impose a total ordering of all resource types, and
require that each process requests resources in an
increasing order of enumeration

Operating System Concepts – 10th Edition 8.11 Silberschatz, Galvin and Gagne
Deadlock Avoidance
Requires that the system has some additional a priori
information
available
 Simplest and most useful model requires that
each process declare the maximum number of
resources of each type that it may need
 The deadlock-avoidance algorithm dynamically
examines the resource-allocation state to
ensure that there can never be a circular-wait
condition
 Resource-allocation state is defined by the
number of available and allocated resources,
and the maximum demands of the processes

Operating System Concepts – 10th Edition 8.12 Silberschatz, Galvin and Gagne
Safe State
 When a process requests an available resource,
system must decide if immediate allocation leaves the
system in a safe state
 System is in safe state if there exists a sequence <P1,
P2, …, Pn> of ALL the processes in the systems such
that for each Pi, the resources that Pi can still request
can be satisfied by currently available resources +
resources held by all the Pj, with j < I
 That is:
• If Pi resource needs are not immediately available,
then Pi can wait until all Pj have finished
• When Pj is finished, Pi can obtain needed
resources, execute, return allocated resources,
and terminate
• When Pi terminates, Pi +1 can obtain its needed
resources, and so on

Operating System Concepts – 10th Edition 8.13 Silberschatz, Galvin and Gagne
Basic Facts
 If a system is in safe state  no deadlocks

 If a system is in unsafe state  possibility of deadlock

 Avoidance  ensure that a system will never enter an


unsafe state.

Operating System Concepts – 10th Edition 8.14 Silberschatz, Galvin and Gagne
Safe, Unsafe, Deadlock State

Operating System Concepts – 10th Edition 8.15 Silberschatz, Galvin and Gagne
Avoidance Algorithms
 Single instance of a resource type
• Use a modified resource-allocation graph

 Multiple instances of a resource type


• Use the Banker’s Algorithm

Operating System Concepts – 10th Edition 8.16 Silberschatz, Galvin and Gagne
Resource-Allocation Graph

Operating System Concepts – 10th Edition 8.17 Silberschatz, Galvin and Gagne
Unsafe State In Resource-Allocation Graph

Operating System Concepts – 10th Edition 8.18 Silberschatz, Galvin and Gagne
Banker’s Algorithm
 Multiple instances of resources
 Each process must a priori claim maximum use
 When a process requests a resource it may
have to wait
 When a process gets all its resources it must
return them in a finite amount of time

Operating System Concepts – 10th Edition 8.19 Silberschatz, Galvin and Gagne
Data Structures for the Banker’s Algorithm

Let n = number of processes, and m = number of resources types.

 Available: Vector of length m. If available [j] = k, there


are k instances of resource type Rj available

 Max: n x m matrix. If Max [i,j] = k, then process Pi may


request at most k instances of resource type Rj

 Allocation: n x m matrix. If Allocation[i,j] = k then Pi is


currently allocated k instances of Rj

 Need: n x m matrix. If Need[i,j] = k, then Pi may need k


more instances of Rj to complete its task

Need [i,j] = Max[i,j] – Allocation [i,j]

Operating System Concepts – 10th Edition 8.20 Silberschatz, Galvin and Gagne
Example of Banker’s Algorithm
 5 processes P0 through P4;
3 resource types:
A (10 instances), B (5 instances), and C (7
instances)
 Snapshot at time T0:
Allocation Max Available
ABC ABC ABC
P0 010 753 332
P1 200 322
P2 302 902
P3 211 222
P4 002 433

Operating System Concepts – 10th Edition 8.21 Silberschatz, Galvin and Gagne
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

Operating System Concepts – 10th Edition 8.22 Silberschatz, Galvin and Gagne
Example (Cont.)
 Snapshot at time T0:

Allocation Max Available Need


ABC ABC ABC ABC
P0 010 753 332 743
P1 200 322 122
P2 302 902 600
P3 211 222 011
P4 002 433 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.23 Silberschatz, Galvin and Gagne
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

 Can request for (3,3,0) by P4 be granted?

 Can request for (0,2,0) by P0 be granted?

Operating System Concepts – 10th Edition 8.24 Silberschatz, Galvin and Gagne
Deadlock Detection

 Allow system to enter deadlock state

 Detection algorithm

 Recovery scheme

Operating System Concepts – 10th Edition 8.25 Silberschatz, Galvin and Gagne
Example of Detection Algorithm
 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 ABCABC
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

Operating System Concepts – 10th Edition 8.26 Silberschatz, Galvin and Gagne
Example (Cont.)

 P2 requests an additional instance of type C


Request
ABC
P0 000
P1 202
P2 001
P3 100
P4 002

 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.27 Silberschatz, Galvin and Gagne
End of Chapter 8

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne

You might also like