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

ch7 Isra

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

Chapter 7: Deadlocks

Operating System Concepts – 8th Edition,! Silberschatz, Galvin and Gagne ©2009!
Chapter 7: Deadlocks

■ The Deadlock Problem"


■ System Model"
■ Deadlock Characterization"
■ Methods for Handling Deadlocks"
■ Deadlock Prevention"
■ Deadlock Avoidance"
■ Recovery from Deadlock "

Operating System Concepts – 8th Edition! 1.2! Silberschatz, Galvin and Gagne ©2009!
Chapter Objectives

■ To develop a description of deadlocks, which


prevent sets of concurrent processes from
completing their tasks"
■ To present a number of different methods for
preventing or avoiding deadlocks in a computer
system"
"

Operating System Concepts – 8th Edition! 1.3! Silberschatz, Galvin and Gagne ©2009!
The Deadlock Problem

■ A set of blocked processes each holding a resource


and waiting to acquire a resource held by another
process in the set"
■ Example "
● System has 2 disk drives"
● P1 and P2 each hold one disk drive and each
needs another one"
■ Example: semaphores A and B, initialized to 1"

P0 P1
wait (A); wait(B)
wait (B); wait(A)

Operating System Concepts – 8th Edition! 1.4! Silberschatz, Galvin and Gagne ©2009!
Bridge Crossing Example

■ Traffic only in one direction"


■ Each section of a bridge can be viewed as a resource"
■ If a deadlock occurs, it can be resolved if one car
backs up (preempt resources and rollback)"
■ Several cars may have to be backed up if a deadlock
occurs"
■ Starvation is possible"
■ Note – Most OSs do not prevent or deal with
deadlocks"
Operating System Concepts – 8th Edition! 1.5! Silberschatz, Galvin and Gagne ©2009!
System Model

■ Resource types R1, R2, . . ., Rm"


CPU cycles, memory space, I/O devices!
■ Each resource type Ri has Wi instances."
■ Each process utilizes a resource as follows:"
● request !
● use !
● release!

Operating System Concepts – 8th Edition! 1.6! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.7! Silberschatz, Galvin and Gagne ©2009!
Resource-Allocation Graph
Deadlocks can be described in terms of resource-allocation graphs. !

■ 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 – 8th Edition! 1.8! Silberschatz, Galvin and Gagne ©2009!
Resource-Allocation Graph (Cont.)
■ Process

"
■ Resource Type with 4 instances"
"

■ Pi requests instance of Rj"

" Pi!
R j!
■ Pi is holding an instance of Rj!

Pi"
R j!

Operating System Concepts – 8th Edition! 1.9! Silberschatz, Galvin and Gagne ©2009!
Example of a Resource Allocation Graph

Operating System Concepts – 8th Edition! 1.10! Silberschatz, Galvin and Gagne ©2009!
Resource Allocation Graph With A Deadlock

Operating System Concepts – 8th Edition! 1.11! Silberschatz, Galvin and Gagne ©2009!
Graph With A Cycle But No Deadlock

Operating System Concepts – 8th Edition! 1.12! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.13! Silberschatz, Galvin and Gagne ©2009!
Methods for Handling Deadlocks

■ Ensure that the system will never enter a deadlock


state
"
■ Allow the system to enter a deadlock state and
then recover
"
■ Ignore the problem and pretend that deadlocks
never occur in the system; used by most operating
systems, including UNIX"

Operating System Concepts – 8th Edition! 1.14! Silberschatz, Galvin and Gagne ©2009!
Deadlock Prevention

Restrain the ways request can be made"

■ Mutual Exclusion – not required for sharable


resources; must hold for nonsharable 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"
● Low resource utilization; starvation possible"
Operating System Concepts – 8th Edition! 1.15! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.16! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.17! Silberschatz, Galvin and Gagne ©2009!
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 is 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 – 8th Edition! 1.18! Silberschatz, Galvin and Gagne ©2009!
Example
■ A system with 12 tape drives and 3 processes"
■ P0 requires 10 tape drives, P1 requires 4 tape drives, P2 requires 9"

Maximum Needs "Current Needs"


P0" " "10 " " "5"
P1" "" "4 " " "2"
P2" " "9 " " "2"
■ At time To the system in a safe state with seq. <P1,P0,P2>."
■ At time T1 suppose P2 requested an additional tape drive, then the
sequence <P1,P0,P2>. Will lead to deadlock. "

Operating System Concepts – 8th Edition! 1.19! Silberschatz, Galvin and Gagne ©2009!
Example
Initially, free=3"
At time To the system in a safe state with seq. <P1,P0,P2>."

Max needs! Current 4-2 Allocate! Free!


needs! more!
P1 "" 4" 2" 10-5 2" 5"
P0" 10" 5" 9-2 5" 10"
P2" 9" 2" 7" 12"

9
Free= 1 Free=0 Free=3

Operating System Concepts – 8th Edition! 1.20! Silberschatz, Galvin and Gagne ©2009!
Example
At time T1 suppose P2 requested an additional tape drive, then the sequence
<P1,P0,P2>. Will lead to deadlock, now free=2"

Max needs! Current Allocate! Free!


