SlideShare a Scribd company logo
Chapter 6

         Deadlocks
6.1. Resources
6.2. Introduction to deadlocks
6.3. The ostrich algorithm
6.4. Deadlock detection and recovery
6.5. Deadlock avoidance
6.6. Deadlock prevention
6.7. Other issues

                                       1
Learning Outcomes
• Understand what deadlock is and how it
  can occur when giving mutually exclusive
  access to multiple resources.
• Understand several approaches to
  mitigating the issue of deadlock in
  operating systems.
  – Including deadlock detection and recovery,
    deadlock avoidance, and deadlock
    prevention.
                                                 2
Resources
• Examples of computer resources
  – printers
  – tape drives
  – Tables in a database
• Processes need access to resources in reasonable
  order
• Preemptable resources
  – can be taken away from a process with no ill effects
• Nonpreemptable resources
  – will cause the process to fail if taken away
                                                           3
Resources & Deadlocks

• Suppose a process holds resource A and requests
  resource B
  – at same time another process holds B and requests A
  – both are blocked and remain so - Deadlocked
• Deadlocks occur when …
  – processes are granted exclusive access to devices,
    locks, tables, etc..
  – we refer to these entities generally as resources


                                                         4
Resource Access

•    Sequence of events required to use a resource
    1. request the resource
    2. use the resource
    3. release the resource


•       Must wait if request is denied
    –    requesting process may be blocked
    –    may fail with error code


                                                5
Two example resource usage patterns
semaphore res_1, res_2;   semaphore res_1, res_2;
void proc_A() {           void proc_A() {
   down(&res_1);             down(&res_1);
   down(&res_2);             down(&res_2);
   use_both_res();           use_both_res();
   up(&res_2);               up(&res_2);
   up(&res_1);               up(&res_1);
}                         }
void proc_B() {           void proc_B() {
   down(&res_1);             down(&res_2);
   down(&res_2);             down(&res_1);
   use_both_res();           use_both_res();
   up(&res_2);               up(&res_1);
   up(&res_1);               up(&res_2);
}                         }
                                                    6
Introduction to Deadlocks

• Formal definition :
  A set of processes is deadlocked if each process in the set is
  waiting for an event that only another process in the set can
  cause
• Usually the event is release of a currently held
  resource
• None of the processes can …
   – run
   – release resources
   – be awakened
                                                            7
Four Conditions for Deadlock
1.       Mutual exclusion condition
     •     each resource assigned to 1 process or is available
2.       Hold and wait condition
     •     process holding resources can request additional
3.       No preemption condition
     •     previously granted resources cannot forcibly taken
           away
4.       Circular wait condition
     •     must be a circular chain of 2 or more processes
     •     each is waiting for resource held by next member of
           the chain
                                                                8
Deadlock Modeling
• Modeled with directed graphs




  – resource R assigned to process A
  – process B is requesting/waiting for resource S
  – process C and D are in deadlock over resources T
    and U
                                                   9
Deadlock Modeling
    A        B         C




                           10
 How deadlock occurs
Deadlock Modeling




     (o)          (p)         (q)

                                    11
How deadlock can be avoided
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



                                                         12
Approach 1: The Ostrich Algorithm
• Pretend there is no problem
• Reasonable if
  – deadlocks occur very rarely
  – cost of prevention is high
     • Example of “cost”, only one process runs at a time
• UNIX and Windows takes this approach for
  some of the more complex resource
  relationships to manage
• It’s a trade off between
  – Convenience (engineering approach)
  – Correctness (mathematical approach)
                                                            13
Approach 2: Detection and
            Recovery
• Need a method to determine if a system is
  deadlocked.
• Assuming deadlocked is detected, we
  need a method of recovery to restore
  progress to the system.




                                         14
Approach 2
Detection with One Resource of Each Type




 • Note the resource ownership and requests
 • A cycle can be found within the graph, denoting
   deadlock
                                                 15
