SlideShare a Scribd company logo
DEADLOCK
• In a multiprogramming environment, several processes may compete
for a finite number of resources.
• A process requests resources; if the resources are not available at that
time, the process enters a waiting state.
• 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.
• What other situations you know relate to deadlock??
• In this chapter, we will describe methods that an operating system
can use to prevent or deal with deadlocks.
Lecture 5 Dead Lock, Simalike P 2
• A process must request a resource before using it and must release
the resource after using it.
• A process may request as many resources as it requires to carry out
its designated task.
• Obviously, the number of resources requested may not exceed the
total number of resources available in the system.
• In other words, a process cannot request three printers if the system
has only two.
Lecture 5 Dead Lock, Simalike P 3
• Under the normal mode of operation, a process may utilize a resource
in only the following sequence:
1. Request. The process requests the resource. If the request cannot
be granted immediately (for example, if the resource is being used
by another process), then the requesting process must wait until it
can acquire the resource.
2. Use. The process can operate on the resource (for example, if the
resource is a printer, the process can print on the printer).
3. Release. The process releases the resource.
Lecture 5 Dead Lock, Simalike P 4
• A system table records whether each resource is free or allocated.
For each resource that is allocated, the table also records the process
to which it is allocated.
• If a process requests a resource that is currently allocated to another
process, it can be added to a queue of processes waiting for this
resource.
• 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.
• The resources may be either physical resources (for example, printers,
tape drives, memory space, and CPU cycles) or logical resources (for
example, semaphores, mutex locks, and files)
Lecture 5 Dead Lock, Simalike P 5
• An example of a deadlocked state, consider a system with three CD
RW drives.
• Suppose each of three processes holds one of these CD RW drives.
• If each process now requests another drive, the three processes will
be in a deadlocked state.
• This example illustrates a deadlock involving the same resource type.
• Deadlocks may also involve different resource types.
• For example, consider a system with one printer and one DVD drive.
Suppose that process Pi is holding the DVD and process Pj is holding
the printer.
• If Pi requests the printer and Pj requests the DVD drive, a deadlock
occurs.
Lecture 5 Dead Lock, Simalike P 6
Necessary Conditions for a deadlock to occur
• A deadlock can arise if the following four conditions hold
simultaneously in a system:
1. Mutual exclusion. At least one resource must be held in a non
sharable mode; that is, only one process at a time can use the
resource. If another process requests that resource, the requesting
process must be delayed until the resource has been released.
2. Hold and wait. A process must be holding at least one resource and
waiting to acquire additional resources that are currently being
held by other processes. Eg, P1 is holding a resource R1 and
waiting for a resource R2
Lecture 5 Dead Lock, Simalike P 7
3. No preemption. Resources cannot be preempted; that is, a resource
can be released only voluntarily by the process holding it, after that
process has completed its task.
4. Circular wait. A set {P0, P1, ..., Pn} of waiting processes must exist
such that P0 is waiting for a resource held by P1, P1 is waiting for a
resource held by P2, ..., Pn−1 is waiting for a resource held by Pn, and
Pn is waiting for a resource held by P0.
Conditions for a deadlock to occur …
Lecture 5 Dead Lock, Simalike P 8
Resource-Allocation Graph
• Deadlocks can be described more precisely in terms of a directed
graph called a system resource-allocation graph.
• This graph consists of a set of vertices V and a set of edges E.
• The set of vertices V is partitioned into two different types of nodes: P
= {P1, P2, ..., Pn}, the set consisting of all the active processes in the
system, and R = {R1, R2, ..., Rm}, the set consisting of all resource
types in the system.
Lecture 5 Dead Lock, Simalike P 9
Resource-Allocation Graph…
• A directed edge from process Pi to resource type Rj is denoted by Pi
→ Rj ; it signifies that process Pi has requested an instance of
resource type Rj and is currently waiting for that resource.
• A directed edge from resource type Rj to process Pi is denoted by Rj
→ Pi ; it signifies that an instance of resource type Rj has been
allocated to process Pi .
• A directed edge Pi → Rj is called a request edge; a directed edge Rj →
Pi is called an assignment edge.
• Pictorially, we represent each process Pi as a circle and each resource
type Rj as a rectangle
Lecture 5 Dead Lock, Simalike P 10
Resource-Allocation Graph…
• Since resource type Rj may have more than one instance, we
represent each such instance as a dot within the rectangle.
• Note that a request edge points to only the rectangle Rj , whereas an
assignment edge must also designate one of the dots in the rectangle.
• When process Pi requests an instance of resource type Rj , a request
edge is inserted in the resource-allocation graph.
• When this request can be fulfilled, the request edge is
instantaneously transformed to an assignment edge.
• When the process no longer needs access to the resource, it releases
the resource.
• As a result, the assignment edge is deleted.
Lecture 5 Dead Lock, Simalike P 11
Resource-allocation graph …
Lecture 5 Dead Lock, Simalike P 12
Resource-allocation graph …
◦ P = {P1, P2, P3}
◦ R = {R1, R2, R3, R4}
◦ E = {P1 → R1, P2 → R3, R1 → P2, R2 → P2, R2 → P1, R3 → P3}
Resource instances:
◦ One instance of resource type R1
◦ Two instances of resource type R2
◦ One instance of resource type R3
◦ Three instances of resource type R4
Lecture 5 Dead Lock, Simalike P 13
Resource-allocation graph …
• 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.
Lecture 5 Dead Lock, Simalike P 14
Resource-allocation graph with a deadlock
• If the graph contains no cycles, then no process in the system is deadlocked.
• If the graph does contain a cycle, then a deadlock may exist.
• If each resource type has exactly one instance, then a cycle implies that a
deadlock has occurred.
• If the cycle involves only a set of resource types, each of which has only a
single instance, then a deadlock has occurred.
• Each process involved in the cycle is deadlocked.
• In this case, a cycle in the graph is both a necessary and a sufficient
condition for the existence of deadlock. (see figure below)
Lecture 5 Dead Lock, Simalike P 15
P1 → R1 → P2 → R3 → P3 → R2 → P1, P2 → R3 → P3 → R2 → P2
Lecture 5 Dead Lock, Simalike P 16
• Processes P1, P2, and P3 are deadlocked?
Resource-allocation graph with a deadlock
Lecture 5 Dead Lock, Simalike P 17
• Process P2 is waiting for the resource R3, which is held by process P3.
• Process P3 is waiting for either process P1 or process P2 to release resource
R2.
• In addition, process P1 is waiting for process P2 to release resource R1.
Resource-allocation graph with a deadlock
Lecture 5 Dead Lock, Simalike P 18
Resource-allocation graph with a cycle but no
deadlock.
• If each resource type has several instances, then a cycle does not necessarily
imply that a deadlock has occurred.
• In this case, a cycle in the graph is a necessary but not a sufficient condition
for the existence of deadlock.
Lecture 5 Dead Lock, Simalike P 19
• However, from the figure above, there is no deadlock.
• Observe that process P4 may release its instance of resource type R2.
• That resource can then be allocated to P3, breaking the cycle.
• In summary, if a resource-allocation graph does not have a cycle, then the
system is not in a deadlocked state.
• If there is a cycle, then the system may or may not be in a deadlocked state.
This observation is important when we deal with the deadlock problem.
Lecture 5 Dead Lock, Simalike P 20
Basing on Case A and Case B which case involve deadlock? Why?
Lecture 5 Dead Lock, Simalike P 21
Case A
Case B
Methods for Handling Deadlocks
We can deal with the deadlock problem in one of three ways:
i. We can use a protocol to prevent or avoid deadlocks, ensuring that the
system will never enter a deadlocked state.
ii. We can allow the system to enter a deadlocked state, detect it, and
recover.
iii. We can ignore the problem altogether and pretend that deadlocks never
occur in the system.
• But to ensure that deadlocks never occur, the system can use either a
deadlock prevention or a deadlock-avoidance scheme
Lecture 5 Dead Lock, Simalike P 22
Methods for Handling Deadlocks
• Deadlock prevention provides a set of methods to ensure that at least one
of the necessary conditions cannot hold.
• Deadlock avoidance requires that the operating system be given additional
information in advance concerning which resources a process will request
and use during its lifetime.
• With this additional knowledge, the operating system can decide for each
request whether or not the process should wait.
• To decide whether the current request can be satisfied or must be delayed,
the system must consider the resources currently available, the resources
currently allocated to each process, and the future requests and releases of
each process.
Lecture 5 Dead Lock, Simalike P 23
Deadlock Prevention
• As we noted before for a deadlock to occur, each of the four
necessary conditions must hold.
• By ensuring that at least one of these conditions cannot hold, we can
prevent the occurrence of a deadlock.
• A gain we discus the four conditions for a deadlock to occur as
methods that can be used to prevent the occurrence of a deadlock.
Lecture 5 Dead Lock, Simalike P 24
Mutual Exclusion
• The mutual exclusion condition must hold. That is, at least one resource
must be non-sharable.
• Sharable resources, in contrast, do not require mutually exclusive access
and thus cannot be involved in a deadlock.
• Read-only files are a good example of a sharable resource. If several
processes attempt to open a read-only file at the same time, they can be
granted simultaneous access to the file.
• A process never needs to wait for a sharable resource
Lecture 5 Dead Lock, Simalike P 25
Hold and Wait
• To ensure that the hold-and-wait condition never occurs in the system,
we must guarantee that, whenever a process requests a resource, it does
not hold any other resources.
• One protocol that we can use requires each process to request and be
allocated all its resources before it begins execution.
• An alternative protocol allows a process to request resources only when
it has none. A process may request some resources and use them.
• Before it can request any additional resources, it must release all the
resources that it is currently allocated.
Lecture 5 Dead Lock, Simalike P 26
Hold and Wait Continue
• To illustrate the difference between these two protocols, we consider a
process that copies data from a DVD drive to a file on disk, sorts the file,
and then prints the results to a printer.
• If all resources must be requested at the beginning of the process, then
the process must initially request the DVD drive, disk file, and printer.
• It will hold the printer for its entire execution, even though it needs the
printer only at the end.
Lecture 5 Dead Lock, Simalike P 27
Hold and Wait Continue
• The second method allows the process to request initially only the DVD
drive and disk file. It copies from the DVD drive to the disk and then
releases both the DVD drive and the disk file.
• The process must then request the disk file and the printer.
• After copying the disk file to the printer, it releases these two resources
and terminates.
Lecture 5 Dead Lock, Simalike P 28
Disadvantages of protocol methods
• First, resource utilization may be low, since resources may be allocated
but unused for a long period.
• Second, starvation is possible. A process that needs several popular
resources may have to wait indefinitely, because at least one of the
resources that it needs is always allocated to some other process.
Lecture 5 Dead Lock, Simalike P 29
No Preemption
• The third necessary condition for deadlocks is that there be no
preemption of resources that have already been allocated.
• To ensure that this condition does not hold, we can use the following
protocol.
• If a process is holding some resources and requests another resource
that cannot be immediately allocated to it, then all resources the
process is currently holding are preempted.
• In other words, these resources are implicitly released.
• The preempted resources are added to the list of resources for which the
process is waiting.
• The process will be restarted only when it can regain its old resources, as
w ell as the new ones that it is requesting.
Lecture 5 Dead Lock, Simalike P 30
No Preemption
• Alternatively, if a process requests some resources, we first check
whether they are available.
• If they are, we allocate them. If they are not, we check whether they are
allocated to some other process that is waiting for additional resources.
• If so, we preempt the desired resources from the waiting process and
allocate them to the requesting process.
• If the resources are neither available nor held by a waiting process, the
requesting process must wait.
• While it is waiting, some of its resources may be preempted, but only if
another process requests them.
Lecture 5 Dead Lock, Simalike P 31
Circular Wait
• The fourth and final condition for deadlocks is the circular-wait
condition.
• One way to ensure that this condition never holds is to impose a total
ordering of all resource types and to require that each process
requests resources in an increasing order of enumeration/list.
• Let R = {R1, R2, ..., Rm} be the set of resource types representing
resource types tape drives (3), disk drives(4), and printers(5).
• Initially a process can request any number of instances of a resource
type say, Ri. (i is any number)
• After that, the process can request instances of resource type Rj if
and only if Rj > Ri. Let say Ri=3 and Rj=5 (only request for resources
more than R3 will be granted.)
Lecture 5 Dead Lock, Simalike P 32
Circular Wait
• Alternatively, we can require that a process requesting an instance of
resource type Rj must have released any resources Ri such that Ri ≥ Rj.
• Note also that if several instances of the same resource type are needed,
a single request for all of them must be issued.
Lecture 5 Dead Lock, Simalike P 33

