Chapter 3 Chapter 3: Deadlocks Chapter 3 2 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Overview Resources Why do.

Slides:



Advertisements
Similar presentations
Advanced Operating Systems
Advertisements

1 Deadlock Solutions: Avoidance, Detection, and Recovery CS 241 March 30, 2012 University of Illinois.
Deadlocks Today Resources & deadlocks Dealing with deadlocks Other issues Next Time Memory management.
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Ceng Operating Systems Chapter 2.4 : Deadlocks Process concept  Process scheduling  Interprocess communication  Deadlocks Threads.
Chapter 3 Deadlocks TOPICS Resource Deadlocks The ostrich algorithm
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 6 Deadlocks Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All.
1 Deadlocks Chapter Resource 3.2. Introduction to deadlocks 3.3. The ostrich algorithm 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance.
Tanenbaum Ch 6 Silberschatz Ch 7
5/25/2015Page 1 Deadlock Management B. Ramamurthy.
DEADLOCK.
Chapter 3 Deadlocks - Αδιέξοδα 3.1. Resource
With slides from C. Griwodz, K. Li, A. Tanenbaum and M. van Steen
Avishai Wool lecture Introduction to Systems Programming Lecture 5 Deadlocks.
DPNM Lab. Dept. of CSE, POSTECH
Deadlock Chapter 3 R1 R2 P2P1 Allocated Requested.
Deadlocks Tore Larsen With slides from T. Plagemann, C. Griwodz, K. Li, A. Tanenbaum and M. van Steen.
Mehdi Naghavi Spring 1386 Operating Systems Mehdi Naghavi Spring 1386.
Chapter 3: Deadlocks Chapter 3 2 CMPS 111, UC Santa Cruz Overview  Resources  Why do deadlocks occur?  Dealing with deadlocks Ignoring them: ostrich.
Deadlocks. 2 System Model There are non-shared computer resources –Maybe more than one instance –Printers, Semaphores, Tape drives, CPU Processes need.
The Banker’s Algorithm for A Single Resource
Deadlock CSCI 444/544 Operating Systems Fall 2008.
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
CS450/550 Deadlocks.1 Adapted from MOS2E UC. Colorado Springs CS450/550 Operating Systems Lecture 3 Deadlocks Palden Lama Department of Computer Science.
Deadlock Chapter 3 Thursday, February 22, Today’s Schedule Assignment #4 from Chapter 3 posted Deadlock - Chapter 3  Skip multiple resources (3.4.2.
CH 3 Deadlock When 2 (or more) processes remain blocked forever!
1 Deadlocks Chapter Resource 3.2. Introduction to deadlocks 3.3. The ostrich algorithm 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance.
Chapter 3: Deadlocks. CMPS 111, Fall Overview ✦ Resources ✦ Why do deadlocks occur? ✦ Dealing with deadlocks Ignoring them: ostrich algorithm Detecting.
Chapter 7 – Deadlock (Pgs 283 – 306). Overview  When a set of processes is prevented from completing because each is preventing the other from accessing.
Overview Resources Why do deadlocks occur? Dealing with deadlocks Ignoring them: ostrich algorithm Detecting & recovering from deadlock Avoiding deadlock.
1 Deadlocks Chapter Resource 3.2. Introduction to deadlocks 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance 3.6. Deadlock prevention.
1 Deadlocks 2 Resources Examples of computer resources –printers –tape drives –tables Processes need access to resources in reasonable order Suppose.
1 Deadlocks Chapter Resource 3.2. Introduction to deadlocks 3.3. The ostrich algorithm 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance.
1 Deadlocks Chapter 3. 2 Resources Examples of computer resources –printers –tape drives –tables Processes need access to resources in reasonable order.
1 Pertemuan 10 Deadlock (lanjutan) Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5.
Operating Systems 软件学院 高海昌 Operating Systems Gao Haichang, Software School, Xidian University 22 Contents  1. Introduction** 
1 Deadlock Definition of deadlock Condition for its occurrence Solutions for avoiding and breaking deadlock –Deadlock Prevention –Deadlock Avoidance –Deadlock.
1 Deadlocks Chapter Resource 3.2. Introduction to deadlocks 3.3. The ostrich algorithm 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance.
Operating Systems (OS)
1 MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 6 Deadlocks Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc.
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 6 Deadlocks Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All.
CSC 322 Operating Systems Concepts Lecture - 28: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Deadlocks System Model RAG Deadlock Characterization
CS333 Intro to Operating Systems Jonathan Walpole.
Operating Systems COMP 4850/CISG 5550 Deadlocks Dr. James Money.
CH 3 Deadlock When 2 (or more) processes remain blocked forever!
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 Deadlock.
Deadlocks References –text: Tanenbaum ch.3. Deadly Embrace Deadlock definition –A set of process is dead locked if each process in the set is waiting.
Lecture 6 Deadlock 1. Deadlock and Starvation Let S and Q be two semaphores initialized to 1 P 0 P 1 wait (S); wait (Q); wait (Q); wait (S);. signal (S);
Sistem Operasi IKH311 Deadlock. 2 Resources Examples of computer resources printers tape drives tables Processes need access to resources in reasonable.
Deadlocks Lots of resources can only be used by one process at a time. Exclusive access is needed. Suppose process A needs R1 + R2 and B needs R1 + R2.
Process Management Deadlocks.
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Deadlock Management.
ITEC 202 Operating Systems
Chapter 6 : Deadlocks What is a Deadlock?
Deadlocks References text: Tanenbaum ch.3.
Lecture 19: Deadlock: Conditions, Detection and Avoidance
Deadlocks References text: Tanenbaum ch.3.
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
CS 333 Introduction to Operating Systems Class 7 - Deadlock
DPNM Lab. Dept. of CSE, POSTECH
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
Lecture 19: Deadlock: Conditions, Detection and Avoidance
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
Introduction to Deadlocks
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
Deadlocks References text: Tanenbaum ch.3.
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Presentation transcript:

