No Slide Title
Download
Report
Transcript No Slide Title
Chapter 7: Deadlocks
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009
Chapter 7: Deadlocks
n
The Deadlock Problem
n
System Model
n
Deadlock Characterization
n
Methods for Handling Deadlocks
Operating System Concepts – 8th Edition
7.2
Silberschatz, Galvin and Gagne ©2009
Chapter Objectives
n
To develop a description of deadlocks, which prevent sets of
concurrent processes from completing their tasks
n
To present methods for Handling Deadlocks
Operating System Concepts – 8th Edition
7.3
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
7.4
Silberschatz, Galvin and Gagne ©2009
Introduction
n
In a multiprogramming environment, several processes may compete for a
finite number of resources.
n
A process requests resources; if the resources are not available at that
time, the process enters a waiting state.
n
Sometimes, a waiting process is never again able to change state, because
the resources it has requested are held by other waiting processes. This
situation is called a DEADLOCK.
Operating System Concepts – 8th Edition
7.5
Silberschatz, Galvin and Gagne ©2009
The Deadlock Problem
n
What is a deadlock problem??
l
n
n
A set of blocked processes each holding a resource and waiting to
acquire a resource held by another process in the set
Example
l
System has 2 disk drives
l
P1 and P2 each hold one disk drive and each needs another one
Note :–
l
Most OSs do not prevent or deal with deadlocks
Operating System Concepts – 8th Edition
7.6
Silberschatz, Galvin and Gagne ©2009
Bridge Crossing Example
n
Traffic only in one direction
n
Each section of a bridge can be viewed as a resource
n
If a deadlock occurs, it can be resolved if one car backs up
(preempt resources and rollback)
n
Several cars may have to be backed up if a deadlock occurs
n
Starvation is possible
Operating System Concepts – 8th Edition
7.7
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
7.8
Silberschatz, Galvin and Gagne ©2009
System Model
n
The resources are partitioned into several types (R1, R2, . . ., Rm )
l
n
Instances are
identical
Each resource type Ri has Wi instances.
l
n
E.g.: CPU cycles, memory space, I/O devices
Examples:
If a system has (2) CPUs, then the resource type CPU has (2)
instances.
The resource type printer may have (5) instances.
Each process utilizes a resource as follows:
l
Request >> If the request cannot be granted immediately ,then the
requesting process must wait until it can acquire the resource.
l
Use
l
Release
Operating System Concepts – 8th Edition
7.9
Silberschatz, Galvin and Gagne ©2009
System Model (cont.)
n
A set of processes is in a deadlocked state when every process in the set is
waiting for an event that can be caused only by another process in the set.
n
Resource forms:
l
Physical resources
l
Logical resources
n
e.g. printers, DVD drives, memory space, and CPU cycles
e.g. files
Example:
l
consider a system with one printer and one DVD drive.
l
Suppose that process Pi is holding the DVD and process Pj is holding the
printer.
l
If Pi requests the printer and Pj requests the DVD drive, a deadlock
occurs.
Operating System Concepts – 8th Edition
7.10
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
7.11
Silberschatz, Galvin and Gagne ©2009
Deadlock Characterization
Deadlock can arise if four conditions hold simultaneously:
n
Mutual exclusion: only one process at a time can use a resource…(i.e.
No recourse sharing)
n
Hold and wait: a process holding at least one resource is waiting to
acquire additional resources held by other processes
n
No preemption: a resource can be released only voluntarily by the
process holding it, after that process has completed its task
n
Circular wait:
l
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,
Pn is waiting for a resource that is held by P0.
Operating System Concepts – 8th Edition
7.12
Silberschatz, Galvin and Gagne ©2009
Resource-Allocation Graph
n Deadlocks can be described in terms of a directed graph called a
system resource-allocation graph.
n This graph consists of a set of vertices V and a set of edges E.
n V is partitioned into two types:
l
P = {P1, P2, …, Pn}, the set consisting of all the processes in
the system
l
R = {R1, R2, …, Rm}, the set consisting of all resource types in
the system
n E is partitioned into two types:
Pi Rj
l
Request edge – directed edge
l
Assignment edge – directed edge
Operating System Concepts – 8th Edition
7.13
Rj Pi
Silberschatz, Galvin and Gagne ©2009
Resource-Allocation Graph (Cont.)
n
Process
n
Resource Type with 4 instances
n
Pi requests instance of Rj
Pi
n
Rj
Pi is holding an instance of Rj
Pi
Rj
Operating System Concepts – 8th Edition
7.14
Silberschatz, Galvin and Gagne ©2009
Example of a Resource Allocation Graph
The sets P, R, and E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1 → R1, P2 → R3, R1 → P2, R2 →
P2, R2 → P1, R3 → P3}
Resource instances:
(1) instance of resource type R1
(2) instances of resource type R2
(1) instance of resource type R3
(3) instances of resource type R4
Process states:
Process P1 is holding an instance of
resource type R2 and is waiting for an
instance of resource type R1.
Process P2 is holding an instance of R1 and
an instance of R2 and is waiting for an
instance of R3.
Process P3 is holding an instance of R3.
Operating System Concepts – 8th Edition
7.15
Silberschatz, Galvin and Gagne ©2009
Basic Facts
How we recognize deadlock by using a Resource
Allocation Graph??
If graph contains no cycles no deadlock
If graph contains a cycle
If
only one instance per resource type, then there is a
deadlock
If
several instances per resource type, possibility of
deadlock .
Operating System Concepts – 8th Edition
7.16
Silberschatz, Galvin and Gagne ©2009
Resource Allocation Graph With NO Deadlock
Example (1):
The graph contains NO cycles NO deadlock is occurred.
Operating System Concepts – 8th Edition
7.17
Silberschatz, Galvin and Gagne ©2009
Resource Allocation Graph With a Deadlock
Example (2):
The graph contains (2)cycles may be a deadlock is
occurred.
Cycle (1) :
P1 → R1 → P2 → R3 → P3 → R2 → P1
Cycle (2) :P2 → R3 → P3 → R2 → P2
It ‘s a dead lock situation >>> Processes P1, P2, and
P3 are deadlocked…….why??
There is no chance to break the cycle.
Operating System Concepts – 8th Edition
7.18
Silberschatz, Galvin and Gagne ©2009
Graph With A Cycle But No Deadlock
Example (3):
The graph contains (1)cycle may be a deadlock
Cycle :
P1 → R1 → P3 → R2 → P1
NO dead lock situation .....WHY????
process P4 may release its instance of resource type R2……
That resource can then be allocated to P3, breaking the
cycle.
Operating System Concepts – 8th Edition
7.19
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
7.20
Silberschatz, Galvin and Gagne ©2009
Methods for Handling Deadlocks
OS can deal with the deadlock problem in one of
three ways:
Use a protocol to prevent or avoid deadlocks, ensuring that
the system will never enter a deadlocked state.
Allow the system to enter a deadlocked state, detect it, and
recover.
Ignore the problem altogether and pretend that deadlocks
never occur in the system.
Used by most operating systems, including Unix & windows
This method is cheaper than the prevention, avoidance, or detection
and recovery methods.
Solution: The system must be restarted manually.
Operating System Concepts – 8th Edition
7.21
Silberschatz, Galvin and Gagne ©2009
End of Chapter 7
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009