More Related Content

Similar to Chapter5_Deadlock.pptx

Os unit 4
Os unit 4Os unit 4
Os unit 4
Krupali Mistry
 
Deadlock (1).ppt
Deadlock (1).pptDeadlock (1).ppt
Deadlock (1).ppt
Nusaike Mufthie
 
CH07.pdf
CH07.pdfCH07.pdf
CH07.pdf
ImranKhan880955
 
OS Module-3 (2).pptx
OS Module-3 (2).pptxOS Module-3 (2).pptx
OS Module-3 (2).pptx
KokilaK25
 
Deadlock in Operating System
Deadlock in Operating SystemDeadlock in Operating System
Deadlock in Operating System
AUST
 
osvzjsjjdndnnssnnsnsndndndnndeadlock.pptx
osvzjsjjdndnnssnnsnsndndndnndeadlock.pptxosvzjsjjdndnnssnnsnsndndndnndeadlock.pptx
osvzjsjjdndnnssnnsnsndndndnndeadlock.pptx
Bhaskar271887
 
Ch7 deadlocks
Ch7   deadlocksCh7   deadlocks
Ch7 deadlocks
Welly Dian Astika
 
deadlock in OS.pptx
deadlock in OS.pptxdeadlock in OS.pptx
deadlock in OS.pptx
Monirul Islam
 