What about resources with
        multiple units?
• We need an approach for dealing with
  resources that consist of more than a
  single unit.




                                          16
Detection with Multiple Resources of Each
                  Type




   Data structures needed by deadlock detection
                      algorithm
                                              17
Note the following invariant
Sum of current resource allocation +
 resources available = resources that exist


        n

     ∑ Cij + A j = E j
      i =1                               18
Detection with Multiple Resources of Each
                  Type




  An example for the deadlock detection algorithm
                                               19
Detection Algorithm
1. Look for an unmarked process Pi, for
   which the i-th row of R is less than or
   equal to A
2. If found, add the i-th row of C to A, and
   mark Pi. Go to step 1
3. If no such process exists, terminate.
Remaining processes are deadlocked

                                               20
Example Deadlock Detection



E = (4 2 3 1)    A = ( 2 1 0 0)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  21
Example Deadlock Detection



E = (4 2 3 1)    A = ( 2 1 0 0)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  22
Example Deadlock Detection



E = (4 2 3 1)    A = ( 2 2 2 0)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  23
Example Deadlock Detection



E = (4 2 3 1)    A = ( 2 2 2 0)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  24
Example Deadlock Detection



E = (4 2 3 1)    A = (4 2 2 1)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  25
Example Deadlock Detection



E = (4 2 3 1)    A = (4 2 2 1)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  26
Example Deadlock Detection



E = (4 2 3 1)    A = (4 2 2 1)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  27
Example Deadlock Detection



E = (4 2 3 1)    A = (4 2 3 1)

     0 0 1 0        2 0 0 1
                           
C =  2 0 0 1   R =  1 0 1 0
     0 1 2 0        2 1 0 0
                           

                                  28
Example Deadlock Detection
• Algorithm terminates with no unmarked
  processes
  – We have no dead lock




                                          29
Example 2: Deadlock Detection
• Suppose, P3 needs a CD-ROM as well as
  2 Tapes and a Plotter

  E = (4 2 3 1)       A = ( 2 1 0 0)

      0 0 1 0            2 0 0 1
                                
 C =  2 0 0 1       R =  1 0 1 0
      0 1 2 0            2 1 0 1
                                

                                       30
Recovery from Deadlock
• 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


                                                31
Recovery from Deadlock

• 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



                                                32
Approach 3
          Deadlock Avoidance
• Instead of detecting deadlock, can we
  simply avoid it?
  – YES, but only if enough information is
    available in advance.
     • Maximum number of each resource required




                                                  33
Deadlock Avoidance
     Resource Trajectories




Two process resource trajectories
                                    34
Safe and Unsafe States
• A state is safe if
  – The system is not deadlocked
  – There exists a scheduling order that results in
    every process running to completion, even if
    they all request their maximum resources
    immediately




                                                35
Safe and Unsafe States
                            Note: We have 10 units
                                of the resource




 (a)       (b)      (c)       (d)        (e)




Demonstration that the state in (a) is safe

                                               36
Safe and Unsafe States
 A requests one extra unit resulting in (b)




 (a)               (b)                  (c)   (d)



Demonstration that the state in b is not safe

                                              37
Safe and Unsafe State
• Unsafe states are not necessarily deadlocked
  – With a lucky sequence, all processes may complete
  – However, we cannot guarantee that they will
    complete (not deadlock)
• Safe states guarantee we will eventually
  complete all processes
• Deadlock avoidance algorithm
  – Only grant requests that result in safe states



                                                     38
Bankers Algorithm
• Modelled on a Banker with Customers
   – The banker has a limited amount of money to loan customers
      • Limited number of resources
   – Each customer can borrow money up to the customer’s credit
     limit
      • Maximum number of resources required
• Basic Idea
   – Keep the bank in a safe state
      • So all customers are happy even if they all request to borrow up to
        their credit limit at the same time.
   – Customers wishing to borrow such that the bank would enter an
     unsafe state must wait until somebody else repays their loan
     such that the the transaction becomes safe.


                                                                        39
