Download presentation
Presentation is loading. Please wait.
Published byAnnabella Parker Modified over 9 years ago
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.