Module 3 Deadlocks.pptx
Module 3 Deadlocks.pptxModule 3 Deadlocks.pptx
Module 3 Deadlocks.pptx
shreesha16
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
A. S. M. Shafi
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
Shipra Swati
 
Deadlock
DeadlockDeadlock
Deadlock
Mayuri Verma
 
Ch07 deadlocks
Ch07 deadlocksCh07 deadlocks
Ch07 deadlocks
Nazir Ahmed
 
Os5
Os5Os5
deadlocks.pptx
deadlocks.pptxdeadlocks.pptx
deadlocks.pptx
JOHNZHOU52
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
ushabarad142
 
24 to 25 deadlockprevention
24 to 25 deadlockprevention24 to 25 deadlockprevention
24 to 25 deadlockprevention
myrajendra
 
Deadlock in Real Time operating Systempptx
Deadlock in Real Time operating SystempptxDeadlock in Real Time operating Systempptx
Deadlock in Real Time operating Systempptx
ssuserca5764
 
Mch7 deadlock
Mch7 deadlockMch7 deadlock
Mch7 deadlock
wahab13
 
DeadlockMar21.ppt
DeadlockMar21.pptDeadlockMar21.ppt
DeadlockMar21.ppt
hetrathod001
 

Similar to Chapter5_Deadlock.pptx (20)