Chapter 3 Chapter 3: Deadlocks

Chapter 3 2 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Overview Resources Why do deadlocks occur? Dealing with deadlocks Ignoring them: ostrich algorithm Detecting & recovering from deadlock Avoiding deadlock Preventing deadlock

Chapter 3 3 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Resources Resource: something a process uses Usually limited (at least somewhat) Examples of computer resources Printers Semaphores / locks Tables (in a database) Processes need access to resources in reasonable order Two types of resources: Preemptable resources: can be taken away from a process with no ill effects Nonpreemptable resources: will cause the process to fail if taken away

Chapter 3 4 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) When do deadlocks happen? Suppose Process 1 holds resource A and requests resource B Process 2 holds B and requests A Both can be blocked, with neither able to proceed Deadlocks occur when … Processes are granted exclusive access to devices or software constructs (resources) Each deadlocked process needs a resource held by another deadlocked process A B B A Process 1 Process 2 DEADLOCK!

Chapter 3 5 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Using resources Sequence of events required to use a resource Request the resource Use the resource Release the resource Can’t use the resource if request is denied Requesting process has options Block and wait for resource Continue (if possible) without it: may be able to use an alternate resource Process fails with error code Some of these may be able to prevent deadlock…

Chapter 3 6 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) What is a deadlock? 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 In deadlock, none of the processes can Run Release resources Be awakened

Chapter 3 7 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Four conditions for deadlock Mutual exclusion Each resource is assigned to at most one process Hold and wait A process holding resources can request more resources No preemption Previously granted resources cannot be forcibly taken away Circular wait There must be a circular chain of 2 or more processes where each is waiting for a resource held by the next member of the chain

Chapter 3 8 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Resource allocation graphs Resource allocation modeled by directed graphs Example 1: Resource R assigned to process A Example 2: Process B is requesting / waiting for resource S Example 3: Process C holds T, waiting for U Process D holds U, waiting for T C and D are in deadlock! R A S B U T DC

Chapter 3 9 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Dealing with deadlock How can the OS deal with deadlock? Ignore the problem altogether! Hopefully, it’ll never happen… Detect deadlock & recover from it Dynamically avoid deadlock Careful resource allocation Prevent deadlock Remove at least one of the four necessary conditions We’ll explore these tradeoffs

Chapter 3 10 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Getting into deadlock A B C Acquire R Acquire S Release R Release S Acquire S Acquire T Release S Release T Acquire T Acquire R Release T Release R R A S B T C Acquire R R A S B T C Acquire S R A S B T C Acquire T R A S B T C Acquire S R A S B T C Acquire T R A S B T C Acquire R Deadlock!

Chapter 3 11 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Not getting into deadlock… Many situations may result in deadlock (but don’t have to) In previous example, A could release R before C requests R, resulting in no deadlock Can we always get out of it this way? Find ways to: Detect deadlock and reverse it Stop it from happening in the first place

Chapter 3 12 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) The Ostrich Algorithm Pretend there’s no problem Reasonable if Deadlocks occur very rarely Cost of prevention is high UNIX and Windows take this approach Resources (memory, CPU, disk space) are plentiful Deadlocks over such resources rarely occur Deadlocks typically handled by rebooting Trade off between convenience and correctness

Chapter 3 13 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Detecting deadlocks using graphs Process holdings and requests in the table and in the graph (they’re equivalent) Graph contains a cycle => deadlock! Easy to pick out by looking at it (in this case) Need to mechanically detect deadlock Not all processes are deadlocked (A, C, F not in deadlock) RA S F W C ProcessHoldsWants ARS BT CS DUS,T ETV FWS GVU ED G B T VU

