Presentation is loading. Please wait.

Presentation is loading. Please wait.

This Time - Deadlock Definition Conditions for deadlocks

Similar presentations


Presentation on theme: "This Time - Deadlock Definition Conditions for deadlocks"— Presentation transcript:

1 This Time - Deadlock Definition Conditions for deadlocks
Deadlock prevention & detection

2 Binary semaphore: printer, disk. Both initialized to be 1.
Deadlocks Deadlock = condition where multiple threads/processes wait on each other thread A printer->wait(); disk->wait(); do stuffs … disk->signal(); printer->signal(); thread B disk->wait(); printer->wait(); do stuffs … printer->signal(); disk->signal(); Binary semaphore: printer, disk. Both initialized to be 1.

3 Deadlocks, Example II

4 Deadlocks - Terminology
Can occur when several threads compete for finite number of resources simultaneously Deadlock prevention algorithms: Check resource requests & availability Deadlock detection: Finds instances of deadlock when threads stop making progress Tries to recover Note: Deadlock ≠ Starvation

5 When Deadlock Occurs All of below must hold: Mutual exclusion:
An instance of resource used by one thread at a time Hold and wait One thread holds resource while waiting for another; other thread holds that resource No preemption Thread can only release resource voluntarily No other thread or OS can force thread to release resource Circular wait Set of threads {t1, …, tn}: ti waits on ti+1, tn waits on t1

6 Deadlock: Example If no way to free resources (preemption), deadlock

7 Deadlock Detection: Resource Allocation Graph
Define graph with vertices: Resources = {r1, …, rm} Threads = {t1, …, tn} Request edge from thread to resource ti → rj Thread requested resource but not acquired it Assignment edge from resource to thread rj → ti OS has allocated resource to thread Deadlock detection No cycles → no deadlock Cycle → might be deadlock

8 Resource Allocation Graph: Example
Deadlock or not? Request edge from thread to resource ti → rj Thread requested resource but not acquired it Assignment edge from resource to thread rj → ti OS has allocated resource to thread

9 Deadlock Detection: Multiple Resources
What if there are multiple instances of a resource? Cycle → deadlock might exist If any instance held by thread outside cycle, progress is possible when thread releases resource

10 Deadlock Detection Deadlock or not?

11 Resource Allocation Graph: Example
Draw a graph for the following event: Each car going straight Request edge from thread to resource ti → rj Thread: requested resource but not acquired it Assignment edge from resource to thread rj → ti OS has allocated resource to thread

12 Resource Allocation Graph : Example
Draw a graph for the following event:

13 Detecting Deadlock (Single Instance of Resource)
Scan resource allocation graph for cycles & break them! Different ways to break cycles: Kill all threads in cycle Kill threads one at a time Force each to give up resources Preempt resources one at a time Roll back thread state to before acquiring resource Common in database transactions

14 Detecting Deadlock (Single Instance of Resource)
Detecting cycles takes O(n2)time n = |T| + |R| When to detect: When request cannot be satisfied On regular schedule, e.g. every hour When CPU utilization drops below threshold

15 Deadlock Prevention One way - instead of detection, ensure at least one of necessary conditions doesn’t hold Mutual exclusion Hold and wait No preemption Circular wait

16 Deadlock Prevention Mutual exclusion: Hold and wait
Make resources shareable (but not all resources can be shared) Hold and wait Guarantee that thread cannot hold one resource when it requests another Make threads request all resources they need at once and release all before requesting new set

17 Deadlock Prevention, continued
No preemption If thread requests resource that cannot be immediately allocated to it OS preempts (releases) all resources thread currently holds When all resources available: OS restarts thread Problem: not all resources can be preempted

18 Deadlock Prevention, continued
Circular wait Impose ordering (numbering) on resources and request them in order These solutions are not entirely adequate...


Download ppt "This Time - Deadlock Definition Conditions for deadlocks"

Similar presentations


Ads by Google