The Banker's Algorithm for a Single Resource




  (a)                 (b)                    (c)


        • Three resource allocation states
          – safe
          – safe
          – unsafe
                                                   40
Banker's Algorithm for Multiple Resources




    Example of banker's algorithm with multiple
                    resources
        System should start in safe state!
                                             41
Banker's Algorithm for Multiple Resources




   Example of banker's algorithm with multiple
                    resources
   Should we allow a request by B 1 scanner to
                    succeed??                42
Banker's Algorithm for Multiple Resources




   Example of banker's algorithm with multiple
                      resources
Should we allow a request by B and E for 1 scanner
                    to succeed??             43
Bankers Algorithm is not
    commonly used in practice
• It is difficult (sometime impossible) to know
  in advance
  – the resources a process will require
  – the number of processes in a dynamic system




                                            44
Approach 4: Deadlock Prevention
• Resource allocation rules prevent
  deadlock by prevent one of the four
  conditions required for deadlock from
  occurring
  – Mutual exclusion
  – Hold and wait
  – No preemption
  – Circular Wait

                                          45
Approach 4
       Deadlock Prevention
   Attacking the Mutual Exclusion Condition
• Not feasible in general
  – Some devices/resource are intrinsically not
    shareable.




                                              46
Attacking the Hold and Wait
                    Condition
• Require processes to request resources before starting
   – a process never has to wait for what it needs

• Issues
   – may not know required resources at start of run
       • ⇒ not always possible
   – also ties up resources other processes could be using

• Variations:
   – process must give up all resources if it would block hold a resource
   – then request all immediately needed
   – prone to starvation



                                                                    47
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
  – !!??




                                           48
Attacking the Circular Wait Condition




    (a)                      (b)

      • Numerically ordered resources


                                        49
Attacking the Circular Wait
            Condition
• The displayed deadlock
  cannot happen
                                1   2
  – If A requires 1, it must
    acquire it before
    acquiring 2
  – Note: If B has 1, all
    higher numbered
    resources must be free or   A       B
    held by processes who
    doesn’t need 1
• Resources ordering is a
  common technique in
  practice!!!!!                             50
51
Summary of approaches to
     deadlock prevention
Condition            Approach
• Mutual Exclusion   • Not feasible
• Hold and Wait      • Request resources
                       initially
• No Preemption      • Take resources away
• Circular Wait      • Order resources




                                        52
Starvation
• Starvation is where the overall system makes progress, but
  one or more processes never make progress.

   – Example: An 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 ready
     and not waiting for a resource.

• One solution:
   – First-come, first-serve policy

                                                                      53

More Related Content

PPT
Deadlocks
PPT
Deadlocks
PPT
Mca ii os u-3 dead lock & io systems
PDF
7 Deadlocks
PDF
Dead Lock In Operating Systems
PPT
Dead Lock
PPT
Operating System Deadlock Galvin
Deadlocks
Deadlocks
Mca ii os u-3 dead lock & io systems
7 Deadlocks
Dead Lock In Operating Systems
Dead Lock
Operating System Deadlock Galvin

What's hot (20)

PPTX
Deadlocks in operating system
PPTX
Chapter 4
PPTX
Deadlock
PDF
OS - Deadlock
PPTX
Gp1242 007 oer ppt
PDF
Deadlock
PPT
Chapter 7 - Deadlocks
PPTX
Operating system Dead lock
PPTX
Deadlock detection & prevention
PPT
Deadlocks in operating system
PPTX
Dead lock
PPT
PPTX
Deadlock
PPTX
Deadlocks in operating system
PPTX
Deadlock in Operating System
PPT
Mch7 deadlock
PPTX
Operating system - Deadlock
PPTX
Deadlock avoidance and prevention .. computer networking
PPTX
deadlock detection using Goldman's algorithm by ANIKET CHOUDHURY
PPTX
Deadlock Avoidance in Operating System
Deadlocks in operating system
Chapter 4
Deadlock
OS - Deadlock
Gp1242 007 oer ppt
Deadlock
Chapter 7 - Deadlocks
Operating system Dead lock
Deadlock detection & prevention
Deadlocks in operating system
Dead lock
Deadlock
Deadlocks in operating system
Deadlock in Operating System
Mch7 deadlock
Operating system - Deadlock
Deadlock avoidance and prevention .. computer networking
deadlock detection using Goldman's algorithm by ANIKET CHOUDHURY
Deadlock Avoidance in Operating System
Ad

