Deadlock - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Deadlock

Description:

Deadlock and Starvation with Semaphores. Examples. June 11, 2002 ... No preemption: resources are released only in voluntary manner by processes holding them ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 17
Provided by: SM
Category:

less

Transcript and Presenter's Notes

Title: Deadlock


1
Deadlock
  • COMP346 - Operating Systems
  • Tutorial 5
  • Edition 1.1, June 15, 2002

2
Topics
  • Deadlock Debrief
  • Simplest Example
  • Necessary Deadlock Conditions
  • Resource Allocation Graph
  • Deadlock Handling
  • Deadlock and Starvation with Semaphores
  • Examples

3
Deadlock
  • Simplest example
  • Two processes require two resources to complete
    (and release the resources)
  • There are only two instances of these resources
  • If they acquire one resource each, they block
    indefinitely waiting for each other to release
    the other resource gt
  • DEADLOCK, one of the biggest problems in
    multiprogramming.

4
Necessary Deadlock Conditions
  • Recall which conditions must hold (p. 245)
  • ME at least one process exclusively uses a
    resource
  • Hold and wait a process possesses at least one
    resources and requires more, which are held by
    others
  • No preemption resources are released only in
    voluntary manner by processes holding them
  • Circular wait P1?P2 ? P3 ? ? PN ? P1

5
Resource-Allocation Graph
  • An easy way to illustrate resource allocation and
    visually detect the deadlock situation(s)
  • Example
  • N1 resources
  • N processes
  • Every process needs 2 resources
  • Upon acquiring 2 resources, a process releases
    them
  • Is there a deadlock?

6
More Examples
  • Example from Salsa Theory Review
  • Resource Allocation Graph
  • Is the following true or false?
  • Deadlock cannot happen in a system with two
    processes.
  • One CPU
  • Two CPUs

7
Handling Deadlocks
  • Deadlock Ignorance
  • Deadlock Prevention
  • Deadlock Avoidance
  • Deadlock Detection and Recovery

8
Deadlock Ignorance
  • As system designers we may pretend that deadlocks
    dont happen -).
  • If they do happen, they dont happen very often.
  • Most common approach because its cheap (in terms
    of human labor, complexity of the system and
    systems performance).
  • Highest resource utilization.
  • Sysadmin can simply kill deadlocked processes or
    restart the system if its not responding.

9
Deadlock Prevention
  • Recall necessarily deadlock conditions
  • Deadlock prevention algorithms assure at least
    one these conditions do not hold, thus preventing
    occurrence of the deadlock.
  • Possible Disadvantages
  • Low device utilization
  • Reduced systems throughput
  • 1 p. 250

10
Deadlock Avoidance
  • Unlike in deadlock prevention, deadlock avoidance
    algorithms do not watch for necessary deadlock
    conditions, but use additional a priori info
    about future resource requests.
  • This info will help the system to avoid entering
    the unsafe state.
  • Disadvantages again, lower resource utilization
    (because resources may not be granted sometimes
    even if they are unused).
  • 1 P. 253

11
Deadlock Detection and Recovery
  • Instead of preventing or avoiding deadlocks we
    allow them to happen and also provide mechanisms
    to recover.
  • Problems
  • How often do we run detection algorithms?
  • How do we recover?
  • What is the cost of detection and recovery?
  • 1 P. 260, p. 264

12
Deadlocks and Starvation with Semaphores
  • Semaphores act like resources in this case, which
    can be acquired and (never) released.
  • One example as book suggests
  • 1 P. 204

P1 wait(sem1) wait(sem2) signal(sem1) signal(sem2) P2 wait(sem2) wait(sem1) signal(sem2) signal(sem1)
13
Deadlocks and Starvation with Semaphores (2)
  • Starvation, or indefinite blocking, is when a
    process is waiting on a semaphore where nobody is
    ever going to release it.
  • Another example of both deadlock and starvation

process A process B wait(mutex)
wait(mutex) ... ...
wait(synch) signal(synch) ...
... wait(synch) ... ...
... signal(mutex) signal
(mutex)
For this case assume mutex 1 synch
0 Try starting processes in any order and
see where they block.
14
Deadlocks and Starvation with Semaphores (3)
  • Yet another example -)

a) semaphore S -2 P1 P2 P3
ltphase1gt ltphase1gt ltphase1gt V(S)
V(S) V(S) P(S) P(S) P(S)
ltphase2gt ltphase2gt ltphase2gt
b) semaphore S -2, S1 0, S2 0 P1 P2
P3 ltphase1gt ltphase1gt ltphase1gt
V(S) V(S) V(S) P(S) P(S) P(S)
V(S1) P(S1) P(S2) ltphase2gt V(S2)
ltphase2gt ltphase2gt
15
Deadlocks and Starvation with Semaphores (4)
  • Things to note
  • Assume the P2, P3, P1 order in the starvation
    example
  • Assume the P1, P3, P2 order in the deadlock
    example
  • Blocking means getting out from the running state
    to the waiting state, so a context switch to the
    next process in the queue happens
  • In these example there are no multiple instances
    of these processes.

16
Deadlocks and Starvation with Semaphores (5)
  • Starvation scenario (in b)
  • 1) P2 ltphase1gt
  • 2) V(S) (S -1)
  • 3) P(S) (blocked-gtswitch to P3)
  • 4) P3 ltphase1gt
  • 5) V(S) (S 0)
  • 6) P(S) (blocked-gtswitch to P1)
  • 7) P1 ltphase1gt
  • 8) V(S) (S 1)
  • 9) P(S) (S 0)
  • 10) V(S1) (S1 1)
  • 11) ltphase2gt
  • 12) terminates
  • 13) ???
  • Deadlock Scenario
  • 1) P1 ltphase1gt
  • 2) V(S) (S -1)
  • 3) P(S) (blocked-gtswitch to P3)
  • 4) P3 ltphase1gt
  • 5) V(S) (S 0)
  • 6) P(S) (blocked-gtswitch to P2)
  • 7) P2 ltphase1gt
  • 8) V(S) (S 1)
  • 9) P(S1) (blocked)
  • 10) ???
Write a Comment
User Comments (0)
About PowerShow.com