Os unit 4
Os unit 4Os unit 4
Os unit 4
 
Deadlock (1).ppt
Deadlock (1).pptDeadlock (1).ppt
Deadlock (1).ppt
 
CH07.pdf
CH07.pdfCH07.pdf
CH07.pdf
 
OS Module-3 (2).pptx
OS Module-3 (2).pptxOS Module-3 (2).pptx
OS Module-3 (2).pptx
 
Deadlock in Operating System
Deadlock in Operating SystemDeadlock in Operating System
Deadlock in Operating System
 
osvzjsjjdndnnssnnsnsndndndnndeadlock.pptx
osvzjsjjdndnnssnnsnsndndndnndeadlock.pptxosvzjsjjdndnnssnnsnsndndndnndeadlock.pptx
osvzjsjjdndnnssnnsnsndndndnndeadlock.pptx
 
Ch7 deadlocks
Ch7   deadlocksCh7   deadlocks
Ch7 deadlocks
 
deadlock in OS.pptx
deadlock in OS.pptxdeadlock in OS.pptx
deadlock in OS.pptx
 
Module 3 Deadlocks.pptx
Module 3 Deadlocks.pptxModule 3 Deadlocks.pptx
Module 3 Deadlocks.pptx
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Deadlock
DeadlockDeadlock
Deadlock
 
Ch07 deadlocks
Ch07 deadlocksCh07 deadlocks
Ch07 deadlocks
 
Os5
Os5Os5
Os5
 
deadlocks.pptx
deadlocks.pptxdeadlocks.pptx
deadlocks.pptx
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
24 to 25 deadlockprevention
24 to 25 deadlockprevention24 to 25 deadlockprevention
24 to 25 deadlockprevention
 
Deadlock in Real Time operating Systempptx
Deadlock in Real Time operating SystempptxDeadlock in Real Time operating Systempptx
Deadlock in Real Time operating Systempptx
 