Viewers also liked (20)

PPTX
Mutual Exclusion using Peterson's Algorithm
PDF
CS9222 ADVANCED OPERATING SYSTEMS
PPT
Process Synchronization And Deadlocks
PPT
Banker customer relationship
PPTX
Deadlock ppt
PPT
Ch8 OS
 
PDF
Media Lab Aalto University October 2011
PPSX
আত্ম সচেতনতা
PDF
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
ODP
Sand
PDF
Presentation for "Provas de Agergação" - 3 licao
PPTX
Commemoration of the Great War 1914-1918 by David Langford
PPTX
Intro to advertising week 1, class 1 - hmlc
PDF
Chapter11 economics
PDF
CCRMA - 2011
PDF
ইভটিজিং প্রতিরোধে দক্ষতাভিত্তিক শিক্ষা
PPTX
Diseños de google sketchup
PPTX
Flexibiliteit als uitgangspunt voor een nieuwe taalmethode: ICT als meerwaarde
PDF
Tele3113 wk2tue
PPTX
Introducing A Branded Cell Phone To Vietnam
Mutual Exclusion using Peterson's Algorithm
CS9222 ADVANCED OPERATING SYSTEMS
Process Synchronization And Deadlocks
Banker customer relationship
Deadlock ppt
Ch8 OS
 
Media Lab Aalto University October 2011
আত্ম সচেতনতা
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
Sand
Presentation for "Provas de Agergação" - 3 licao
Commemoration of the Great War 1914-1918 by David Langford
Intro to advertising week 1, class 1 - hmlc
Chapter11 economics
CCRMA - 2011
ইভটিজিং প্রতিরোধে দক্ষতাভিত্তিক শিক্ষা
Diseños de google sketchup
Flexibiliteit als uitgangspunt voor een nieuwe taalmethode: ICT als meerwaarde
Tele3113 wk2tue
Introducing A Branded Cell Phone To Vietnam
Ad

Similar to Lect05 (20)

PDF
ikh311-05
PPT
28 to 29 detection
PPT
Amer deadlocks
PDF
9 deadlock
PPT
Os module 2 d
PPT
FP 202 Chapter 2 - Part 3
PPT
23 deadlock
PPTX
Deadlocks
PPTX
OS Presentation 1 (1).pptx
PPTX
operating system memory management with example
PPTX
Deadlock Detection Algorithm
PDF
Deadlocks Part- III.pdf
PDF
Errors (Concurrency)
PPTX
Operting System- unit5-part1_Deadlock.pptx
PDF
Deadlock in Distributed Systems
PDF
OS-Part-06.pdf
PPT
Chapter 03
PPT
3 (2).ppt
PPT
Deadlock detection and recovery by saad symbian
ikh311-05
28 to 29 detection
Amer deadlocks
9 deadlock
Os module 2 d
FP 202 Chapter 2 - Part 3
23 deadlock
Deadlocks
OS Presentation 1 (1).pptx
operating system memory management with example
Deadlock Detection Algorithm
Deadlocks Part- III.pdf
Errors (Concurrency)
Operting System- unit5-part1_Deadlock.pptx
Deadlock in Distributed Systems
OS-Part-06.pdf
Chapter 03
3 (2).ppt
Deadlock detection and recovery by saad symbian

