07/24/25
Page 1
Deadlock Management
B. Ramamurthy
07/24/25
Page 2
Topics
• Resource
• Introduction to deadlocks
• The ostrich algorithm
• Deadlock detection and recovery
• Deadlock avoidance
– Banker’s algorithm
• Deadlock prevention
• Other issues
07/24/25
Page 3
Introduction
• Parallel operation among many devices driven by
concurrent processes contribute significantly to
high performance. But concurrency also results in
contention for resources and possibility of
deadlock among the vying processes.
• Deadlock is a situation where a group of processes
are permanently blocked waiting for the
resources held by each other in the group.
• Typical application where deadlock is a serious
problem: Operating system, data base accesses,
and distributed processing.
07/24/25
Page 4
System Model
• Resource types R1, R2, . . ., Rm
CPU cycles, memory space, I/O devices
• Each resource type Ri has Wi instances.
• Each process utilizes a resource as
follows:
– request
– use
– release
07/24/25
Page 5
Deadlock Characterization
• Mutual exclusion: only one process at a time can use
a resource.
• Hold and wait: a process holding at least one resource
is waiting to acquire additional resources held by other
processes.
• No preemption: a resource can be released only
voluntarily by the process holding it, after that process
has completed its task.
• Circular wait: there exists a set {P0, P1, …, P0} of waiting
processes such that P0 is waiting for a resource that is
held by P1, P1 is waiting for a resource that is held by
P2, …, Pn–1 is waiting for a resource that is held by
Pn, and P0 is waiting for a resource that is held by P0.
Deadlock can arise if four conditions hold simultaneously.
07/24/25
Page 6
Resource-Allocation Graph
• 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
A set of vertices V and a set of edges E.
07/24/25
Page 7
Resource-Allocation Graph
(Cont.)
• Process
• Resource Type with 4 instances
• Pi requests instance of Rj
• Pi is holding an instance of Rj
Pi
Rj
Pi
Rj
07/24/25
Page 8
Resource Allocation Graph with
a Deadlock
07/24/25
Page 9
Resource Allocation Graph with a cycle
but No Deadlock
07/24/25
Page 10 How deadlock occurs
A B C
Deadlock Modeling
07/24/25
Page 11
Methods for Handling
Deadlocks
• Ensure that the system will never enter a
deadlock state. (pessimistic)
• Allow the system to enter a deadlock state
and then recover. Database systems;
• Ignore the problem and pretend that
deadlocks never occur in the system; Older
operating systems; (ostrich algorithm:
optimistic)
07/24/25
Page 12
Dealing with Deadlock
Strategies for dealing with Deadlocks
1. just ignore the problem altogether
2. detection and recovery
3. dynamic avoidance
• careful resource allocation
4. prevention
• negating one of the four necessary
conditions
07/24/25
Page 13
The Ostrich Algorithm
• Pretend there is no problem
• Reasonable if
– deadlocks occur very rarely
– cost of prevention is high
• UNIX and Windows takes this approach
• It is a trade off between
– convenience
– correctness
07/24/25
Page 14
Detection with One Resource of Each
Type (1)
• Note the resource ownership and requests
• A cycle can be found within the graph, denoting
deadlock
07/24/25
Page 15
Recovery from Deadlock (1)
• Recovery through preemption
– take a resource from some other process
– depends on nature of the resource
• Recovery through rollback
– checkpoint a process periodically.
– use this saved state.
– restart the process if it is found deadlocked.
07/24/25
Page 16
Recovery from Deadlock (2)
• Recovery through killing processes
– crudest but simplest way to break a
deadlock
– kill one of the processes in the deadlock
cycle
– the other processes get its resources
– choose process that can be rerun from the
beginning
07/24/25
Page 17
Deadlock Avoidance
• Simplest and most useful model requires that
each process declare the maximum number of
resources of each type that it may need.
• 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.
Requires that the system has some additional a priori information
available.
07/24/25
Page 18
Safe State
• When a process requests an available resource, system must
decide if immediate allocation leaves the system in a safe state.
• System is in safe state if there exists a safe sequence of all
processes.
• Sequence <P1, P2, …, Pn> is safe if for each Pi, the resources that
Pi can still request can be satisfied by currently available
resources + resources held by all the Pj, with j<I.
– If Pi resource needs are not immediately available, then Pi
can wait until all Pj have finished.
– When Pj is finished, Pi can obtain needed resources, execute,
return allocated resources, and terminate.
– When Pi terminates, Pi+1 can obtain its needed resources, and
so on.
07/24/25
Page 19
Safe, Unsafe , Deadlock
State
07/24/25
Page 20
Resource-Allocation Graph
Algorithm
• Claim edge Pi  Rj indicated that process Pj may
request resource Rj; represented by a dashed line.
• Claim edge converts to request edge when a
process requests a resource.
• When a resource is released by a process,
assignment edge reconverts to a claim edge.
• Resources must be claimed a priori in the system.
07/24/25
Page 21
Banker’s Algorithm
• Multiple instances.
• Each process must a priori claim maximum
use.
• When a process requests a resource it may
have to wait.
• When a process gets all its resources it must
return them in a finite amount of time.
07/24/25
Page 22
Data Structures for the Banker’s
Algorithm
• 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].
Let n = number of processes, and m = number of resources types.
07/24/25
Page 23
Safety Algorithm
1. Let Work and Finish be vectors of length m and n,
respectively. Initialize:
Work = Available
Finish [i] = false for i - 1,3, …, n.
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.
07/24/25
Page 24
Resource-Request Algorithm for
Process Pi
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 = Requesti;
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
07/24/25
Page 25
Example of Banker’s
Algorithm
• 5 processes P0 through P4; 3 resource types A
(10 instances),
B (5instances, and C (7 instances).
• Snapshot at time T0:
AllocationMaxAvailable
A B C A B C A B C
P0 0 1 07 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 24 3 3
07/24/25
Page 26
Example (Cont.)
• 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.
07/24/25
Page 27
Example P1 Request (1,0,2) (Cont.)
• Check that Request  Available (that is, (1,0,2)  (3,3,2)  true.
Allocation NeedAvailable
A B C A B CA B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 20 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?
07/24/25
Page 28
Deadlock Prevention
• Mutual Exclusion – not required for sharable
resources; must hold for nonsharable resources.
• Hold and Wait – must guarantee that whenever
a process requests a resource, it does not hold
any other resources.
– Require process to request and be allocated
all its resources before it begins execution, or
allow process to request resources only when
the process has none.
– Low resource utilization; starvation possible.
Restrain the ways request can be made.
07/24/25
Page 29
Deadlock Prevention (Cont.)
• No Preemption –
– If a process that is holding some resources requests
another resource that cannot be immediately allocated
to it, then all resources currently being held are
released.
– Preempted resources are added to the list of resources
for which the process is waiting.
– Process will be restarted only when it can regain its old
resources, as well as the new ones that it is requesting.
• Circular Wait – impose a total ordering of all resource
types, and require that each process requests resources in
an increasing order of enumeration.
07/24/25
Page 30
Deadlock Prevention
Attacking the Mutual Exclusion Condition
• Some devices (such as printer) can be
spooled
– only the printer daemon uses printer resource
– thus deadlock for printer eliminated
• Not all devices can be spooled
• Principle:
– avoid assigning resource when not absolutely
necessary
– as few processes as possible actually claim the
resource
07/24/25
Page 31
Attacking the Hold and Wait
Condition
• Require processes to request resources before starting
– a process never has to wait for what it needs
• Problems
– may not know required resources at start of run
– also ties up resources other processes could be using
• Variation:
– process must give up all resources
– then request all immediately needed
07/24/25
Page 32
Attacking the No Preemption Condition
• This is not a viable option
• Consider a process given the printer
– halfway through its job
– now forcibly take away printer
– !!??
07/24/25
Page 33
Attacking the Circular Wait Condition (1)
• Normally ordered resources
• A resource graph
(a) (b)
07/24/25
Page 34
Attacking the Circular Wait Condition (1)
Summary of approaches to deadlock prevention
07/24/25
Page 35
Other Issues
Two-Phase Locking
• Phase One
– process tries to lock all records it needs, one at
a time
– if needed record found locked, start over
– (no real work done in phase one)
• If phase one succeeds, it starts second phase,
– performing updates
– releasing locks
• Note similarity to requesting all resources at once
• Algorithm works where programmer can arrange
– program can be stopped, restarted
07/24/25
Page 36
Nonresource Deadlocks
• Possible for two processes to deadlock
– each is waiting for the other to do some
task
• Can happen with semaphores
– each process required to do a down() on
two semaphores (mutex and another)
– if done in wrong order, deadlock results
07/24/25
Page 37
Starvation
• Algorithm to allocate a resource
– may be to give to shortest job first
• Works great for multiple short jobs in a
system
• May cause long job to be postponed
indefinitely
– even though not blocked
• Solution:
– First-come, first-serve policy

More Related Content

PPT
Deadlock in software engineering for beginners.ppt
PPT
DeadlockMar21.ppt
PPTX
Module 3 Deadlocks.pptx
PPT
deadlock part5 unit 2.ppt
PPTX
Deadlock in Real Time operating Systempptx
PDF
Ch7 deadlocks
PPT
14th November - Deadlock Prevention, Avoidance.ppt
PPT
Ch07 deadlocks
Deadlock in software engineering for beginners.ppt
DeadlockMar21.ppt
Module 3 Deadlocks.pptx
deadlock part5 unit 2.ppt
Deadlock in Real Time operating Systempptx
Ch7 deadlocks
14th November - Deadlock Prevention, Avoidance.ppt
Ch07 deadlocks

Similar to DeadlockMar21.ppt..................................... (20)

PPTX
deadlocks.pptx
PPT
Deadlock
PPTX
Deadlock in Operating system concept, Types of Deadlock
PPTX
Deadlock in Operating SystemSystem Model Deadlock Characterization
PPT
Lecture 8 - Memory Management. It deals with memory management
PDF
Deadlocks Part- II.pdf
PPTX
6. Deadlock_1640227623705.pptx
PPT
Principles of Operating system and types
PPT
Deadlock principles in operating systems
PPTX
Lecture 4 Deadlocks in operating systems.pptx
PPT
deadlock avoidance
PPTX
Chapter 4
PDF
deadlocks for Engenerring for he purpose
PDF
7 Deadlocks
PPTX
OS Module-3 (2).pptx
PPTX
Algorithm 4Chapter Four- Deadlock (5).pptx
PPTX
Gp1242 007 oer ppt
PPT
26 to 27deadlockavoidance
PPT
Mca ii os u-3 dead lock & io systems
deadlocks.pptx
Deadlock
Deadlock in Operating system concept, Types of Deadlock
Deadlock in Operating SystemSystem Model Deadlock Characterization
Lecture 8 - Memory Management. It deals with memory management
Deadlocks Part- II.pdf
6. Deadlock_1640227623705.pptx
Principles of Operating system and types
Deadlock principles in operating systems
Lecture 4 Deadlocks in operating systems.pptx
deadlock avoidance
Chapter 4
deadlocks for Engenerring for he purpose
7 Deadlocks
OS Module-3 (2).pptx
Algorithm 4Chapter Four- Deadlock (5).pptx
Gp1242 007 oer ppt
26 to 27deadlockavoidance
Mca ii os u-3 dead lock & io systems
Ad

More from VishwanathJustRockin (13)

PPT
38-dip.ppt................................
PPTX
Session02.pptx...........................
PPT
comp. Architecture.ppt . ......................
PPT
713_Intro-S24.ppt .....................................
PPT
17647_chapter4-1.ppt .........................
PPTX
Radar ...............................................
PPTX
DBMS. ................................................
PPTX
database management.............................................................
PPT
introduction radar PPt.......................................
PPTX
PPT-unit-1.pptx.......................................
PPTX
DBMS UNIT 9.pptx..................................
PPTX
Relational Database Design Functional Dependency – definition, trivial and no...
PPTX
Introduction to DBMS...........................................
38-dip.ppt................................
Session02.pptx...........................
comp. Architecture.ppt . ......................
713_Intro-S24.ppt .....................................
17647_chapter4-1.ppt .........................
Radar ...............................................
DBMS. ................................................
database management.............................................................
introduction radar PPt.......................................
PPT-unit-1.pptx.......................................
DBMS UNIT 9.pptx..................................
Relational Database Design Functional Dependency – definition, trivial and no...
Introduction to DBMS...........................................
Ad

Recently uploaded (20)

PPTX
Real Estate Management PART 1.pptxFFFFFFFFFFFFF
PDF
Cryptography and Network Security-Module-I.pdf
PDF
Beginners-Guide-to-Artificial-Intelligence.pdf
PDF
CELDAS DE COMBUSTIBLE TIPO MEMBRANA DE INTERCAMBIO PROTÓNICO.pdf
PDF
AIGA 012_04 Cleaning of equipment for oxygen service_reformat Jan 12.pdf
PDF
Engineering Solutions for Ethical Dilemmas in Healthcare (www.kiu.ac.ug)
PPTX
SC Robotics Team Safety Training Presentation
PDF
V2500 Owner and Operatore Guide for Airbus
PPTX
AI-Reporting for Emerging Technologies(BS Computer Engineering)
PDF
IAE-V2500 Engine for Airbus Family 319/320
PPTX
Software-Development-Life-Cycle-SDLC.pptx
PPTX
chapter 1.pptx dotnet technology introduction
DOCX
An investigation of the use of recycled crumb rubber as a partial replacement...
PDF
Artificial Intelligence_ Basics .Artificial Intelligence_ Basics .
PDF
Lesson 3 .pdf
PDF
electrical machines course file-anna university
PDF
Using Technology to Foster Innovative Teaching Practices (www.kiu.ac.ug)
PPTX
BBOC407 BIOLOGY FOR ENGINEERS (CS) - MODULE 1 PART 1.pptx
PPTX
DATA STRCUTURE LABORATORY -BCSL305(PRG1)
PDF
Principles of operation, construction, theory, advantages and disadvantages, ...
Real Estate Management PART 1.pptxFFFFFFFFFFFFF
Cryptography and Network Security-Module-I.pdf
Beginners-Guide-to-Artificial-Intelligence.pdf
CELDAS DE COMBUSTIBLE TIPO MEMBRANA DE INTERCAMBIO PROTÓNICO.pdf
AIGA 012_04 Cleaning of equipment for oxygen service_reformat Jan 12.pdf
Engineering Solutions for Ethical Dilemmas in Healthcare (www.kiu.ac.ug)
SC Robotics Team Safety Training Presentation
V2500 Owner and Operatore Guide for Airbus
AI-Reporting for Emerging Technologies(BS Computer Engineering)
IAE-V2500 Engine for Airbus Family 319/320
Software-Development-Life-Cycle-SDLC.pptx
chapter 1.pptx dotnet technology introduction
An investigation of the use of recycled crumb rubber as a partial replacement...
Artificial Intelligence_ Basics .Artificial Intelligence_ Basics .
Lesson 3 .pdf
electrical machines course file-anna university
Using Technology to Foster Innovative Teaching Practices (www.kiu.ac.ug)
BBOC407 BIOLOGY FOR ENGINEERS (CS) - MODULE 1 PART 1.pptx
DATA STRCUTURE LABORATORY -BCSL305(PRG1)
Principles of operation, construction, theory, advantages and disadvantages, ...

DeadlockMar21.ppt.....................................

  • 2. 07/24/25 Page 2 Topics • Resource • Introduction to deadlocks • The ostrich algorithm • Deadlock detection and recovery • Deadlock avoidance – Banker’s algorithm • Deadlock prevention • Other issues
  • 3. 07/24/25 Page 3 Introduction • Parallel operation among many devices driven by concurrent processes contribute significantly to high performance. But concurrency also results in contention for resources and possibility of deadlock among the vying processes. • Deadlock is a situation where a group of processes are permanently blocked waiting for the resources held by each other in the group. • Typical application where deadlock is a serious problem: Operating system, data base accesses, and distributed processing.
  • 4. 07/24/25 Page 4 System Model • Resource types R1, R2, . . ., Rm CPU cycles, memory space, I/O devices • Each resource type Ri has Wi instances. • Each process utilizes a resource as follows: – request – use – release
  • 5. 07/24/25 Page 5 Deadlock Characterization • Mutual exclusion: only one process at a time can use a resource. • Hold and wait: a process holding at least one resource is waiting to acquire additional resources held by other processes. • No preemption: a resource can be released only voluntarily by the process holding it, after that process has completed its task. • Circular wait: there exists a set {P0, P1, …, P0} of waiting processes such that P0 is waiting for a resource that is held by P1, P1 is waiting for a resource that is held by P2, …, Pn–1 is waiting for a resource that is held by Pn, and P0 is waiting for a resource that is held by P0. Deadlock can arise if four conditions hold simultaneously.
  • 6. 07/24/25 Page 6 Resource-Allocation Graph • 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 A set of vertices V and a set of edges E.
  • 7. 07/24/25 Page 7 Resource-Allocation Graph (Cont.) • Process • Resource Type with 4 instances • Pi requests instance of Rj • Pi is holding an instance of Rj Pi Rj Pi Rj
  • 8. 07/24/25 Page 8 Resource Allocation Graph with a Deadlock
  • 9. 07/24/25 Page 9 Resource Allocation Graph with a cycle but No Deadlock
  • 10. 07/24/25 Page 10 How deadlock occurs A B C Deadlock Modeling
  • 11. 07/24/25 Page 11 Methods for Handling Deadlocks • Ensure that the system will never enter a deadlock state. (pessimistic) • Allow the system to enter a deadlock state and then recover. Database systems; • Ignore the problem and pretend that deadlocks never occur in the system; Older operating systems; (ostrich algorithm: optimistic)
  • 12. 07/24/25 Page 12 Dealing with Deadlock Strategies for dealing with Deadlocks 1. just ignore the problem altogether 2. detection and recovery 3. dynamic avoidance • careful resource allocation 4. prevention • negating one of the four necessary conditions
  • 13. 07/24/25 Page 13 The Ostrich Algorithm • Pretend there is no problem • Reasonable if – deadlocks occur very rarely – cost of prevention is high • UNIX and Windows takes this approach • It is a trade off between – convenience – correctness
  • 14. 07/24/25 Page 14 Detection with One Resource of Each Type (1) • Note the resource ownership and requests • A cycle can be found within the graph, denoting deadlock
  • 15. 07/24/25 Page 15 Recovery from Deadlock (1) • Recovery through preemption – take a resource from some other process – depends on nature of the resource • Recovery through rollback – checkpoint a process periodically. – use this saved state. – restart the process if it is found deadlocked.
  • 16. 07/24/25 Page 16 Recovery from Deadlock (2) • Recovery through killing processes – crudest but simplest way to break a deadlock – kill one of the processes in the deadlock cycle – the other processes get its resources – choose process that can be rerun from the beginning
  • 17. 07/24/25 Page 17 Deadlock Avoidance • Simplest and most useful model requires that each process declare the maximum number of resources of each type that it may need. • 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. Requires that the system has some additional a priori information available.
  • 18. 07/24/25 Page 18 Safe State • When a process requests an available resource, system must decide if immediate allocation leaves the system in a safe state. • System is in safe state if there exists a safe sequence of all processes. • Sequence <P1, P2, …, Pn> is safe if for each Pi, the resources that Pi can still request can be satisfied by currently available resources + resources held by all the Pj, with j<I. – If Pi resource needs are not immediately available, then Pi can wait until all Pj have finished. – When Pj is finished, Pi can obtain needed resources, execute, return allocated resources, and terminate. – When Pi terminates, Pi+1 can obtain its needed resources, and so on.
  • 19. 07/24/25 Page 19 Safe, Unsafe , Deadlock State
  • 20. 07/24/25 Page 20 Resource-Allocation Graph Algorithm • Claim edge Pi  Rj indicated that process Pj may request resource Rj; represented by a dashed line. • Claim edge converts to request edge when a process requests a resource. • When a resource is released by a process, assignment edge reconverts to a claim edge. • Resources must be claimed a priori in the system.
  • 21. 07/24/25 Page 21 Banker’s Algorithm • Multiple instances. • Each process must a priori claim maximum use. • When a process requests a resource it may have to wait. • When a process gets all its resources it must return them in a finite amount of time.
  • 22. 07/24/25 Page 22 Data Structures for the Banker’s Algorithm • 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]. Let n = number of processes, and m = number of resources types.
  • 23. 07/24/25 Page 23 Safety Algorithm 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i - 1,3, …, n. 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.
  • 24. 07/24/25 Page 24 Resource-Request Algorithm for Process Pi 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 = Requesti; 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
  • 25. 07/24/25 Page 25 Example of Banker’s Algorithm • 5 processes P0 through P4; 3 resource types A (10 instances), B (5instances, and C (7 instances). • Snapshot at time T0: AllocationMaxAvailable A B C A B C A B C P0 0 1 07 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 24 3 3
  • 26. 07/24/25 Page 26 Example (Cont.) • 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.
  • 27. 07/24/25 Page 27 Example P1 Request (1,0,2) (Cont.) • Check that Request  Available (that is, (1,0,2)  (3,3,2)  true. Allocation NeedAvailable A B C A B CA B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 20 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?
  • 28. 07/24/25 Page 28 Deadlock Prevention • Mutual Exclusion – not required for sharable resources; must hold for nonsharable resources. • Hold and Wait – must guarantee that whenever a process requests a resource, it does not hold any other resources. – Require process to request and be allocated all its resources before it begins execution, or allow process to request resources only when the process has none. – Low resource utilization; starvation possible. Restrain the ways request can be made.
  • 29. 07/24/25 Page 29 Deadlock Prevention (Cont.) • No Preemption – – If a process that is holding some resources requests another resource that cannot be immediately allocated to it, then all resources currently being held are released. – Preempted resources are added to the list of resources for which the process is waiting. – Process will be restarted only when it can regain its old resources, as well as the new ones that it is requesting. • Circular Wait – impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration.
  • 30. 07/24/25 Page 30 Deadlock Prevention Attacking the Mutual Exclusion Condition • Some devices (such as printer) can be spooled – only the printer daemon uses printer resource – thus deadlock for printer eliminated • Not all devices can be spooled • Principle: – avoid assigning resource when not absolutely necessary – as few processes as possible actually claim the resource
  • 31. 07/24/25 Page 31 Attacking the Hold and Wait Condition • Require processes to request resources before starting – a process never has to wait for what it needs • Problems – may not know required resources at start of run – also ties up resources other processes could be using • Variation: – process must give up all resources – then request all immediately needed
  • 32. 07/24/25 Page 32 Attacking the No Preemption Condition • This is not a viable option • Consider a process given the printer – halfway through its job – now forcibly take away printer – !!??
  • 33. 07/24/25 Page 33 Attacking the Circular Wait Condition (1) • Normally ordered resources • A resource graph (a) (b)
  • 34. 07/24/25 Page 34 Attacking the Circular Wait Condition (1) Summary of approaches to deadlock prevention
  • 35. 07/24/25 Page 35 Other Issues Two-Phase Locking • Phase One – process tries to lock all records it needs, one at a time – if needed record found locked, start over – (no real work done in phase one) • If phase one succeeds, it starts second phase, – performing updates – releasing locks • Note similarity to requesting all resources at once • Algorithm works where programmer can arrange – program can be stopped, restarted
  • 36. 07/24/25 Page 36 Nonresource Deadlocks • Possible for two processes to deadlock – each is waiting for the other to do some task • Can happen with semaphores – each process required to do a down() on two semaphores (mutex and another) – if done in wrong order, deadlock results
  • 37. 07/24/25 Page 37 Starvation • Algorithm to allocate a resource – may be to give to shortest job first • Works great for multiple short jobs in a system • May cause long job to be postponed indefinitely – even though not blocked • Solution: – First-come, first-serve policy