Deadlock Part1
Deadlock Part1
Deadlock
Operating Systems
Deadlock
• System Model
• Deadlock Characterization
• Methods for handling Deadlock
• Deadlock Prevention
• Deadlock Avoidance
• Deadlock Detection
• Recovery from Deadlock
Operating Systems
System Model
• A system contains a finite number of resource types (R1, R2, . . .,
Rm) to be distributed among competing processes
• The resource types are partitioned in to several types (e.g files,
I/O devices, CPU cycles, memory), each having a number of
identical instances
• A process must request a resource before using it and release it
after making use of it. Each process utilizes a resource as follows:
• Request
• A process requests for an instance of a resource type. If
the resource is free, the request will be granted. Otherwise
the process should wait until it acquires the resource
• Use
• The process uses the resource for its operations
• Release
• The process releases the resource
April 30, 2025 3
Operating Systems
Deadlock
• Deadlock can be defined as a permanent blocking of
processes that either compete for system resources or
communicate with each other
• The set of blocked processes each hold a resource and wait
to acquire a resource held by another process in the set
• All deadlocks involve conflicting needs for resources by two
or more processes
• A set of processes or threads are deadlocked when each
process or thread is waiting for a resource to be freed which
is controlled by another process
Operating Systems
Traffic gridlock is an everyday
example of a deadlock situation.
When two trains approach each other at a crossing, both
shall come to a full stop and neither shall start up again
until the other has gone
Operating Systems
Deadlock characterization
Deadlock can arise if four conditions hold
simultaneously in a system:
1. Mutual exclusion: only one process at a time can use a
resource. No process can access a resource unit that has been
allocated to another process
2. Hold and wait: a process holding at least one resource is
waiting to acquire additional resources held by other processes.
3. No preemption: a resource can be released only voluntarily
by the process holding it, after that process has completed its
task.
4. 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
• 2025
April 30, P n is waiting for a resource that is held by P0 6
Operating Systems
Resource Allocation Graph(RAG)
• Deadlock can be better described by using a directed
graph called resource allocation graph
• The graph consists of 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 P1 Rj
• Assignment edge: directed edge Rj Pi
• If a Resource Allocation Graph contains a cycle, then a
deadlock may exist
April 30, 2025 7
Operating Systems
Resource Allocation Graph /RAG
• (cont.)
Diagrammatically, processes and resources in RAG are
represented as follow:
• Process p
• Pi requests instance of Rj Pi Rj
• Pi is holding an instance of RP
j i
Rj
Operating Systems
Example of Resource Allocation
Graph
Operating Systems
Graph With A Cycle But No
Deadlock
Basic Facts
• If graph contains no cycles then
there’s no deadlock
Operating Systems
Example of Resource Allocation
Graph • The RAG shown here tells us about the
following situation in a system:
• P= {P1, P2, P3}
• R= {R1,R2, R3, R4}
• E ={P1R1,P2R3, R1P2, R2P1,R3P3}
• P3 is holding an instance of R3
April 30, 2025 11
Operating Systems
Example of Resource Allocation
Graph
• Resource Allocation Graph With a Deadlock
Operating Systems
Methods for handling
Deadlocks
Deadlock problems can be handled in one of the following 3
ways:
Operating Systems
Deadlock Prevention (contd.)
1. Mutual Exclusion: This is not required for sharable resources;
however to prevent a system from deadlock, the mutual exclusion
condition must hold for non-sharable resources
Operating Systems
Deadlock Prevention (contd.)
3. No Preemption
• If a process holding certain resources is denied further request,
that process must release its original resources allocated to it
• If a process requests a resource allocated to another process
waiting for some additional resources, and the requested
resource is not being used, then the resource will be
preempted from the waiting process and allocated to
the requesting process
• 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
• This approach is practical to resources whose state can easily
saved and retrieved easily
April 30, 2025 16
Operating Systems
Deadlock Prevention
(contd.)
4. Circular Wait
• A linear ordering of all resource types is defined and each
process requests resources in an increasing order of
enumeration
Operating Systems
Deadlock Avoidance
• Deadlock avoidance scheme requires each process to declare
the maximum number of resources of each type that it
may need in advance
Operating Systems
Deadlock avoidance: Safe State
Basic Facts
• If a system is in a safe
state, then there are no
deadlocks.
• If a system is in unsafe
state, then there is a
possibility of deadlock.
• Deadlock avoidance
method ensures that a
system will never enter an
unsafe
April 30, 2025
state 19
Operating Systems
Deadlock Avoidance Algorithms
• Based on the concept of safe state, we can define
algorithms that ensures the system will never
deadlock.
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Resource-Allocation Graph Scheme
• A new type of edge (Claim edge), in addition to the request and
assignment edge is introduced.
• Claim edge Pi Rj indicates that process Pi may request resource Rj at
some point in the future. The edge resembles a request edge but is
represented by a dashed line in the graph
• Claim edge is converted to request edge when a process requests a
resource
• Request edge is 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
• If no cycle exists in the allocation, then system is in safe state
otherwise the system is in unsafe state
• Resources must be claimed a priori in the system
• i.e, before a process starts executing, all its claim edge must show up
in the allocation graph
April 30, 2025 21
Operating Systems
Deadlock Avoidance Algorithms
(contd.)
Resource-Allocation
• Suppose Graph
that process Pi requests Algorithm
a resource Rj
Operating Systems
Deadlock Avoidance Algorithms
(contd.)
Resource-Allocation Graph algorithm
Operating Systems