CSE 451: Operating Systems Spring 2013 Module 9 Deadlock Ed Lazowska Allen Center 570 © 2013 Gribble, Lazowska, Levy, Zahorjan.

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

6. Deadlocks 6.1 Deadlocks with Reusable and Consumable Resources
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 7: 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.
Tanenbaum Ch 6 Silberschatz Ch 7
7.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 7: Deadlocks.
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.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
Avishai Wool lecture Introduction to Systems Programming Lecture 5 Deadlocks.
Multi-Object Synchronization. Main Points Problems with synchronizing multiple objects Definition of deadlock – Circular waiting for resources Conditions.
1 CS 333 Introduction to Operating Systems Class 7 - Deadlock Jonathan Walpole Computer Science Portland State University.
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.
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
Chapter 7: Deadlocks. 7.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005 Chapter 7: Deadlocks The Deadlock.
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.
CSE 451: Operating Systems Winter 2011 Deadlock Mark Zbikowski Gary Kimura.
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.
1 Deadlocks Chapter 3. 2 Resources Examples of computer resources –printers –tape drives –tables Processes need access to resources in reasonable order.
Operating Systems 软件学院 高海昌 Operating Systems Gao Haichang, Software School, Xidian University 22 Contents  1. Introduction** 
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  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 28 Handling Deadlock.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
Deadlocks System Model RAG Deadlock Characterization
CS333 Intro to Operating Systems Jonathan Walpole.
Operating Systems COMP 4850/CISG 5550 Deadlocks Dr. James Money.
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.
CSE 451: Operating Systems Spring 2010 Module 9 Deadlock John Zahorjan Allen Center 534.
Sistem Operasi IKH311 Deadlock. 2 Resources Examples of computer resources printers tape drives tables Processes need access to resources in reasonable.
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
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
Deadlock, Illustrated.
CSE 451: Operating Systems Winter 2007 Module 8 Deadlock
CSE 451: Operating Systems Spring 2006 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
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
DEADLOCK.
CSE 451: Operating Systems Autumn 2010 Module 9 Deadlock
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
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
CSE 451: Operating Systems Winter 2004 Module 8 Deadlock
CSE 451: Operating Systems Winter 2006 Module 8 Deadlock
Presentation transcript:

CSE 451: Operating Systems Spring 2013 Module 9 Deadlock Ed Lazowska Allen Center 570 © 2013 Gribble, Lazowska, Levy, Zahorjan

2

3 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.

© 2013 Gribble, Lazowska, Levy, Zahorjan 4 Four conditions must exist for deadlock to be possible 1.Mutual Exclusion 2.Hold and Wait 3.No Preemption 4.Circular Wait We’ll see that deadlocks can be addressed by attacking any of these four conditions.

© 2013 Gribble, Lazowska, Levy, Zahorjan 5 Resource Graphs

© 2013 Gribble, Lazowska, Levy, Zahorjan 6 Deadlock A deadlock exists if there is an irreducible cycle in the resource graph (such as the one above)

© 2013 Gribble, Lazowska, Levy, Zahorjan 7 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/from 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

© 2012 Gribble, Lazowska, Levy, Zahorjan 8 Resource allocation graph with no cycle Silberschatz, Galvin and Gagne  2002 What would cause a deadlock?

© 2012 Gribble, Lazowska, Levy, Zahorjan 9 Resource allocation graph with a deadlock Silberschatz, Galvin and Gagne  2002

© 2012 Gribble, Lazowska, Levy, Zahorjan 10 Resource allocation graph with a cycle but no deadlock Silberschatz, Galvin and Gagne  2002

© 2013 Gribble, Lazowska, Levy, Zahorjan 11 Handling Deadlock Eliminate one of the four required conditions –Mutual Exclusion Clearly we’re not going to eliminate this one! –Hold and Wait –No Preemption –Circular Wait Broadly classified as: –Prevention, or –Avoidance, or –Detection (and recovery)

© 2013 Gribble, Lazowska, Levy, Zahorjan 12 Prevention Applications must conform to behaviors guaranteed not to deadlock Eliminating hold and wait each thread obtains all resources at the beginning blocks until all are available drawback? Eliminating circular wait resources are numbered each thread obtains resources in sequence order (which could require acquiring some before they are actually needed) why does this work? pros and cons?

© 2013 Gribble, Lazowska, Levy, Zahorjan 13 Avoidance Less severe restrictions on program behavior Eliminating 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…

© 2013 Gribble, Lazowska, Levy, Zahorjan 14 Every once in a while, check to see if there’s a deadlock –how? If so, eliminate it –how? Detect and recover

© 2013 Gribble, Lazowska, Levy, Zahorjan 15 Avoidance: Banker’s Algorithm example Background –The set of controlled resources is known to the system –The number of units of each resource is known to the system –Each application must declare its maximum possible requirement of each resource type Then, the system can do the following: –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 until some thread releases resources, and then try pretending again

© 2013 Gribble, Lazowska, Levy, Zahorjan 16 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan 1. I request a pot

© 2013 Gribble, Lazowska, Levy, Zahorjan 17 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan Suppose we allocate, and then everyone requests their max? It’s OK; there is a way for me to complete, and then you can complete pretend

© 2013 Gribble, Lazowska, Levy, Zahorjan 18 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan 2. You request a pot

© 2013 Gribble, Lazowska, Levy, Zahorjan 19 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan Suppose we allocate, and then everyone requests their max? It’s OK; there is a way for me to complete, and then you can complete pretend

© 2013 Gribble, Lazowska, Levy, Zahorjan 20 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan 3a. You request a pan

© 2013 Gribble, Lazowska, Levy, Zahorjan 21 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan Suppose we allocate, and then everyone requests their max? NO! Both of us might be unable to complete! pretend

© 2013 Gribble, Lazowska, Levy, Zahorjan 22 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan 3b. I request a pan

© 2013 Gribble, Lazowska, Levy, Zahorjan 23 PotsPans MeYou Max: 1 pot 2 pans Max: 2 pots 1 pan Suppose we allocate, and then everyone requests their max? It’s OK; there is a way for me to complete, and then you can complete pretend

© 2013 Gribble, Lazowska, Levy, Zahorjan 24 Current practice Microsoft SQL Server –“The SQL Server Database Engine automatically detects deadlock cycles within SQL Server. The Database Engine chooses one of the sessions as a deadlock victim and the current transaction is terminated with an error to break the deadlock.” Oracle –As Microsoft SQL Server, plus “Multitable deadlocks can usually be avoided if transactions accessing the same tables lock those tables in the same order... For example, all application developers might follow the rule that when both a master and detail table are updated, the master table is locked first and then the detail table.”

© 2013 Gribble, Lazowska, Levy, Zahorjan 25 Windows internals (Linux no different) –“Unless they did a huge change in Vista (and from what I've heard they haven't modified this area), the NT kernel architecture is a deadlock minefield. With the multi-threaded re-entrant kernel there is plenty of deadlock potential.” –“Lock ordering is great in theory, and NT was originally designed with mutex levels, but they had to be abandoned. Inside the NT kernel there is a lot of interaction between memory management, the cache manager, and the file systems, and plenty of situations where memory management (maybe under the guise of its modified page writer) acquires its lock and then calls the cache manager. This happens while the file system calls the cache manager to fill the cache which in turn goes through the memory manager to fault in its page. And the list goes on.”

© 2013 Gribble, Lazowska, Levy, Zahorjan 26 Summary Deadlock is bad! We can deal with it either statically (prevention) or dynamically (avoidance and/or detection) In practice, you’ll encounter lock ordering, periodic deadlock detection/correction, and minefields