Mch7 deadlock
Mch7 deadlockMch7 deadlock
Mch7 deadlock
 
DeadlockMar21.ppt
DeadlockMar21.pptDeadlockMar21.ppt
DeadlockMar21.ppt
 

Recently uploaded

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 

Recently uploaded (20)

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 

Chapter5_Deadlock.pptx

  • 2. • In a multiprogramming environment, several processes may compete for a finite number of resources. • A process requests resources; if the resources are not available at that time, the process enters a waiting state. • 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. • What other situations you know relate to deadlock?? • In this chapter, we will describe methods that an operating system can use to prevent or deal with deadlocks. Lecture 5 Dead Lock, Simalike P 2
  • 3. • A process must request a resource before using it and must release the resource after using it. • A process may request as many resources as it requires to carry out its designated task. • Obviously, the number of resources requested may not exceed the total number of resources available in the system. • In other words, a process cannot request three printers if the system has only two. Lecture 5 Dead Lock, Simalike P 3
  • 4. • Under the normal mode of operation, a process may utilize a resource in only the following sequence: 1. Request. The process requests the resource. If the request cannot be granted immediately (for example, if the resource is being used by another process), then the requesting process must wait until it can acquire the resource. 2. Use. The process can operate on the resource (for example, if the resource is a printer, the process can print on the printer). 3. Release. The process releases the resource. Lecture 5 Dead Lock, Simalike P 4
  • 5. • A system table records whether each resource is free or allocated. For each resource that is allocated, the table also records the process to which it is allocated. • If a process requests a resource that is currently allocated to another process, it can be added to a queue of processes waiting for this resource. • 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. • The resources may be either physical resources (for example, printers, tape drives, memory space, and CPU cycles) or logical resources (for example, semaphores, mutex locks, and files) Lecture 5 Dead Lock, Simalike P 5
  • 6. • An example of a deadlocked state, consider a system with three CD RW drives. • Suppose each of three processes holds one of these CD RW drives. • If each process now requests another drive, the three processes will be in a deadlocked state. • This example illustrates a deadlock involving the same resource type. • Deadlocks may also involve different resource types. • For example, consider a system with one printer and one DVD drive. Suppose that process Pi is holding the DVD and process Pj is holding the printer. • If Pi requests the printer and Pj requests the DVD drive, a deadlock occurs. Lecture 5 Dead Lock, Simalike P 6
  • 7. Necessary Conditions for a deadlock to occur • A deadlock can arise if the following four conditions hold simultaneously in a system: 1. Mutual exclusion. At least one resource must be held in a non sharable mode; that is, only one process at a time can use the resource. If another process requests that resource, the requesting process must be delayed until the resource has been released. 2. Hold and wait. A process must be holding at least one resource and waiting to acquire additional resources that are currently being held by other processes. Eg, P1 is holding a resource R1 and waiting for a resource R2 Lecture 5 Dead Lock, Simalike P 7
  • 8. 3. No preemption. Resources cannot be preempted; that is, a resource can be released only voluntarily by the process holding it, after that process has completed its task. 4. Circular wait. A set {P0, P1, ..., Pn} of waiting processes must exist such that P0 is waiting for a resource held by P1, P1 is waiting for a resource held by P2, ..., Pn−1 is waiting for a resource held by Pn, and Pn is waiting for a resource held by P0. Conditions for a deadlock to occur … Lecture 5 Dead Lock, Simalike P 8
  • 9. Resource-Allocation Graph • Deadlocks can be described more precisely in terms of a directed graph called a system resource-allocation graph. • This graph consists of a set of vertices V and a set of edges E. • The set of vertices V is partitioned into two different types of nodes: P = {P1, P2, ..., Pn}, the set consisting of all the active processes in the system, and R = {R1, R2, ..., Rm}, the set consisting of all resource types in the system. Lecture 5 Dead Lock, Simalike P 9
  • 10. Resource-Allocation Graph… • A directed edge from process Pi to resource type Rj is denoted by Pi → Rj ; it signifies that process Pi has requested an instance of resource type Rj and is currently waiting for that resource. • A directed edge from resource type Rj to process Pi is denoted by Rj → Pi ; it signifies that an instance of resource type Rj has been allocated to process Pi . • A directed edge Pi → Rj is called a request edge; a directed edge Rj → Pi is called an assignment edge. • Pictorially, we represent each process Pi as a circle and each resource type Rj as a rectangle Lecture 5 Dead Lock, Simalike P 10
  • 11. Resource-Allocation Graph… • Since resource type Rj may have more than one instance, we represent each such instance as a dot within the rectangle. • Note that a request edge points to only the rectangle Rj , whereas an assignment edge must also designate one of the dots in the rectangle. • When process Pi requests an instance of resource type Rj , a request edge is inserted in the resource-allocation graph. • When this request can be fulfilled, the request edge is instantaneously transformed to an assignment edge. • When the process no longer needs access to the resource, it releases the resource. • As a result, the assignment edge is deleted. Lecture 5 Dead Lock, Simalike P 11
  • 12. Resource-allocation graph … Lecture 5 Dead Lock, Simalike P 12
  • 13. Resource-allocation graph … ◦ P = {P1, P2, P3} ◦ R = {R1, R2, R3, R4} ◦ E = {P1 → R1, P2 → R3, R1 → P2, R2 → P2, R2 → P1, R3 → P3} Resource instances: ◦ One instance of resource type R1 ◦ Two instances of resource type R2 ◦ One instance of resource type R3 ◦ Three instances of resource type R4 Lecture 5 Dead Lock, Simalike P 13
  • 14. Resource-allocation graph … • 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. Lecture 5 Dead Lock, Simalike P 14
  • 15. Resource-allocation graph with a deadlock • If the graph contains no cycles, then no process in the system is deadlocked. • If the graph does contain a cycle, then a deadlock may exist. • If each resource type has exactly one instance, then a cycle implies that a deadlock has occurred. • If the cycle involves only a set of resource types, each of which has only a single instance, then a deadlock has occurred. • Each process involved in the cycle is deadlocked. • In this case, a cycle in the graph is both a necessary and a sufficient condition for the existence of deadlock. (see figure below) Lecture 5 Dead Lock, Simalike P 15
  • 16. P1 → R1 → P2 → R3 → P3 → R2 → P1, P2 → R3 → P3 → R2 → P2 Lecture 5 Dead Lock, Simalike P 16
  • 17. • Processes P1, P2, and P3 are deadlocked? Resource-allocation graph with a deadlock Lecture 5 Dead Lock, Simalike P 17
  • 18. • Process P2 is waiting for the resource R3, which is held by process P3. • Process P3 is waiting for either process P1 or process P2 to release resource R2. • In addition, process P1 is waiting for process P2 to release resource R1. Resource-allocation graph with a deadlock Lecture 5 Dead Lock, Simalike P 18
  • 19. Resource-allocation graph with a cycle but no deadlock. • If each resource type has several instances, then a cycle does not necessarily imply that a deadlock has occurred. • In this case, a cycle in the graph is a necessary but not a sufficient condition for the existence of deadlock. Lecture 5 Dead Lock, Simalike P 19
  • 20. • However, from the figure above, there is no deadlock. • Observe that process P4 may release its instance of resource type R2. • That resource can then be allocated to P3, breaking the cycle. • In summary, if a resource-allocation graph does not have a cycle, then the system is not in a deadlocked state. • If there is a cycle, then the system may or may not be in a deadlocked state. This observation is important when we deal with the deadlock problem. Lecture 5 Dead Lock, Simalike P 20
  • 21. Basing on Case A and Case B which case involve deadlock? Why? Lecture 5 Dead Lock, Simalike P 21 Case A Case B
  • 22. Methods for Handling Deadlocks We can deal with the deadlock problem in one of three ways: i. We can use a protocol to prevent or avoid deadlocks, ensuring that the system will never enter a deadlocked state. ii. We can allow the system to enter a deadlocked state, detect it, and recover. iii. We can ignore the problem altogether and pretend that deadlocks never occur in the system. • But to ensure that deadlocks never occur, the system can use either a deadlock prevention or a deadlock-avoidance scheme Lecture 5 Dead Lock, Simalike P 22
  • 23. Methods for Handling Deadlocks • Deadlock prevention provides a set of methods to ensure that at least one of the necessary conditions cannot hold. • Deadlock avoidance requires that the operating system be given additional information in advance concerning which resources a process will request and use during its lifetime. • With this additional knowledge, the operating system can decide for each request whether or not the process should wait. • To decide whether the current request can be satisfied or must be delayed, the system must consider the resources currently available, the resources currently allocated to each process, and the future requests and releases of each process. Lecture 5 Dead Lock, Simalike P 23
  • 24. Deadlock Prevention • As we noted before for a deadlock to occur, each of the four necessary conditions must hold. • By ensuring that at least one of these conditions cannot hold, we can prevent the occurrence of a deadlock. • A gain we discus the four conditions for a deadlock to occur as methods that can be used to prevent the occurrence of a deadlock. Lecture 5 Dead Lock, Simalike P 24
  • 25. Mutual Exclusion • The mutual exclusion condition must hold. That is, at least one resource must be non-sharable. • Sharable resources, in contrast, do not require mutually exclusive access and thus cannot be involved in a deadlock. • Read-only files are a good example of a sharable resource. If several processes attempt to open a read-only file at the same time, they can be granted simultaneous access to the file. • A process never needs to wait for a sharable resource Lecture 5 Dead Lock, Simalike P 25
  • 26. Hold and Wait • To ensure that the hold-and-wait condition never occurs in the system, we must guarantee that, whenever a process requests a resource, it does not hold any other resources. • One protocol that we can use requires each process to request and be allocated all its resources before it begins execution. • An alternative protocol allows a process to request resources only when it has none. A process may request some resources and use them. • Before it can request any additional resources, it must release all the resources that it is currently allocated. Lecture 5 Dead Lock, Simalike P 26
  • 27. Hold and Wait Continue • To illustrate the difference between these two protocols, we consider a process that copies data from a DVD drive to a file on disk, sorts the file, and then prints the results to a printer. • If all resources must be requested at the beginning of the process, then the process must initially request the DVD drive, disk file, and printer. • It will hold the printer for its entire execution, even though it needs the printer only at the end. Lecture 5 Dead Lock, Simalike P 27
  • 28. Hold and Wait Continue • The second method allows the process to request initially only the DVD drive and disk file. It copies from the DVD drive to the disk and then releases both the DVD drive and the disk file. • The process must then request the disk file and the printer. • After copying the disk file to the printer, it releases these two resources and terminates. Lecture 5 Dead Lock, Simalike P 28
  • 29. Disadvantages of protocol methods • First, resource utilization may be low, since resources may be allocated but unused for a long period. • Second, starvation is possible. A process that needs several popular resources may have to wait indefinitely, because at least one of the resources that it needs is always allocated to some other process. Lecture 5 Dead Lock, Simalike P 29
  • 30. No Preemption • The third necessary condition for deadlocks is that there be no preemption of resources that have already been allocated. • To ensure that this condition does not hold, we can use the following protocol. • If a process is holding some resources and requests another resource that cannot be immediately allocated to it, then all resources the process is currently holding are preempted. • In other words, these resources are implicitly released. • The preempted resources are added to the list of resources for which the process is waiting. • The process will be restarted only when it can regain its old resources, as w ell as the new ones that it is requesting. Lecture 5 Dead Lock, Simalike P 30
  • 31. No Preemption • Alternatively, if a process requests some resources, we first check whether they are available. • If they are, we allocate them. If they are not, we check whether they are allocated to some other process that is waiting for additional resources. • If so, we preempt the desired resources from the waiting process and allocate them to the requesting process. • If the resources are neither available nor held by a waiting process, the requesting process must wait. • While it is waiting, some of its resources may be preempted, but only if another process requests them. Lecture 5 Dead Lock, Simalike P 31
  • 32. Circular Wait • The fourth and final condition for deadlocks is the circular-wait condition. • One way to ensure that this condition never holds is to impose a total ordering of all resource types and to require that each process requests resources in an increasing order of enumeration/list. • Let R = {R1, R2, ..., Rm} be the set of resource types representing resource types tape drives (3), disk drives(4), and printers(5). • Initially a process can request any number of instances of a resource type say, Ri. (i is any number) • After that, the process can request instances of resource type Rj if and only if Rj > Ri. Let say Ri=3 and Rj=5 (only request for resources more than R3 will be granted.) Lecture 5 Dead Lock, Simalike P 32
  • 33. Circular Wait • Alternatively, we can require that a process requesting an instance of resource type Rj must have released any resources Ri such that Ri ≥ Rj. • Note also that if several instances of the same resource type are needed, a single request for all of them must be issued. Lecture 5 Dead Lock, Simalike P 33

Editor's Notes

  1. “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.” by Kansas Legislature
  2. We emphasize that all four conditions must hold for a deadlock to nnnnnoccur.
  3. 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: