CSE 451: Operating Systems Spring 2006 Module 8 Deadlock

Slides:



Advertisements
Similar presentations
Concurrency: Deadlock and Starvation Chapter 6. Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate.
Advertisements

Operating Systems Lecture Notes Deadlocks Matthew Dailey Some material © Silberschatz, Galvin, and Gagne, 2002.
6. Deadlocks 6.1 Deadlocks with Reusable and Consumable Resources
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 6 Deadlocks Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All.
Tanenbaum Ch 6 Silberschatz Ch 7
Chapter 7 Deadlocks. 7.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005 Chapter 7: Deadlocks 7.1 System Model.
Deadlocks. 2 System Model There are non-shared computer resources –Maybe more than one instance –Printers, Semaphores, Tape drives, CPU Processes need.
Deadlock CSCI 444/544 Operating Systems Fall 2008.
Deadlock Detection with One Resource of Each Type (1)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 7: Deadlocks.
Chapter 7: Deadlocks. 7.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bridge Crossing Example Traffic only in one direction. Each section.
CSE 451: Operating Systems Winter 2011 Deadlock Mark Zbikowski Gary Kimura.
CSE 451: Operating Systems Spring 2013 Module 9 Deadlock Ed Lazowska Allen Center 570 © 2013 Gribble, Lazowska, Levy, Zahorjan.
IT 344: Operating Systems Winter 2010 Module 8 Deadlock Chia-Chi Teng CTB 265.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Deadlocks.
1 Deadlocks Chapter Resource 3.2. Introduction to deadlocks 3.3. The ostrich algorithm 3.4. Deadlock detection and recovery 3.5. Deadlock avoidance.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks Modified.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
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.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 6 Deadlocks Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All.
CS333 Intro to Operating Systems Jonathan Walpole.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 7: Deadlocks.
Operating Systems Unit VI Deadlocks and Protection Department of Computer Science Engineering and Information Technology.
7.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 7: Deadlocks The Deadlock Problem System Model Deadlock Characterization.
7.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Edited by Khoury, 2015 Operating System Concepts – 9 th Edition, Chapter 7: Deadlocks.
IT 344: Operating Systems Module 8 Deadlock Chia-Chi Teng CTB 265.
Deadlock. Stepping on each other’s feet - I Thread T 1 b1:= allocate(); b2:= allocate(); …… release(b1); release(b2); Thread T 2 b1:= allocate(); b2:=
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 Deadlock.
Chapter 10 Deadlock. What is Deadlock? Two or more entities need a resource to make progress, but will never get that resource Examples from everyday.
CSE 451: Operating Systems Spring 2010 Module 9 Deadlock John Zahorjan Allen Center 534.
Deadlock CSE451 Andrew Whitaker. Review: What Can Go Wrong With Threads? Safety hazards  “Program does the wrong thing” Liveness hazards  “Program never.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
CSE 120 Principles of Operating
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Concurrency: Deadlock and Starvation
CSE 451: Operating Systems Winter 2014 Module 9 Deadlock
CSE 451: Operating Systems Winter 2012 Deadlock
Deadlock Management.
CS703 - Advanced Operating Systems
Chapter 7: Deadlocks Source & Copyright: Operating System Concepts, Silberschatz, Galvin and Gagne.
Introduction to Operating Systems
Lecture 19: Deadlock: Conditions, Detection and Avoidance
Deadlock, Illustrated.
CSE 451: Operating Systems Winter 2007 Module 8 Deadlock
Deadlocks Definition A set of processes is in a Deadlock state when every process in the set is waiting for an event that can only be caused by another.
CS 333 Introduction to Operating Systems Class 7 - Deadlock
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Deadlocks Peng Lu In a multiprogramming environment, several processes may compete for a finite number of resources. A process requests resources; if the.
CSE 451: Operating Systems Autumn 2009 Module 9 Deadlock
CSE 451: Operating Systems Spring 2005 Module 8 Deadlock
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
CSE 451: Operating Systems Autumn 2010 Module 9 Deadlock
Lecture 19: Deadlock: Conditions, Detection and Avoidance
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
CSE 451: Operating Systems Winter 2007 Module 8 Deadlock
OPERATING SYSTEMS DEADLOCKS.
CSE 451: Operating Systems Spring 2008 Module 9 Deadlock
Introduction to Deadlocks
CSE 380 Lecture Note 12 Insup Lee
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
CENG334 Introduction to Operating Systems
CSE 451: Operating Systems Winter 2004 Module 8 Deadlock
CSE 451: Operating Systems Winter 2006 Module 8 Deadlock
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Presentation transcript:

