SlideShare a Scribd company logo
1 of 45
Operating Systems: SEng 3207
ASTU
Department of CSE
January 4, 2023 1
Operating Systems
Lecture 6: Deadlocks
Chapter Two
Process Management
Deadlock
• System Model
• Deadlock Characterization
• Methods for handling Deadlock
• Deadlock Prevention
• Deadlock Avoidance
• Deadlock Detection
• Recovery from Deadlock
January 4, 2023 2
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
January 4, 2023 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 is deadlocked when each process or
thread is waiting for a resource to be freed which is controlled by
another process
• Example 1
• Suppose a system has 2 disk drives
• If P1 is holding disk 2 and P2 is holding disk 1 and if P1 requests
for disk 1 and P2 requests for disk 2, then deadlock occurs
January 4, 2023 4
Operating Systems
Traffic gridlock is an everyday
example of a deadlock situation.
January 4, 2023 5
Operating Systems
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
Deadlock characterization
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
• Pn is waiting for a resource that is held by P0
January 4, 2023 6
Operating Systems
Deadlock can arise if four conditions hold simultaneously in
a system:
Resource Allocation Graph
January 4, 2023 7
Operating Systems
• 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
Resource Allocation Graph /RAG (cont.)
• Process
• Resource Type with 4 instances
• Pi requests instance of Rj
• Pi is holding an instance of Rj
January 4, 2023 8
Operating Systems
p
Pi Rj
Pi Rj
• Diagrammatically, processes and resources in RAG are represented as follow:
Example of Resource Allocation Graph
January 4, 2023 9
Operating Systems
Graph With A Cycle But No Deadlock
January 4, 2023 10
Operating Systems
Basic Facts
• If graph contains no cycles then there’s no
deadlock
• If however a graph contains a cycle then
there are two possible situations:
• if there is only one instance per
resource type, then deadlock can occur
• if there are several instances per
resource type, there’s a possibility of no
deadlock
Example of Resource Allocation Graph
January 4, 2023 11
Operating Systems
• The RAG shown here tells us about the following
situation in a system:
• P= {P1, P2, P3}
• R= {R1,R2, R3, R4}
•E ={P1R1,P2R3, R1P2, R2P1,R3P3}
• The process states
• P1 is holding an instance of R2 and is waiting
for an instance of R1
• P2 is holding an instance of R1 and instance
of R2, and is waiting for an instance of R3
• P3 is holding an instance of R3
Example of Resource Allocation Graph
January 4, 2023 12
Operating Systems
• Resource Allocation Graph With a Deadlock
• There are two cycles in this graph
• P1R1P2R3P3R2P1
• P2R3P3R2P2
• Processes P1, P2 and P3 are deadlocked:
• P1 is waiting for P2 to release R1
• P2 is waiting for R3 held by P3 and
• P3 is waiting for either P1 or P2 to
release R2
Methods for handling Deadlocks
• Deadlock problems can be handled in one of the following 3 ways:
1. Using a protocol that prevents or avoids deadlock by ensuring
that a system will never enter a deadlock state deadlock
prevention and deadlock avoidance scheme are used
2. Allow the system to enter a deadlock state and then recover
3. Ignore the problem and pretend that deadlocks never occur in
the system; used by most operating systems, including UNIX
January 4, 2023 13
Operating Systems
Deadlock Prevention
• By ensuring at least one of the necessary conditions for deadlock will not
hold, deadlock can be prevented.
 This is mainly done by restraining how requests for resources can be