More from Vin Voro (20)

PDF
Tele3113 tut6
PDF
Tele3113 tut5
PDF
Tele3113 tut4
PDF
Tele3113 tut1
PDF
Tele3113 tut3
PDF
Tele3113 tut2
PDF
Tele3113 wk11tue
PDF
Tele3113 wk10wed
PDF
Tele3113 wk10tue
PDF
Tele3113 wk11wed
PDF
Tele3113 wk7wed
PDF
Tele3113 wk9tue
PDF
Tele3113 wk8wed
PDF
Tele3113 wk9wed
PDF
Tele3113 wk7wed
PDF
Tele3113 wk7wed
PDF
Tele3113 wk7tue
PDF
Tele3113 wk6wed
PDF
Tele3113 wk6tue
PDF
Tele3113 wk5tue
Tele3113 tut6
Tele3113 tut5
Tele3113 tut4
Tele3113 tut1
Tele3113 tut3
Tele3113 tut2
Tele3113 wk11tue
Tele3113 wk10wed
Tele3113 wk10tue
Tele3113 wk11wed
Tele3113 wk7wed
Tele3113 wk9tue
Tele3113 wk8wed
Tele3113 wk9wed
Tele3113 wk7wed
Tele3113 wk7wed
Tele3113 wk7tue
Tele3113 wk6wed
Tele3113 wk6tue
Tele3113 wk5tue

Recently uploaded (20)

PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
01-Introduction-to-Information-Management.pdf
PPTX
Presentation on HIE in infants and its manifestations
PDF
A systematic review of self-coping strategies used by university students to ...
PDF
Computing-Curriculum for Schools in Ghana
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Cell Types and Its function , kingdom of life
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
01-Introduction-to-Information-Management.pdf
Presentation on HIE in infants and its manifestations
A systematic review of self-coping strategies used by university students to ...
Computing-Curriculum for Schools in Ghana
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Cell Types and Its function , kingdom of life
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
O7-L3 Supply Chain Operations - ICLT Program
Anesthesia in Laparoscopic Surgery in India
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
Microbial diseases, their pathogenesis and prophylaxis
Final Presentation General Medicine 03-08-2024.pptx
202450812 BayCHI UCSC-SV 20250812 v17.pptx
VCE English Exam - Section C Student Revision Booklet
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf

