Upload
abhishek-sharma
View
220
Download
0
Embed Size (px)
Citation preview
8/4/2019 Ch 7 Deadlock
1/36
Chapter 7
Deadlock
8/4/2019 Ch 7 Deadlock
2/36
Deadlock
A waiting process is never again able to
change state, because the resources it has
requested are held by other waiting processes
called as deadlock
8/4/2019 Ch 7 Deadlock
3/36
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 tape drives.
P1 and P2 each hold one tape drive and eachneeds another one.
8/4/2019 Ch 7 Deadlock
4/36
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.
8/4/2019 Ch 7 Deadlock
5/36
System Model
Resource typesR1,R2, . . .,Rm
CPU cycles, memory space, I/O devices
Each resource typeRi has Wi instances.
Each process utilizes a resource as follows:
request
userelease
8/4/2019 Ch 7 Deadlock
6/36
System Model
RequestIf the request cannot be granted
immediately, then requesting process must wait
until it can acquire the resource.UseThe process can operate on resource
Release- The process releases the resource
8/4/2019 Ch 7 Deadlock
7/36
Deadlock Characterization
Deadlock can arise if four conditions hold
Simultaneously
Mutual exclusion: only one process at a time
can use a resource. If another process requeststhat resource, the requesting process must bedelayed until the resource has been released.
Hold and wait: a process must be holding atleast one resource and waiting to acquireadditional resources held by other processes.
8/4/2019 Ch 7 Deadlock
8/36
Deadlock Characterization Cont.
No preemption: Resources cant be preempted,i.e. 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, , P0}
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, , Pn1 is waiting for
a resource that is held by Pn, and P0 is waiting
for a resource that is held by P0.
8/4/2019 Ch 7 Deadlock
9/36
Resource-Allocation Graph
A set of vertices Vand a set of edgesE.
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 edgedirected edge P1Rj
assignment edgedirected edgeRjPi
8/4/2019 Ch 7 Deadlock
10/36
Resource-Allocation Graph (Cont.)
Process
Resource Type with 4 instances
Pi requests instance ofRj
Pi is holding an instance ofRj
Pi
Pi
8/4/2019 Ch 7 Deadlock
11/36
Resource-Allocation Graph
8/4/2019 Ch 7 Deadlock
12/36
Graph with a deadlock
8/4/2019 Ch 7 Deadlock
13/36
Resource allocation graph with a cycle
but no deadlock
8/4/2019 Ch 7 Deadlock
14/36
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.
8/4/2019 Ch 7 Deadlock
15/36
Methods for Handling Deadlocks
Ensure that the system will neverenter a
deadlock state.
Allow the system to enter a deadlock state and
then recover.
To ensure that deadlock never occur, the
system can use either a deadlock prevention or
deadlock avoidance scheme.
8/4/2019 Ch 7 Deadlock
16/36
Deadlock Prevention
Mutual Exclusionnot required for sharable
resources; must hold for non-sharable resources.
Hold and Waitmust 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 processto request resources only when the process has none.
-Low resource utilization; starvation possible.
8/4/2019 Ch 7 Deadlock
17/36
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 canregain its old resources, as well as the new ones
that it is requesting.
8/4/2019 Ch 7 Deadlock
18/36
Deadlock Prevention (Cont.)Circular Waitimpose a total ordering of all
resource types, and require that each process
requests resources in an increasing order of
enumeration
8/4/2019 Ch 7 Deadlock
19/36
Deadlock Avoidance
Requires that the system has some additional a
prioriinformation available.Simplest and most useful model requires that each
process declare the maximum numberof resourcesof each type that it may need.
The deadlock-avoidance algorithm dynamicallyexamines the resource-allocation state to ensurethat there can never be a circular-wait condition.
Resource-allocation state is defined by thenumber of available and allocated resources, andthe maximum demands of the processes.
8/4/2019 Ch 7 Deadlock
20/36
Safe State
A state is safe if the system can allocateresources to each process in some order and
still avoid a deadlock.When a process requests an available resource,
system must decide if immediate allocationleaves the system in a safe state.
System is in safe state if there exists a safesequence of all processes.
8/4/2019 Ch 7 Deadlock
21/36
Safe State Cont.Sequence is safe if for each Pi, the
resources that Pi can still request can be satisfied bycurrently available resources + resources held by all
the Pj If Pi resource needs are not immediately available,
then Pi can wait until all Pjhave finished.
When Pj is finished, Pi can obtain needed
resources, execute, return allocated resources, andterminate.
When Pi terminates, Pi+1 can obtain its neededresources, and so on.
8/4/2019 Ch 7 Deadlock
22/36
Basic FactsA safe state is not a deadlocked state.
A deadlocked state is an unsafe state.
Not all unsafe states are deadlock, however anunsafe state may lead to a deadlock.
To avoid deadlock ensure that a system will
never enter an unsafe state.
8/4/2019 Ch 7 Deadlock
23/36
Safe, Unsafe , Deadlock State
8/4/2019 Ch 7 Deadlock
24/36
Example
Consider system with 12 magnetic tape drives
3 processes P0 , P1 , P2
Sequence P1 ,P0 ,P2 satisfy the safety condition
Processes Maximum
Needs
Allocated
P0 10 5
P1 4 2
P2 9 2
8/4/2019 Ch 7 Deadlock
25/36
Resource-Allocation Graph Algorithm
Claim edgePiRj indicated that process Pjmay request resourceRj; represented by a dashed
line.
Claim edge converts to request edge when aprocess requests a resource.
When a resource is released by a process,
assignment edge reconverts to a claim edge.
Resources must be claimed a priori in the
system.
8/4/2019 Ch 7 Deadlock
26/36
Resource-Allocation Graph For
Deadlock Avoidance
8/4/2019 Ch 7 Deadlock
27/36
Unsafe State In Resource-Allocation
Graph
8/4/2019 Ch 7 Deadlock
28/36
Bankers Algorithm
Multiple instances.
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.
8/4/2019 Ch 7 Deadlock
29/36
Data Structures for the Bankers
Algorithm
Available- the number of available resources of
each type.
Max- maximum demand of each process
Allocation- The number of resources of each
type currently allocated to each process
Need- the remaining resource need of each
type
Safet Algorithm
8/4/2019 Ch 7 Deadlock
30/36
Safety Algorithm
n-No. of processes, m- no of resource type
1. Let Workand Finish be vectors of length m and n,respectively. Initialize:
Work=Available
Finish [i] = false for i= 0,1,3, , n.
2. Find an i such that both:(a) Finish [i]= =false
(b)NeediWork
If no such i exists, go to step 4.
3. Work= Work+AllocationiFinish[i] = truego to step 2.
4. IfFinish [i] == true for all i, then the system is in a
8/4/2019 Ch 7 Deadlock
31/36
Resource-Request Algorithm for Process Pi
1. If RequestiNeedigo to step 2. Otherwise, raise
error condition, since process has exceeded itsmaximum claim.
2. If RequestiAvailable, go to step 3. Otherwise Pimust wait, since resources are not available.
3. Pretend to allocate requested resources to Pi bymodifying the state as follows:
Available =Available =Requesti;
Allocationi=Allocationi +Requesti;
Needi= NeediRequesti;;If safe the resources are allocated to Pi.If unsafe Pi must wait, and the old resource-
allocation state is restored
8/4/2019 Ch 7 Deadlock
32/36
Example of Bankers Algorithm5 processes P0 through P4; 3 resource typesA
(10 instances),B (5instances, and C(7 instances).
Snapshot at time T0:
Allocation Max Available
A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2
P1 2 0 0 3 2 2
P2 3 0 2 9 0 2
P3 2 1 1 2 2 2
P4 0 0 2 4 3 3
E l (C t )
8/4/2019 Ch 7 Deadlock
33/36
Example (Cont.)
The content of the matrix. Need is defined to be
MaxAllocation.Need
A B C
P0 7 4 3P1 1 2 2
P2 6 0 0
P3 0 1 1P4 4 3 1
The system is in a safe state since the sequence satisfies safety criteria.
8/4/2019 Ch 7 Deadlock
34/36
Deadlock Detection
If a system does not employ either a deadlock-
prevention or a deadlock avoidance, then the
deadlock situation may occur. In this case
system must provide
Deadlock Detection algorithm
Recovery scheme
8/4/2019 Ch 7 Deadlock
35/36
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 muchlonger 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?
8/4/2019 Ch 7 Deadlock
36/36
Recovery from Deadlock: Resource
Preemption
Selecting a victimminimize cost.
Rollbackreturn to some safe state, restart
process from that state.
Starvation same process may always be
picked as victim, include number of rollback in
cost factor.