4-2
needs! more!
P1 "" 4" 2" 10-5 2" 4"
P0" 10" 5" 9-3
P2" 9" 3"

Free= 0

Operating System Concepts – 8th Edition! 1.21! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.22! Silberschatz, Galvin and Gagne ©2009!
Avoidance algorithms

■ Single instance of a resource type"


● Use a resource-allocation graph"

■ Multiple instances of a resource type"


● Use the banker’s algorithm"

Operating System Concepts – 8th Edition! 1.23! Silberschatz, Galvin and Gagne ©2009!
Resource-Allocation Graph Scheme

■ Claim edge Pi → Rj indicated that process Pi may request


resource Rj; represented by a dashed line
"
■ Claim edge converts to request edge when a process
requests a resource
"
■ Request edge converted to an assignment edge when the
resource is allocated to the process"
"
■ When a resource is released by a process, assignment edge
reconverts to a claim edge
"
■ Resources must be claimed a priori in the system"

Operating System Concepts – 8th Edition! 1.24! Silberschatz, Galvin and Gagne ©2009!
Resource-Allocation Graph

Operating System Concepts – 8th Edition! 1.25! Silberschatz, Galvin and Gagne ©2009!
Unsafe State In Resource-Allocation Graph

Operating System Concepts – 8th Edition! 1.26! Silberschatz, Galvin and Gagne ©2009!
Resource-Allocation Graph Algorithm

■ Suppose that process Pi requests a resource


Rj!

■ The request can be granted only if converting


the request edge to an assignment edge
does not result in the formation of a cycle in
the resource allocation graph"

Operating System Concepts – 8th Edition! 1.27! Silberschatz, Galvin and Gagne ©2009!
Banker’s Algorithm

■ Multiple instances
"
■ Each process must a priori claim maximum use
"
■ When a process requests a resource it may have
to wait until the request can be granted safely."
■ When a process gets all its resources it must
return them in a finite amount of time"

Operating System Concepts – 8th Edition! 1.28! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.29! Silberschatz, Galvin and Gagne ©2009!
Safety Algorithm a working copy of
the available
a vector
resources, of Booleans
which
indicating
will be modifiedwhether a
1. "Let Work and Finish be vectors of length m and n, respectively. particular
during the process
has finished so far
analysis.
Initialize:" in the analysis.
Work = Available !
Finish [i] = false for i = 0, 1, …, n- find
Step2: 1" a process
has not finished, but
2. "Find an i such that both: " could with the given
available working set.
(a) Finish [i] = false"
(b) Needi ≤ Work! Step3: process i
finishing up and
If no such i exists, go to step 4" releasing its
resources back
3. "Work = Work + Allocationi into the work pool. Step4: a safe
Finish[i] = true sequence has
been found.
go to step 2"
4. "If Finish [i] == true for all i, then the system is in a safe state"

Operating System Concepts – 8th Edition! 1.30! Silberschatz, Galvin and Gagne ©2009!
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 – 8th Edition! 1.31! Silberschatz, Galvin and Gagne ©2009!
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!
! ! !A B C ! ABC !A B C!
" "P0 "0 10 " 753 "3 3 2"
" " P1 "2 00 " 322 "
" " P2 "3 0 2 " 9 0 2"
" " P3 "2 1 1 " 2 2 2"
" " P4 "0 0 2 " 433 ""

Operating System Concepts – 8th Edition! 1.32! Silberschatz, Galvin and Gagne ©2009!
Example (Cont.)

■ The content of the matrix Need is defined to be Max – Allocation"


"
" " "Need"
" " "A B C!
" " P0 "7 43"
" " P1 "1 22"
" " P2 "6 0 0 "
" " P3 "0 1 1"
" " P4 "4 3 1
"
■ The system is in a safe state since the sequence < P1, P3, P4, P2, P0>
satisfies safety criteria"

Operating System Concepts – 8th Edition! 1.33! Silberschatz, Galvin and Gagne ©2009!
Example: P1 Request (1,0,2)

■ Check that Request ≤ Available (that is, (1,0,2) ≤ (3,3,2) ⇒ true!


! ! !Allocation Need! Available!
! ! !A B C A B C! ABC!
" "P0 "0 1 0 " 743 " "2 3 0"
" "P1 "3 0 2 020 ""
" "P2 "3 0 1 " 600"
" "P3 "2 1 1 " 0 1 1"
" "P4 "0 0 2 " 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 – 8th Edition! 1.34! Silberschatz, Galvin and Gagne ©2009!
Recovery from Deadlock: 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?"
● Priority of the process"
● How long process has computed, and how much longer to completion"
● Resources the process has used"
● Resources process needs to complete"
● How many processes will need to be terminated"
● Is process interactive or batch?"

Operating System Concepts – 8th Edition! 1.35! Silberschatz, Galvin and Gagne ©2009!
Recovery from Deadlock: Resource Preemption

■ Selecting a victim – minimize cost


"
■ 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"

Operating System Concepts – 8th Edition! 1.36! Silberschatz, Galvin and Gagne ©2009!
End of Chapter 7

Operating System Concepts – 8th Edition,! Silberschatz, Galvin and Gagne ©2009!

You might also like