Chapter 3 14 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Deadlock detection algorithm General idea: try to find cycles in the resource allocation graph Algorithm: depth-first search at each node Mark arcs as they’re traversed Build list of visited nodes If node to be added is already on the list, a cycle exists! Cycle == deadlock For each node N in the graph { Set L = empty list unmark all arcs Traverse (N,L) } If no deadlock reported by now, there isn’t any define Traverse (C,L) { If C in L, report deadlock! Add C to L For each unmarked arc from C { Mark the arc Set A = arc destination /* NOTE: L is a local variable */ Traverse (A,L) }

Chapter 3 15 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Resources with multiple instances Previous algorithm only works if there’s one instance of each resource If there are multiple instances of each resource, we need a different method Track current usage and requests for each process To detect deadlock, try to find a scenario where all processes can finish If no such scenario exists, we have deadlock

Chapter 3 16 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Deadlock detection algorithm ABCD Avail2301 ProcessABCD ABCD Hold Want current=avail; for (j = 0; j < N; j++) { for (k=0; k<N; k++) { if (finished[k]) continue; if (want[k] < current) { finished[k] = 1; current += hold[k]; break; } if (k==N) { printf “Deadlock!\n”; // finished[k]==0 means process is in // the deadlock break; } Note: want[j],hold[j],current,avail are arrays!

Chapter 3 17 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Recovering from deadlock Recovery through preemption Take a resource from some other process Depends on nature of the resource and the process Recovery through rollback Checkpoint a process periodically Use this saved state to restart the process if it is found deadlocked May present a problem if the process affects lots of “external” things Recovery through killing processes Crudest but simplest way to break a deadlock: kill one of the processes in the deadlock cycle Other processes can get its resources Preferably, choose a process that can be rerun from the beginning Pick one that hasn’t run too far already

Chapter 3 18 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Two process resource trajectories Resource trajectories

Chapter 3 19 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Safe and unsafe states HasMax A39 B24 C27 Free: 3 HasMax A39 B44 C27 Free: 1 HasMax A39 B0- C27 Free: 5 HasMax A39 B0- C77 Free: 0 HasMax A39 B0- C0- Free: 7 Demonstration that the first state is safe HasMax A39 B24 C27 Free: 3 HasMax A49 B24 C27 Free: 2 HasMax A49 B44 C27 Free: 0 HasMax A49 B0- C27 Free: 4 Demonstration that the second state is unsafe

Chapter 3 20 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Banker's Algorithm for a single resource HasMax A06 B05 C04 D07 Free: 10 HasMax A16 B15 C24 D47 Free: 2 HasMax A16 B25 C24 D47 Free: 1 Bankers’ algorithm: before granting a request, ensure that a sequence exists that will allow all processes to complete Use previous methods to find such a sequence If a sequence exists, allow the requests If there’s no such sequence, deny the request Can be slow: must be done on each request! Any sequence finishes C,B,A,D finishesDeadlock (unsafe state)

Chapter 3 21 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Example of banker's algorithm with multiple resources Banker's Algorithm for multiple resources

Chapter 3 22 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Preventing deadlock Deadlock can be completely prevented! Ensure that at least one of the conditions for deadlock never occurs Mutual exclusion Circular wait Hold & wait No preemption Not always possible…

Chapter 3 23 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Eliminating mutual exclusion Some devices (such as printer) can be spooled Only the printer daemon uses printer resource This eliminates deadlock for printer Not all devices can be spooled Principle: Avoid assigning resource when not absolutely necessary As few processes as possible actually claim the resource

Chapter 3 24 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Attacking “hold and wait” Require processes to request resources before starting A process never has to wait for what it needs This can present problems A process may not know required resources at start of run This also ties up resources other processes could be using Processes will tend to be conservative and request resources they might need Variation: a process must give up all resources before making a new request Process is then granted all prior resources as well as the new ones Problem: what if someone grabs the resources in the meantime—how can the process save its state?

Chapter 3 25 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Attacking “no preemption” This is not usually a viable option Consider a process given the printer Halfway through its job, take away the printer Confusion ensues! May work for some resources Forcibly take away memory pages, suspending the process Process may be able to resume with no ill effects

Chapter 3 26 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Attacking “circular wait” Assign an order to resources Always acquire resources in numerical order Need not acquire them all at once! Circular wait is prevented A process holding resource n can’t wait for resource m if m < n No way to complete a cycle Place processes above the highest resource they hold and below any they’re requesting All arrows point up! A 1 B C D 23

Chapter 3 27 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Deadlock prevention: summary Mutual exclusion Spool everything Hold and wait Request all resources initially No preemption Take resources away Circular wait Order resources numerically

Chapter 3 28 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Example: two-phase locking Phase One Process tries to lock all data it needs, one at a time If needed data found locked, start over (no real work done in phase one) Phase Two Perform updates Release locks Note similarity to requesting all resources at once This is often used in databases It avoids deadlock by eliminating the “hold-and- wait” deadlock condition

Chapter 3 29 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) “Non-resource” deadlocks Possible for two processes to deadlock Each is waiting for the other to do some task Can happen with semaphores Each process required to do a down() on two semaphores (mutex and another) If done in wrong order, deadlock results Semaphores could be thought of as resources…

Chapter 3 30 CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt) Starvation Algorithm to allocate a resource Give the resource to the shortest job first Works great for multiple short jobs in a system May cause long jobs to be postponed indefinitely Even though not blocked Solution First-come, first-serve policy Starvation can lead to deadlock Process starved for resources can be holding resources If those resources aren’t used and released in a timely fashion, shortage could lead to deadlock