0% found this document useful (0 votes)
15 views

ch7 Isra

This chapter discusses deadlocks in operating systems. It begins by defining a deadlock as when a set of processes are blocked waiting for resources held by each other in a cyclic manner. It then presents the four conditions required for a deadlock to occur: mutual exclusion, hold and wait, no preemption, and circular wait. The chapter discusses different methods for handling deadlocks, including prevention, avoidance, and recovery. It focuses on prevention techniques like mutual exclusion, hold and wait, no preemption, and imposing a total ordering of resource requests. Avoidance requires knowledge of maximum resource demands.

Uploaded by

younas125
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

ch7 Isra

This chapter discusses deadlocks in operating systems. It begins by defining a deadlock as when a set of processes are blocked waiting for resources held by each other in a cyclic manner. It then presents the four conditions required for a deadlock to occur: mutual exclusion, hold and wait, no preemption, and circular wait. The chapter discusses different methods for handling deadlocks, including prevention, avoidance, and recovery. It focuses on prevention techniques like mutual exclusion, hold and wait, no preemption, and imposing a total ordering of resource requests. Avoidance requires knowledge of maximum resource demands.

Uploaded by

younas125
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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