CSE 451: Operating Systems Spring 2006 Module 8 Deadlock John Zahorjan zahorjan@cs.washington.edu Allen Center 534 1

© 2006 Gribble, Lazowska, Levy, Zahorjan (Is Google the greatest, or what?) 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Definition A thread is deadlocked when it’s waiting for an event that can never occur I’m waiting for you to clear the intersection, so I can proceed but you can’t move until he moves, and he can’t move until she moves, and she can’t move until I move thread A is in critical section 1, waiting for access to critical section 2; thread B is in critical section 2, waiting for access to critical section 1 I’m trying to book a vacation package to Tahiti – air transportation, ground transportation, hotel, side-trips. It’s all-or-nothing – one high-level transaction – with the four databases locked in that order. You’re trying to do the same thing in the opposite order. 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Requirements Mutual Exclusion Hold and Wait No Preemption Circular Wait 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Resource graph A deadlock exists if there is an irreducible cycle in the resource graph (such as the one above) 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Graph reduction A graph can be reduced by a thread if all of that thread’s requests can be granted in this case, the thread eventually will terminate – all resources are freed – all arcs (allocations) to it in the graph are deleted Miscellaneous theorems (Holt, Havender): There are no deadlocked threads iff the graph is completely reducible The order of reductions is irrelevant (Detail: resources with multiple units) 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

Resource allocation graph with no cycle What would cause a deadlock? 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan Silberschatz, Galvin and Gagne 2002

Resource allocation graph with a deadlock 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan Silberschatz, Galvin and Gagne 2002

Resource allocation graph with a cycle but no deadlock 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan Silberschatz, Galvin and Gagne 2002

Approaches to Deadlock Break one of the four required conditions Mutual Exclusion? Hold and Wait? No Preemption? Circular Wait? Broadly classified as: prevention, or avoidance, or detection (and recovery) 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Prevention Hold and Wait each thread obtains all resources at the beginning; blocks until all are available drawback? Circular Wait resources are numbered; each thread obtains them in sequence (which means acquiring some before they are actually needed) why does this work? pros and cons? Mutual Exclusion No Preemption Application limited 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Avoidance Circular Wait each thread states its maximum claim for every resource type system runs the Banker’s algorithm at each allocation request Banker  incredibly conservative if I were to allocate you that resource, and then everyone were to request their maximum claim for every resource, could I find a way to allocate remaining resources so that everyone finished? More on this in a moment… 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Detection and Recover every once in a while, check to see if there’s a deadlock how? if so, eliminate it 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

Avoidance: Banker’s Algorithm Example When a request is made pretend you granted it pretend all other legal requests were made can the graph be reduced? if so, allocate the requested resource if not, block the thread 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan 1. I request a pot Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Allocation is OK; there is a way for me to complete, and then you can complete Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan 2. You request a pot Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Allocation is OK; there is a way for me to complete, and then you can complete Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan 3a. You request a pan Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan NO! Both of us might be unable to complete! Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan 3b. I request a pan Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Allocation is OK; there is a way for me to complete, and then you can complete Pots Me You Pans Max: 1 pot 2 pans Max: 2 pots 1 pan 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan

© 2006 Gribble, Lazowska, Levy, Zahorjan Summary Deadlock is bad! We can deal with it either statically (prevention) or dynamically (avoidance and detection) In practice, ordering locks is probably the technique you’ll encounter most often 12/31/2018 © 2006 Gribble, Lazowska, Levy, Zahorjan