made
• Deadlock prevention methods fall into two classes:
• An indirect method of deadlock prevention prevents the occurrence
of one of the three necessary conditions listed previously (items 1
through 3)
• A direct method of deadlock prevention prevents the occurrence of a
circular wait (item 4)
January 4, 2023 14
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
2. Hold and Wait – in order to prevent the occurrence of this condition in a
system, we must guarantee that whenever a process requests a resource, it does
not hold any other resources. Two protocols are used to implement this:
1. Require a process to request and be allocated all its resources before it
begins execution or
2. Allow a process to request resources only when the process has none
• Both protocols have two main disadvantages:
o Since resources may be allocated but not used for a long period, resource
utilization will be low
o A process that needs several popular resources has to wait indefinitely
because one of the resources it needs is allocated to another process. Hence
starvation is possible.
January 4, 2023 15
Operating Systems
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
January 4, 2023 16
Operating Systems
Deadlock Prevention (contd.)
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
• So, if a process initially is allocated instances of resource type R,
then it can subsequently request instances of resources types
following R in the ordering
January 4, 2023 17
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
• Having this full information about the sequence of requests and
release of resources, we can know whether or not the system is
entering unsafe state
• 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
• A state is safe if the system can allocate resources to each process
in some order avoiding a deadlock.
• A deadlock state is an unsafe state.
January 4, 2023 18
Operating Systems
• 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 state
January 4, 2023 19
Operating Systems
Deadlock avoidance: Safe State
Basic Facts
Deadlock Avoidance Algorithms
• Based on the concept of safe state, we can define algorithms
that ensures the system will never deadlock.
• If there is a single instance of a resource type,
• Use a resource-allocation graph
• If there are multiple instances of a resource type,
• Use the Dijkstra’s banker’s algorithm
January 4, 2023 20
Operating Systems
• 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
January 4, 2023 21
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Resource-Allocation Graph Scheme
Deadlock Avoidance Algorithms (contd.)
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
January 4, 2023 22
Operating Systems
• If we suppose P2 requests R2. We can not
allocate it since it will create a cycle.
January 4, 2023 23
Operating Systems
Unsafe State Resource-Allocation
Deadlock Avoidance Algorithms (contd.)
Resource-Allocation Graph algorithm
• If P1 requests for R2 and P2 requests
for R1, then deadlock will occur
Deadlock Avoidance Algorithms (contd.)
Banker’s Algorithm
• This algorithm is used when there are multiple instances of
resources
• When a process enters a system, it must declare the maximum
number of each instance of resource types it may need
• The number however may not exceed the total number of
resource types in the system
• 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
January 4, 2023 24
Operating Systems
• The following data structures are used in the 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]
January 4, 2023 25
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Banker’s Algorithm
January 4, 2023 26
Operating Systems
The algorithm is as follows:
1.Process pi makes requests for resources. Let Request(i) be the
corresponding request vector. So, if pi wants k instances of resource type rj,
then Request(i)[j] = k
2.If Request(i) !≤ Need(i), there is an error.
3.Otherwise, if Request(i) !≤ Available, then pi must wait
4.Otherwise, Modify the data structures as follows :
• Available = Available - Request(i)
• Allocation(i) = Allocation(i) + Request(i)
• Need(i) = Need(i) - Request(i)
5.Check whether the resulting state is safe. (Use the safety algorithm
presented in the next slide)
6.If the state is safe, do the allocation. Otherwise, pi must wait for
Request(i)
Deadlock Avoidance Algorithms (contd.)
Banker’s Algorithm
• It is used to identify whether or not a system is in a safe state. The
algorithm can be described as follow:
1. Let Work and Finish be vectors of length m and n, respectively.
Initialize:
Work = Available
Finish [i] = false for i = 0, 1, …, n- 1.
2. Find and i such that both:
(a) Finish [i] = false
(b) Needi  Work
If no such i exists, go to step 4.
3. Work = Work + Allocationi
Finish [i] = true
go to step 2.
4. If Finish [i] == true for all i, then the system is in a safe state.
January 4, 2023 27
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Safety Algorithm
Resource-Request Algorithm
• This algorithm determines if a request can be safely granted. The algorithm is
described below
• If Request = 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 – Request;
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
January 4, 2023 28
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Examples of Banker’s algorithm:
• Assume a system has
• 5 processes P0 through P4;
• 3 resource types:
A (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
January 4, 2023 29
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Banker’s Algorithm
Example (contd.)
• The content of the matrix Need is defined to be Max – Allocation
Need
A B C
P0 7 4 3
P1 1 2 2
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
January 4, 2023 30
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Banker’s Algorithm
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 A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 1 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1
• 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?
January 4, 2023 31
Operating Systems
Deadlock Avoidance Algorithms (contd.)
Banker’s Algorithm
January 4, 2023 32
Operating Systems
Deadlock Detection
• If a system does not implement either deadlock prevention
or avoidance, deadlock may occur. Hence the system must
provide
• A deadlock detection algorithm that examines the state of
the system if there is an occurrence of deadlock
• An algorithm to recover from the deadlock
January 4, 2023 33
Operating Systems
Deadlock Detection:
1. Single Instance of Each Resource Type
• If there are single instances of each resources in a system, then an
algorithm that uses a type of resource allocation graph called wait-for
graph will be used
• The wait-for graph is obtained from the resource allocation graph by
removing the resource nodes and collapsing the corresponding edges
• If a process Pi points to Pj I in a wait-for graph, it indicates that A Pi is
waiting for Pj to release a resource Pj needs
• To detect deadlocks, the system needs to periodically invoke an algorithm
that searches for a cycle in the graph. If there is a cycle, there exists a
deadlock.
• An algorithm to detect a cycle in a graph requires an order of n2
operations, where n is the number of vertices in the graph.
January 4, 2023 34
Operating Systems
January 4, 2023 35
Operating Systems
Resource-Allocation Graph Corresponding wait-for graph
Deadlock Detection:
1. Single Instance of Each Resource Type (contd.)
• When there are multiple instances of a resource type in a resource
allocation system, the wait-for graph is not applicable. Hence, a deadlock
detection algorithm is used
• The algorithm uses several data structures similar to the ones in banker’s
algorithm
• Available: A vector of length m indicates the number of available
resources of each type.
• Allocation: An n x m matrix defines the number of resources of each
type currently allocated to each process.
• Request: An n x m matrix indicates the current request of each
process. If Request [ij] = k, then process Pi is requesting k more
instances of resource type. Rj.
January 4, 2023 36
Operating Systems
Deadlock Detection:
2. Several Instances of a Resource Type
Deadlock Detection Algorithm
1. Let Work and Finish be vectors of length m and n, respectively Initialize:
(a) Work = Available
(b) For i = 1,2, …, n, if Allocationi  0, then
Finish[i] = false;otherwise, Finish[i] = true.
2. Find an index i such that both:
(a) Finish[i] == false
(b) Requesti  Work
If no such i exists, go to step 4.
3. Work = Work + Allocationi
Finish[i] = true
go to step 2
4. If Finish[i] == false, for some i, 1  i  n, then the system is in deadlock
state. Moreover, if Finish[i] == false, then Pi is deadlocked.
January 4, 2023 37
Operating Systems
Deadlock Detection Algorithm (contd.)
Example
• Five processes P0 through P4; three resource types
• A (7 instances), B (2 instances), and C (6 instances)
• Snapshot at time T0:
Allocation Request Available
A B C A B C A B C
P0 0 1 0 0 0 0 0 0 0
P1 2 0 0 2 0 2
P2 3 0 3 0 0 0
P3 2 1 1 1 0 0
P4 0 0 2 0 0 2
• Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i
January 4, 2023 38
Operating Systems
• P2 requests an additional instance of type C.
Request
A B C
P0 0 0 0
P1 2 0 1
P2 0 0 1
P3 1 0 0
P4 0 0 2
• State of system?
• Can reclaim resources held by process P0, but insufficient resources to
fulfill other processes; requests.
• Deadlock exists, consisting of processes P1, P2, P3, and P4.
January 4, 2023 39
Operating Systems
Deadlock Detection Algorithm (cont.)
Example
Deadlock Detection Algorithm Usage
• When, and how often, to invoke the detection algorithm depends on:
1. How often a deadlock is likely to occur?
2. How many processes will be affected (need to be rolled back)?
• If deadlock occurs frequently, then the algorithm is invoked frequently,
o Resources allocated to deadlocked processes will be idle until the deadlock can
be broken
o The number of processes in the deadlock may increase
• If the algorithm is invoked for every resource request not granted, it will
incur a computation time overhead on the system
• If detection algorithm is invoked arbitrarily, there may be many cycles in the
resource graph and so we would not be able to tell which of the many deadlocked
processes “caused” the deadlock
• A less expensive alternative is to invoke the algorithm at a less frequent time
• (e.g once per hour)
January 4, 2023 40
Operating Systems
• Once a deadlock has been detected, recovery strategy is needed. There are two
possible recovery approaches:
• Process termination
• Resource preemption
Process Termination
• Abort all deadlocked processes
• Abort one process at a time until the deadlock cycle is eliminated
• In which order should we choose a process to abort? Chose the process with
• Least amount of processor time consumed so far
• Least amount of output produced so far
• Most estimated time remaining
• Least total resources allocated so far
• Lowest priority
January 4, 2023 41
Operating Systems
Recovery from Deadlock
Recovery from Deadlock
Resource Preemption
• In this recovery strategy, we successively preempt resources and allocate them to
another process until the deadlock is broken
• While implementing this strategy, there are three issues to be considered
• Selecting a victim – which resources and process should be selected to
minimize cost just like in process termination. The cost factors may include
parameters like the number of resources a deadlocked process is holding,
number of resources it used so far
• Rollback – if a resource is preempted from a process, then it can not continue
its normal execution
• The process must be rolled back to some safe state and started
• Starvation – same process may always be picked as victim several times. As
a result, starvation may occur. The best solution to this problem is to only allow
a process to be picked as a vicitim for a limited finite number of times. This can
be done by including the number of rollback in the cost factor
January 4, 2023 42
Operating Systems
January 4, 2023 43
Operating Systems
a. b.
c.
Exercises
1. For each of the resource allocation graphs below, determine whether there is a
deadlock or not. Give explanations for each of your answers.
d.
Exercises(cont…)
January 4, 2023 44
Operating Systems
2. There are four processes in a system and they are going to share nine tape
drives. Their current and maximum number of allocation numbers are as follows :
a. Is the system in a safe state? Why
or why not?
b. Is the system deadlocked? Why or
why not?
3. Explain if the system in the given
resource allocation graph here is
deadlocked. If not, give an
execution order of the processes
which successfully terminates
Process Allocation Maximum
P1 3 6
P2 1 2
P3 4 9
P4 0 2
4. Given the resource allocation graph below:
January 4, 2023 45
Operating Systems
a. Apply the deadlock detection algorithm
and either indicate why the system is
deadlocked, or specify a safe allocation
sequence
b. If the process P2 also request 2
instances of resource r1, does the
system enter a deadlock? Why?
5. Consider the following snapshot of a system:
• Use the banker’s algorithm to answer the following
questions:
a. What is the content of the matrix Need?
b. Is the system in a safe state?
c. If a request from process P1 arrives for
(0,4,2,0), can the request be granted
immediately?
Exercises(cont…)

More Related Content

Similar to Lecture 6- Deadlocks (1) (1).pptx

Deadlock- System model, resource types, deadlock problem, deadlock characteri...
Deadlock- System model, resource types, deadlock problem, deadlock characteri...Deadlock- System model, resource types, deadlock problem, deadlock characteri...
Deadlock- System model, resource types, deadlock problem, deadlock characteri...Wakil Kumar
 
4.3 Deadlock [Autosaved].pptx
4.3 Deadlock [Autosaved].pptx4.3 Deadlock [Autosaved].pptx
4.3 Deadlock [Autosaved].pptxDishaDwivedi2
 
Unit 3 part 2(DEADLOCK)
Unit 3 part 2(DEADLOCK)Unit 3 part 2(DEADLOCK)
Unit 3 part 2(DEADLOCK)WajeehaBaig
 
6. Deadlock_1640227623705.pptx
6. Deadlock_1640227623705.pptx6. Deadlock_1640227623705.pptx
6. Deadlock_1640227623705.pptxshrijanasharma3
 
3.6 Deadlock-operating system unit 3.pptx
3.6 Deadlock-operating system unit 3.pptx3.6 Deadlock-operating system unit 3.pptx
3.6 Deadlock-operating system unit 3.pptxsvulasal
 
deadlocks.pptx
deadlocks.pptxdeadlocks.pptx
deadlocks.pptxJOHNZHOU52
 
Module 3 Deadlocks.pptx
Module 3 Deadlocks.pptxModule 3 Deadlocks.pptx
Module 3 Deadlocks.pptxshreesha16
 
Process Synchronization And Deadlocks
Process Synchronization And DeadlocksProcess Synchronization And Deadlocks
Process Synchronization And Deadlockstech2click
 
Mch7 deadlock
Mch7 deadlockMch7 deadlock
Mch7 deadlockwahab13
 
Deadlock and memory management -- Operating System
Deadlock and memory management -- Operating SystemDeadlock and memory management -- Operating System
Deadlock and memory management -- Operating SystemEktaVaswani2
 

Similar to Lecture 6- Deadlocks (1) (1).pptx (20)

Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Deadlock- System model, resource types, deadlock problem, deadlock characteri...
Deadlock- System model, resource types, deadlock problem, deadlock characteri...Deadlock- System model, resource types, deadlock problem, deadlock characteri...
Deadlock- System model, resource types, deadlock problem, deadlock characteri...
 
4.3 Deadlock [Autosaved].pptx
4.3 Deadlock [Autosaved].pptx4.3 Deadlock [Autosaved].pptx
4.3 Deadlock [Autosaved].pptx
 
chapter06-new.pptx
chapter06-new.pptxchapter06-new.pptx
chapter06-new.pptx
 
Unit 3 part 2(DEADLOCK)
Unit 3 part 2(DEADLOCK)Unit 3 part 2(DEADLOCK)
Unit 3 part 2(DEADLOCK)
 
Deadlock
DeadlockDeadlock
Deadlock
 
Deadlock
DeadlockDeadlock
Deadlock
 
Module3
Module3Module3
Module3
 
6. Deadlock_1640227623705.pptx
6. Deadlock_1640227623705.pptx6. Deadlock_1640227623705.pptx
6. Deadlock_1640227623705.pptx
 
Deadlock (1).ppt
Deadlock (1).pptDeadlock (1).ppt
Deadlock (1).ppt
 
Ch07 deadlocks
Ch07 deadlocksCh07 deadlocks
Ch07 deadlocks
 
Deadlock.ppt
Deadlock.pptDeadlock.ppt
Deadlock.ppt
 
Gp1242 007 oer ppt
Gp1242 007 oer pptGp1242 007 oer ppt
Gp1242 007 oer ppt
 
3.6 Deadlock-operating system unit 3.pptx
3.6 Deadlock-operating system unit 3.pptx3.6 Deadlock-operating system unit 3.pptx
3.6 Deadlock-operating system unit 3.pptx
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
deadlocks.pptx
deadlocks.pptxdeadlocks.pptx
deadlocks.pptx
 
Module 3 Deadlocks.pptx
Module 3 Deadlocks.pptxModule 3 Deadlocks.pptx
Module 3 Deadlocks.pptx
 
Process Synchronization And Deadlocks
Process Synchronization And DeadlocksProcess Synchronization And Deadlocks
Process Synchronization And Deadlocks
 
Mch7 deadlock
Mch7 deadlockMch7 deadlock
Mch7 deadlock
 
Deadlock and memory management -- Operating System
Deadlock and memory management -- Operating SystemDeadlock and memory management -- Operating System
Deadlock and memory management -- Operating System
 

More from Amanuelmergia

Lecture 4 - Process Scheduling (1).pptx
Lecture 4 - Process Scheduling (1).pptxLecture 4 - Process Scheduling (1).pptx
Lecture 4 - Process Scheduling (1).pptxAmanuelmergia
 
Operating Systems chap 2_updated2 (1).pptx
Operating Systems chap 2_updated2 (1).pptxOperating Systems chap 2_updated2 (1).pptx
Operating Systems chap 2_updated2 (1).pptxAmanuelmergia
 
Operating Systems chap 2_updated2.pptx
Operating Systems chap 2_updated2.pptxOperating Systems chap 2_updated2.pptx
Operating Systems chap 2_updated2.pptxAmanuelmergia
 
Lecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptxLecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptxAmanuelmergia
 
Lecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdfLecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdfAmanuelmergia
 
OS course Outilne 2021.doc
OS course Outilne 2021.docOS course Outilne 2021.doc
OS course Outilne 2021.docAmanuelmergia
 
Lecture 3- Threads.pdf
Lecture 3- Threads.pdfLecture 3- Threads.pdf
Lecture 3- Threads.pdfAmanuelmergia
 
Lecture 2- Processes.pdf
Lecture 2- Processes.pdfLecture 2- Processes.pdf
Lecture 2- Processes.pdfAmanuelmergia
 
Lecture 1- Introduction to Operating Systems.pdf
Lecture 1- Introduction to Operating Systems.pdfLecture 1- Introduction to Operating Systems.pdf
Lecture 1- Introduction to Operating Systems.pdfAmanuelmergia
 
Lecture 4 - Process Scheduling.pptx
Lecture 4 - Process Scheduling.pptxLecture 4 - Process Scheduling.pptx
Lecture 4 - Process Scheduling.pptxAmanuelmergia
 
Lecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxLecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxAmanuelmergia
 
Lecture 6- Deadlocks.pptx
Lecture 6- Deadlocks.pptxLecture 6- Deadlocks.pptx
Lecture 6- Deadlocks.pptxAmanuelmergia
 
Lecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptxLecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptxAmanuelmergia
 
Lecture 3- Threads (1).pptx
Lecture 3- Threads (1).pptxLecture 3- Threads (1).pptx
Lecture 3- Threads (1).pptxAmanuelmergia
 

More from Amanuelmergia (14)

Lecture 4 - Process Scheduling (1).pptx
Lecture 4 - Process Scheduling (1).pptxLecture 4 - Process Scheduling (1).pptx
Lecture 4 - Process Scheduling (1).pptx
 
Operating Systems chap 2_updated2 (1).pptx
Operating Systems chap 2_updated2 (1).pptxOperating Systems chap 2_updated2 (1).pptx
Operating Systems chap 2_updated2 (1).pptx
 
Operating Systems chap 2_updated2.pptx
Operating Systems chap 2_updated2.pptxOperating Systems chap 2_updated2.pptx
Operating Systems chap 2_updated2.pptx
 
Lecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptxLecture-7 Main Memroy.pptx
Lecture-7 Main Memroy.pptx
 
Lecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdfLecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdf
 
OS course Outilne 2021.doc
OS course Outilne 2021.docOS course Outilne 2021.doc
OS course Outilne 2021.doc
 
Lecture 3- Threads.pdf
Lecture 3- Threads.pdfLecture 3- Threads.pdf
Lecture 3- Threads.pdf
 
Lecture 2- Processes.pdf
Lecture 2- Processes.pdfLecture 2- Processes.pdf
Lecture 2- Processes.pdf
 
Lecture 1- Introduction to Operating Systems.pdf
Lecture 1- Introduction to Operating Systems.pdfLecture 1- Introduction to Operating Systems.pdf
Lecture 1- Introduction to Operating Systems.pdf
 
Lecture 4 - Process Scheduling.pptx
Lecture 4 - Process Scheduling.pptxLecture 4 - Process Scheduling.pptx
Lecture 4 - Process Scheduling.pptx
 
Lecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxLecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptx
 
Lecture 6- Deadlocks.pptx
Lecture 6- Deadlocks.pptxLecture 6- Deadlocks.pptx
Lecture 6- Deadlocks.pptx
 
Lecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptxLecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptx
 
Lecture 3- Threads (1).pptx
Lecture 3- Threads (1).pptxLecture 3- Threads (1).pptx
Lecture 3- Threads (1).pptx
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Lecture 6- Deadlocks (1) (1).pptx

  • 1. Operating Systems: SEng 3207 ASTU Department of CSE January 4, 2023 1 Operating Systems Lecture 6: Deadlocks Chapter Two Process Management
  • 2. Deadlock • System Model • Deadlock Characterization • Methods for handling Deadlock • Deadlock Prevention • Deadlock Avoidance • Deadlock Detection • Recovery from Deadlock January 4, 2023 2 Operating Systems
  • 3. 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 January 4, 2023 3 Operating Systems
  • 4. 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 is deadlocked when each process or thread is waiting for a resource to be freed which is controlled by another process • Example 1 • Suppose a system has 2 disk drives • If P1 is holding disk 2 and P2 is holding disk 1 and if P1 requests for disk 1 and P2 requests for disk 2, then deadlock occurs January 4, 2023 4 Operating Systems
  • 5. Traffic gridlock is an everyday example of a deadlock situation. January 4, 2023 5 Operating Systems 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
  • 6. Deadlock characterization 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 • Pn is waiting for a resource that is held by P0 January 4, 2023 6 Operating Systems Deadlock can arise if four conditions hold simultaneously in a system:
  • 7. Resource Allocation Graph January 4, 2023 7 Operating Systems • 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
  • 8. Resource Allocation Graph /RAG (cont.) • Process • Resource Type with 4 instances • Pi requests instance of Rj • Pi is holding an instance of Rj January 4, 2023 8 Operating Systems p Pi Rj Pi Rj • Diagrammatically, processes and resources in RAG are represented as follow:
  • 9. Example of Resource Allocation Graph January 4, 2023 9 Operating Systems
  • 10. Graph With A Cycle But No Deadlock January 4, 2023 10 Operating Systems Basic Facts • If graph contains no cycles then there’s no deadlock • If however a graph contains a cycle then there are two possible situations: • if there is only one instance per resource type, then deadlock can occur • if there are several instances per resource type, there’s a possibility of no deadlock
  • 11. Example of Resource Allocation Graph January 4, 2023 11 Operating Systems • The RAG shown here tells us about the following situation in a system: • P= {P1, P2, P3} • R= {R1,R2, R3, R4} •E ={P1R1,P2R3, R1P2, R2P1,R3P3} • The process states • P1 is holding an instance of R2 and is waiting for an instance of R1 • P2 is holding an instance of R1 and instance of R2, and is waiting for an instance of R3 • P3 is holding an instance of R3
  • 12. Example of Resource Allocation Graph January 4, 2023 12 Operating Systems • Resource Allocation Graph With a Deadlock • There are two cycles in this graph • P1R1P2R3P3R2P1 • P2R3P3R2P2 • Processes P1, P2 and P3 are deadlocked: • P1 is waiting for P2 to release R1 • P2 is waiting for R3 held by P3 and • P3 is waiting for either P1 or P2 to release R2
  • 13. Methods for handling Deadlocks • Deadlock problems can be handled in one of the following 3 ways: 1. Using a protocol that prevents or avoids deadlock by ensuring that a system will never enter a deadlock state deadlock prevention and deadlock avoidance scheme are used 2. Allow the system to enter a deadlock state and then recover 3. Ignore the problem and pretend that deadlocks never occur in the system; used by most operating systems, including UNIX January 4, 2023 13 Operating Systems
  • 14. Deadlock Prevention • By ensuring at least one of the necessary conditions for deadlock will not hold, deadlock can be prevented.  This is mainly done by restraining how requests for resources can be made • Deadlock prevention methods fall into two classes: • An indirect method of deadlock prevention prevents the occurrence of one of the three necessary conditions listed previously (items 1 through 3) • A direct method of deadlock prevention prevents the occurrence of a circular wait (item 4) January 4, 2023 14 Operating Systems
  • 15. 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 2. Hold and Wait – in order to prevent the occurrence of this condition in a system, we must guarantee that whenever a process requests a resource, it does not hold any other resources. Two protocols are used to implement this: 1. Require a process to request and be allocated all its resources before it begins execution or 2. Allow a process to request resources only when the process has none • Both protocols have two main disadvantages: o Since resources may be allocated but not used for a long period, resource utilization will be low o A process that needs several popular resources has to wait indefinitely because one of the resources it needs is allocated to another process. Hence starvation is possible. January 4, 2023 15 Operating Systems
  • 16. 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 January 4, 2023 16 Operating Systems Deadlock Prevention (contd.)
  • 17. 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 • So, if a process initially is allocated instances of resource type R, then it can subsequently request instances of resources types following R in the ordering January 4, 2023 17 Operating Systems
  • 18. Deadlock Avoidance • Deadlock avoidance scheme requires each process to declare the maximum number of resources of each type that it may need in advance • Having this full information about the sequence of requests and release of resources, we can know whether or not the system is entering unsafe state • 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 • A state is safe if the system can allocate resources to each process in some order avoiding a deadlock. • A deadlock state is an unsafe state. January 4, 2023 18 Operating Systems
  • 19. • 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 state January 4, 2023 19 Operating Systems Deadlock avoidance: Safe State Basic Facts
  • 20. Deadlock Avoidance Algorithms • Based on the concept of safe state, we can define algorithms that ensures the system will never deadlock. • If there is a single instance of a resource type, • Use a resource-allocation graph • If there are multiple instances of a resource type, • Use the Dijkstra’s banker’s algorithm January 4, 2023 20 Operating Systems
  • 21. • 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 January 4, 2023 21 Operating Systems Deadlock Avoidance Algorithms (contd.) Resource-Allocation Graph Scheme
  • 22. Deadlock Avoidance Algorithms (contd.) 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 January 4, 2023 22 Operating Systems • If we suppose P2 requests R2. We can not allocate it since it will create a cycle.
  • 23. January 4, 2023 23 Operating Systems Unsafe State Resource-Allocation Deadlock Avoidance Algorithms (contd.) Resource-Allocation Graph algorithm • If P1 requests for R2 and P2 requests for R1, then deadlock will occur
  • 24. Deadlock Avoidance Algorithms (contd.) Banker’s Algorithm • This algorithm is used when there are multiple instances of resources • When a process enters a system, it must declare the maximum number of each instance of resource types it may need • The number however may not exceed the total number of resource types in the system • 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 January 4, 2023 24 Operating Systems
  • 25. • The following data structures are used in the 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] January 4, 2023 25 Operating Systems Deadlock Avoidance Algorithms (contd.) Banker’s Algorithm
  • 26. January 4, 2023 26 Operating Systems The algorithm is as follows: 1.Process pi makes requests for resources. Let Request(i) be the corresponding request vector. So, if pi wants k instances of resource type rj, then Request(i)[j] = k 2.If Request(i) !≤ Need(i), there is an error. 3.Otherwise, if Request(i) !≤ Available, then pi must wait 4.Otherwise, Modify the data structures as follows : • Available = Available - Request(i) • Allocation(i) = Allocation(i) + Request(i) • Need(i) = Need(i) - Request(i) 5.Check whether the resulting state is safe. (Use the safety algorithm presented in the next slide) 6.If the state is safe, do the allocation. Otherwise, pi must wait for Request(i) Deadlock Avoidance Algorithms (contd.) Banker’s Algorithm
  • 27. • It is used to identify whether or not a system is in a safe state. The algorithm can be described as follow: 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i = 0, 1, …, n- 1. 2. Find and i such that both: (a) Finish [i] = false (b) Needi  Work If no such i exists, go to step 4. 3. Work = Work + Allocationi Finish [i] = true go to step 2. 4. If Finish [i] == true for all i, then the system is in a safe state. January 4, 2023 27 Operating Systems Deadlock Avoidance Algorithms (contd.) Safety Algorithm
  • 28. Resource-Request Algorithm • This algorithm determines if a request can be safely granted. The algorithm is described below • If Request = 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 – Request; 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 January 4, 2023 28 Operating Systems Deadlock Avoidance Algorithms (contd.)
  • 29. Examples of Banker’s algorithm: • Assume a system has • 5 processes P0 through P4; • 3 resource types: A (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 January 4, 2023 29 Operating Systems Deadlock Avoidance Algorithms (contd.) Banker’s Algorithm
  • 30. Example (contd.) • The content of the matrix Need is defined to be Max – Allocation Need A B C P0 7 4 3 P1 1 2 2 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 January 4, 2023 30 Operating Systems Deadlock Avoidance Algorithms (contd.) Banker’s Algorithm
  • 31. 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 A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 • 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? January 4, 2023 31 Operating Systems Deadlock Avoidance Algorithms (contd.) Banker’s Algorithm
  • 32. January 4, 2023 32 Operating Systems
  • 33. Deadlock Detection • If a system does not implement either deadlock prevention or avoidance, deadlock may occur. Hence the system must provide • A deadlock detection algorithm that examines the state of the system if there is an occurrence of deadlock • An algorithm to recover from the deadlock January 4, 2023 33 Operating Systems
  • 34. Deadlock Detection: 1. Single Instance of Each Resource Type • If there are single instances of each resources in a system, then an algorithm that uses a type of resource allocation graph called wait-for graph will be used • The wait-for graph is obtained from the resource allocation graph by removing the resource nodes and collapsing the corresponding edges • If a process Pi points to Pj I in a wait-for graph, it indicates that A Pi is waiting for Pj to release a resource Pj needs • To detect deadlocks, the system needs to periodically invoke an algorithm that searches for a cycle in the graph. If there is a cycle, there exists a deadlock. • An algorithm to detect a cycle in a graph requires an order of n2 operations, where n is the number of vertices in the graph. January 4, 2023 34 Operating Systems
  • 35. January 4, 2023 35 Operating Systems Resource-Allocation Graph Corresponding wait-for graph Deadlock Detection: 1. Single Instance of Each Resource Type (contd.)
  • 36. • When there are multiple instances of a resource type in a resource allocation system, the wait-for graph is not applicable. Hence, a deadlock detection algorithm is used • The algorithm uses several data structures similar to the ones in banker’s algorithm • Available: A vector of length m indicates the number of available resources of each type. • Allocation: An n x m matrix defines the number of resources of each type currently allocated to each process. • Request: An n x m matrix indicates the current request of each process. If Request [ij] = k, then process Pi is requesting k more instances of resource type. Rj. January 4, 2023 36 Operating Systems Deadlock Detection: 2. Several Instances of a Resource Type
  • 37. Deadlock Detection Algorithm 1. Let Work and Finish be vectors of length m and n, respectively Initialize: (a) Work = Available (b) For i = 1,2, …, n, if Allocationi  0, then Finish[i] = false;otherwise, Finish[i] = true. 2. Find an index i such that both: (a) Finish[i] == false (b) Requesti  Work If no such i exists, go to step 4. 3. Work = Work + Allocationi Finish[i] = true go to step 2 4. If Finish[i] == false, for some i, 1  i  n, then the system is in deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked. January 4, 2023 37 Operating Systems
  • 38. Deadlock Detection Algorithm (contd.) Example • Five processes P0 through P4; three resource types • A (7 instances), B (2 instances), and C (6 instances) • Snapshot at time T0: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 • Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i January 4, 2023 38 Operating Systems
  • 39. • P2 requests an additional instance of type C. Request A B C P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 • State of system? • Can reclaim resources held by process P0, but insufficient resources to fulfill other processes; requests. • Deadlock exists, consisting of processes P1, P2, P3, and P4. January 4, 2023 39 Operating Systems Deadlock Detection Algorithm (cont.) Example
  • 40. Deadlock Detection Algorithm Usage • When, and how often, to invoke the detection algorithm depends on: 1. How often a deadlock is likely to occur? 2. How many processes will be affected (need to be rolled back)? • If deadlock occurs frequently, then the algorithm is invoked frequently, o Resources allocated to deadlocked processes will be idle until the deadlock can be broken o The number of processes in the deadlock may increase • If the algorithm is invoked for every resource request not granted, it will incur a computation time overhead on the system • If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would not be able to tell which of the many deadlocked processes “caused” the deadlock • A less expensive alternative is to invoke the algorithm at a less frequent time • (e.g once per hour) January 4, 2023 40 Operating Systems
  • 41. • Once a deadlock has been detected, recovery strategy is needed. There are two possible recovery approaches: • Process termination • Resource preemption Process Termination • Abort all deadlocked processes • Abort one process at a time until the deadlock cycle is eliminated • In which order should we choose a process to abort? Chose the process with • Least amount of processor time consumed so far • Least amount of output produced so far • Most estimated time remaining • Least total resources allocated so far • Lowest priority January 4, 2023 41 Operating Systems Recovery from Deadlock
  • 42. Recovery from Deadlock Resource Preemption • In this recovery strategy, we successively preempt resources and allocate them to another process until the deadlock is broken • While implementing this strategy, there are three issues to be considered • Selecting a victim – which resources and process should be selected to minimize cost just like in process termination. The cost factors may include parameters like the number of resources a deadlocked process is holding, number of resources it used so far • Rollback – if a resource is preempted from a process, then it can not continue its normal execution • The process must be rolled back to some safe state and started • Starvation – same process may always be picked as victim several times. As a result, starvation may occur. The best solution to this problem is to only allow a process to be picked as a vicitim for a limited finite number of times. This can be done by including the number of rollback in the cost factor January 4, 2023 42 Operating Systems
  • 43. January 4, 2023 43 Operating Systems a. b. c. Exercises 1. For each of the resource allocation graphs below, determine whether there is a deadlock or not. Give explanations for each of your answers. d.
  • 44. Exercises(cont…) January 4, 2023 44 Operating Systems 2. There are four processes in a system and they are going to share nine tape drives. Their current and maximum number of allocation numbers are as follows : a. Is the system in a safe state? Why or why not? b. Is the system deadlocked? Why or why not? 3. Explain if the system in the given resource allocation graph here is deadlocked. If not, give an execution order of the processes which successfully terminates Process Allocation Maximum P1 3 6 P2 1 2 P3 4 9 P4 0 2
  • 45. 4. Given the resource allocation graph below: January 4, 2023 45 Operating Systems a. Apply the deadlock detection algorithm and either indicate why the system is deadlocked, or specify a safe allocation sequence b. If the process P2 also request 2 instances of resource r1, does the system enter a deadlock? Why? 5. Consider the following snapshot of a system: • Use the banker’s algorithm to answer the following questions: a. What is the content of the matrix Need? b. Is the system in a safe state? c. If a request from process P1 arrives for (0,4,2,0), can the request be granted immediately? Exercises(cont…)