Presentation is loading. Please wait.

Presentation is loading. Please wait.

CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:

Similar presentations


Presentation on theme: "CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:"— Presentation transcript:

1 CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL: http://kovan.ceng.metu.edu.tr/~erol/Courses/ceng334 Deadlocks Topics: Deadlocks Dining philosopher problem

2 2 Deadlock: Bridge Crossing Example Traffic only in one direction. Each section of a bridge can be viewed as a resource. If a deadlock occurs, it can be resolved if one car backs up (preempt resources and rollback). Several cars may have to be backed up if a deadlock occurs. Starvation is possible.

3 3 Deadlock A deadlock happens when ● Two (or more) threads waiting for each other ● None of the deadlocked threads ever make progress Mutex 1 Thread 1Thread 2 Mutex 2 holds waits for Adapted from Matt Welsh’s (Harvard University) slides.

4 4 Deadlock Definition Two kinds of resources: ● Preemptible: Can take away from a thread ● e.g., the CPU ● Non-preemptible: Can't take away from a thread ● e.g., mutex, lock, virtual memory region, etc. Why isn't it safe to forcibly take a lock away from a thread? Starvation ● A thread never makes progress because other threads are using a resource it needs Deadlock ● A circular waiting for resources ● Thread A waits for Thread B ● Thread B waits for Thread A Starvation ≠ Deadlock Adapted from Matt Welsh’s (Harvard University) slides.

5 5 The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set. Example ● System has 2 tape drives. ● P 1 and P 2 each hold one tape drive and each needs another one. Example ● semaphores A and B, initialized to 1 P 0 P 1 P(A);P(B) P(B);P(A) Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

6 6 Dining Philosophers Classic deadlock problem ● Multiple philosophers trying to lunch ● One chopstick to left and right of each philosopher ● Each one needs two chopsticks to eat Adapted from Matt Welsh’s (Harvard University) slides.

7 7 Dining Philosophers What happens if everyone grabs the chopstick to their right? ● Everyone gets one chopstick and waits forever for the one on the left ● All of the philosophers starve!!! Adapted from Matt Welsh’s (Harvard University) slides.

8 8 Dining Philosophers How do we solve this problem?? ● (Apart from letting them eat with forks.) Adapted from Matt Welsh’s (Harvard University) slides.

9 9 System Model Resource types R 1, R 2,..., R m CPU cycles, memory space, I/O devices Each resource type R i has W i instances. Each process utilizes a resource as follows: ● request ● use ● release Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

10 10 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 {P 0, P 1, …, P 0 } of waiting processes such that P 0 is waiting for a resource that is held by P 1, P 1 is waiting for a resource that is held by P 2, …, P n–1 is waiting for a resource that is held by P n, and P 0 is waiting for a resource that is held by P 0. Deadlock can arise if four conditions hold simultaneously. Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

11 11 Resource-Allocation Graph V is partitioned into two types: ● P = {P 1, P 2, …, P n }, the set consisting of all the processes in the system. ● R = {R 1, R 2, …, R m }, the set consisting of all resource types in the system. request edge – directed edge P 1  R j assignment edge – directed edge R j  P i A set of vertices V and a set of edges E. Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

12 12 Resource-Allocation Graph (Cont.) Process Resource Type with 4 instances P i requests instance of R j P i is holding an instance of R j PiPi PiPi RjRj RjRj Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

13 13 Resource Allocation Graph With A Deadlock If there is a deadlock => there is a cycle in the graph. However the reverse is not true! Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

14 14 Resource Allocation Graph With A Cycle But No Deadlock However the existence of a cycle in the graph does not necessarily imply a deadlock. Overall message: If graph contains no cycles  no deadlock. If graph contains a cycle  ● if only one instance per resource type, then deadlock. ● if several instances per resource type, possibility of deadlock. Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.

15 15 Dining Philosophers How do we solve this problem?? ● (Apart from letting them eat with forks.) Adapted from Matt Welsh’s (Harvard University) slides.

16 16 How to solve this problem? Solution 1: Don't wait for chopsticks ● Grab the chopstick on your right ● Try to grab chopstick on your left ● If you can't grab it, put the other one back down ● Breaks “no preemption” condition – no waiting! Solution 2: Grab both chopsticks at once ● Requires some kind of extra synchronization to make it atomic ● Breaks “multiple independent requests” condition! Solution 3: Grab chopsticks in a globally defined order ● Number chopsticks 0, 1, 2, 3, 4 ● Grab lower-numbered chopstick first ● Means one person grabs left hand rather than right hand first! ● Breaks “circular dependency” condition Solution 4: Detect the deadlock condition and break out of it ● Scan the waiting graph and look for cycles ● Shoot one of the threads to break the cycle Adapted from Matt Welsh’s (Harvard University) slides.

17 17 Methods for Handling Deadlocks ● Ensure that the system will never enter a deadlock state. ● Allow the system to enter a deadlock state and then recover. ● Ignore the problem and pretend that deadlocks never occur in the system; used by most operating systems, including UNIX. Adapted from Operating System Concepts (Silberschatz, Galvin, Gagne) slides.


Download ppt "CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:"

Similar presentations


Ads by Google