Lect05

  • 1. Chapter 6 Deadlocks 6.1. Resources 6.2. Introduction to deadlocks 6.3. The ostrich algorithm 6.4. Deadlock detection and recovery 6.5. Deadlock avoidance 6.6. Deadlock prevention 6.7. Other issues 1
  • 2. Learning Outcomes • Understand what deadlock is and how it can occur when giving mutually exclusive access to multiple resources. • Understand several approaches to mitigating the issue of deadlock in operating systems. – Including deadlock detection and recovery, deadlock avoidance, and deadlock prevention. 2
  • 3. Resources • Examples of computer resources – printers – tape drives – Tables in a database • Processes need access to resources in reasonable order • Preemptable resources – can be taken away from a process with no ill effects • Nonpreemptable resources – will cause the process to fail if taken away 3
  • 4. Resources & Deadlocks • Suppose a process holds resource A and requests resource B – at same time another process holds B and requests A – both are blocked and remain so - Deadlocked • Deadlocks occur when … – processes are granted exclusive access to devices, locks, tables, etc.. – we refer to these entities generally as resources 4
  • 5. Resource Access • Sequence of events required to use a resource 1. request the resource 2. use the resource 3. release the resource • Must wait if request is denied – requesting process may be blocked – may fail with error code 5
  • 6. Two example resource usage patterns semaphore res_1, res_2; semaphore res_1, res_2; void proc_A() { void proc_A() { down(&res_1); down(&res_1); down(&res_2); down(&res_2); use_both_res(); use_both_res(); up(&res_2); up(&res_2); up(&res_1); up(&res_1); } } void proc_B() { void proc_B() { down(&res_1); down(&res_2); down(&res_2); down(&res_1); use_both_res(); use_both_res(); up(&res_2); up(&res_1); up(&res_1); up(&res_2); } } 6
  • 7. Introduction to Deadlocks • Formal definition : A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause • Usually the event is release of a currently held resource • None of the processes can … – run – release resources – be awakened 7
  • 8. Four Conditions for Deadlock 1. Mutual exclusion condition • each resource assigned to 1 process or is available 2. Hold and wait condition • process holding resources can request additional 3. No preemption condition • previously granted resources cannot forcibly taken away 4. Circular wait condition • must be a circular chain of 2 or more processes • each is waiting for resource held by next member of the chain 8
  • 9. Deadlock Modeling • Modeled with directed graphs – resource R assigned to process A – process B is requesting/waiting for resource S – process C and D are in deadlock over resources T and U 9
  • 10. Deadlock Modeling A B C 10 How deadlock occurs
  • 11. Deadlock Modeling (o) (p) (q) 11 How deadlock can be avoided
  • 12. 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 12
  • 13. Approach 1: The Ostrich Algorithm • Pretend there is no problem • Reasonable if – deadlocks occur very rarely – cost of prevention is high • Example of “cost”, only one process runs at a time • UNIX and Windows takes this approach for some of the more complex resource relationships to manage • It’s a trade off between – Convenience (engineering approach) – Correctness (mathematical approach) 13
  • 14. Approach 2: Detection and Recovery • Need a method to determine if a system is deadlocked. • Assuming deadlocked is detected, we need a method of recovery to restore progress to the system. 14
  • 15. Approach 2 Detection with One Resource of Each Type • Note the resource ownership and requests • A cycle can be found within the graph, denoting deadlock 15
  • 16. What about resources with multiple units? • We need an approach for dealing with resources that consist of more than a single unit. 16
  • 17. Detection with Multiple Resources of Each Type Data structures needed by deadlock detection algorithm 17
  • 18. Note the following invariant Sum of current resource allocation + resources available = resources that exist n ∑ Cij + A j = E j i =1 18
  • 19. Detection with Multiple Resources of Each Type An example for the deadlock detection algorithm 19
  • 20. Detection Algorithm 1. Look for an unmarked process Pi, for which the i-th row of R is less than or equal to A 2. If found, add the i-th row of C to A, and mark Pi. Go to step 1 3. If no such process exists, terminate. Remaining processes are deadlocked 20
  • 21. Example Deadlock Detection E = (4 2 3 1) A = ( 2 1 0 0)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     21
  • 22. Example Deadlock Detection E = (4 2 3 1) A = ( 2 1 0 0)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     22
  • 23. Example Deadlock Detection E = (4 2 3 1) A = ( 2 2 2 0)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     23
  • 24. Example Deadlock Detection E = (4 2 3 1) A = ( 2 2 2 0)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     24
  • 25. Example Deadlock Detection E = (4 2 3 1) A = (4 2 2 1)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     25
  • 26. Example Deadlock Detection E = (4 2 3 1) A = (4 2 2 1)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     26
  • 27. Example Deadlock Detection E = (4 2 3 1) A = (4 2 2 1)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     27
  • 28. Example Deadlock Detection E = (4 2 3 1) A = (4 2 3 1)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 0     28
  • 29. Example Deadlock Detection • Algorithm terminates with no unmarked processes – We have no dead lock 29
  • 30. Example 2: Deadlock Detection • Suppose, P3 needs a CD-ROM as well as 2 Tapes and a Plotter E = (4 2 3 1) A = ( 2 1 0 0)  0 0 1 0  2 0 0 1     C =  2 0 0 1 R =  1 0 1 0  0 1 2 0  2 1 0 1     30
  • 31. Recovery from Deadlock • 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 31
  • 32. Recovery from Deadlock • 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 32
  • 33. Approach 3 Deadlock Avoidance • Instead of detecting deadlock, can we simply avoid it? – YES, but only if enough information is available in advance. • Maximum number of each resource required 33
  • 34. Deadlock Avoidance Resource Trajectories Two process resource trajectories 34
  • 35. Safe and Unsafe States • A state is safe if – The system is not deadlocked – There exists a scheduling order that results in every process running to completion, even if they all request their maximum resources immediately 35
  • 36. Safe and Unsafe States Note: We have 10 units of the resource (a) (b) (c) (d) (e) Demonstration that the state in (a) is safe 36
  • 37. Safe and Unsafe States A requests one extra unit resulting in (b) (a) (b) (c) (d) Demonstration that the state in b is not safe 37
  • 38. Safe and Unsafe State • Unsafe states are not necessarily deadlocked – With a lucky sequence, all processes may complete – However, we cannot guarantee that they will complete (not deadlock) • Safe states guarantee we will eventually complete all processes • Deadlock avoidance algorithm – Only grant requests that result in safe states 38
  • 39. Bankers Algorithm • Modelled on a Banker with Customers – The banker has a limited amount of money to loan customers • Limited number of resources – Each customer can borrow money up to the customer’s credit limit • Maximum number of resources required • Basic Idea – Keep the bank in a safe state • So all customers are happy even if they all request to borrow up to their credit limit at the same time. – Customers wishing to borrow such that the bank would enter an unsafe state must wait until somebody else repays their loan such that the the transaction becomes safe. 39
  • 40. The Banker's Algorithm for a Single Resource (a) (b) (c) • Three resource allocation states – safe – safe – unsafe 40
  • 41. Banker's Algorithm for Multiple Resources Example of banker's algorithm with multiple resources System should start in safe state! 41
  • 42. Banker's Algorithm for Multiple Resources Example of banker's algorithm with multiple resources Should we allow a request by B 1 scanner to succeed?? 42
  • 43. Banker's Algorithm for Multiple Resources Example of banker's algorithm with multiple resources Should we allow a request by B and E for 1 scanner to succeed?? 43
  • 44. Bankers Algorithm is not commonly used in practice • It is difficult (sometime impossible) to know in advance – the resources a process will require – the number of processes in a dynamic system 44
  • 45. Approach 4: Deadlock Prevention • Resource allocation rules prevent deadlock by prevent one of the four conditions required for deadlock from occurring – Mutual exclusion – Hold and wait – No preemption – Circular Wait 45
  • 46. Approach 4 Deadlock Prevention Attacking the Mutual Exclusion Condition • Not feasible in general – Some devices/resource are intrinsically not shareable. 46
  • 47. Attacking the Hold and Wait Condition • Require processes to request resources before starting – a process never has to wait for what it needs • Issues – may not know required resources at start of run • ⇒ not always possible – also ties up resources other processes could be using • Variations: – process must give up all resources if it would block hold a resource – then request all immediately needed – prone to starvation 47
  • 48. 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 – !!?? 48
  • 49. Attacking the Circular Wait Condition (a) (b) • Numerically ordered resources 49
  • 50. Attacking the Circular Wait Condition • The displayed deadlock cannot happen 1 2 – If A requires 1, it must acquire it before acquiring 2 – Note: If B has 1, all higher numbered resources must be free or A B held by processes who doesn’t need 1 • Resources ordering is a common technique in practice!!!!! 50
  • 51. 51
  • 52. Summary of approaches to deadlock prevention Condition Approach • Mutual Exclusion • Not feasible • Hold and Wait • Request resources initially • No Preemption • Take resources away • Circular Wait • Order resources 52
  • 53. Starvation • Starvation is where the overall system makes progress, but one or more processes never make progress. – Example: An 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 ready and not waiting for a resource. • One solution: – First-come, first-serve policy 53