Chapter 3: Deadlocks

Similar documents
Chapter 3: Deadlocks. Chapter 3

Operating Systems. Lecture3.2 - Deadlock Management. Golestan University. Hossein Momeni

Resources. Lecture 4. Deadlocks. Resources (2) Resources (1) Four Conditions for Deadlock. Introduction to Deadlocks

Chapter 3. Deadlocks

Chapter 3. Deadlocks

DEADLOCKS M O D E R N O P E R A T I N G S Y S T E M S C H A P T E R 6 S P R I N G

Deadlocks Prof. James L. Frankel Harvard University. Version of 7:05 PM 7-Mar-2017 Copyright 2017, 2015 James L. Frankel. All rights reserved.

Deadlocks. Today. Next Time. ! Resources & deadlocks! Dealing with deadlocks! Other issues. ! Memory management

Deadlocks. Today. Next Time. Resources & deadlocks Dealing with deadlocks Other issues. I/O and file systems

Chapter 6. Deadlocks

CS450/550 Operating Systems

Resources. Chapter 3. Deadlocks. Resources. Resources

Deadlocks. Thomas Plagemann. With slides from C. Griwodz, K. Li, A. Tanenbaum and M. van Steen

Learning Outcomes. Chapter 3. Deadlocks. Resources. Resources. Resources

Learning Outcomes. Chapter 6. Deadlocks. Resources. Resources & Deadlocks. Resource Access. Two example resource usage patterns

Deadlocks. Tore Larsen. With slides from T. Plagemann, C. Griwodz, K. Li, A. Tanenbaum and M. van Steen

MODERN OPERATING SYSTEMS. Third Edition ANDREW S. TANENBAUM. Chapter 6 Deadlocks

MODERN OPERATING SYSTEMS. Third Edition ANDREW S. TANENBAUM. Chapter 6 Deadlocks

Introduction to OS. Deadlock. MOS Ch. 6. Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1

CISC 7310X. C10: Deadlocks. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 4/12/2018 CUNY Brooklyn College

Concurrency problems. To do. q Non-deadlock bugs q Resources & deadlocks q Dealing with deadlocks q Other issues q Next Time: I/O and file systems

Deadlocks. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Concurrency problems. q Non-deadlock bugs q Resources & deadlocks q Dealing with deadlocks q Other issues q Next Time: I/O and file systems

Operating Systems. Deadlock. User OS. Kernel & Device Drivers. Interface Programs. Brian Mitchell - Operating Systems

! What is a deadlock? ! What causes a deadlock? ! How do you deal with (potential) deadlocks? Maria Hybinette, UGA

Process P holds resource R. Process P is waiting for resource R. P Process P holds T and requests R. R Process Q holds R and requests T

!! What is a deadlock? !! What causes a deadlock? !! How do you deal with (potential) deadlocks? Maria Hybinette, UGA

Chapter 6 - Deadlocks

Shared and Preemptable Resources. A few resources may be sharable. Anyone can write the system log.

More on Synchronization and Deadlock

11 Resource Management Deadlock and Starvation

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Deadlock

Operating Systems. Deadlocks

Operating Systems ECE344. Ding Yuan

Deadlocks. Copyright : University of Illinois CS 241 Staff 1

Deadlock. A Bit More on Synchronization. The Deadlock Problem. Deadlock Characterization. Operating Systems 2/7/2005. CSC 256/456 - Spring

COS 318: Operating Systems. Deadlocks. Jaswinder Pal Singh Computer Science Department Princeton University

Deadlocks. Operating Systems. Resources. Deadlocks

COMPUTER SCIENCE 4500 OPERATING SYSTEMS

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

Computer Science 4500 Operating Systems. In This Module. Deadlock Definition. Module 7 Deadlocks

Computer Science 4500 Operating Systems

Deadlock 1 Chapter 6

Deadlock 1 Chapter 6

OPERATING SYSTEMS. After A.S.Tanenbaum, Modern Operating Systems, 3rd edition. Uses content with permission from Assoc. Prof. Florin Fortis, PhD

What is Deadlock? Two or more entities need a resource to make progress, but will never get that resource. Examples from everyday life:

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.

Chapter 6. Deadlock. (A Quick Introduction)

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

CMPT 300 Introduction to Operating Systems

ECS 150 (Operating Systems) Goal To examine what causes deadlock, and what to do about it. Spring Quarter

OPERATING SYSTEMS. Deadlocks

Deadlock and Starvation

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,

Deadlocks. System Model

Deadlock and Starvation

UNIT 4 DEADLOCKS 4.0 INTRODUCTION

Last Class: Monitors. Real-world Examples

CSE 306/506 Operating Systems Deadlock. YoungMin Kwon

VI. Deadlocks. What is a Deadlock? Intended Schedule. Deadlock Problem (1) ???

VI. Deadlocks Operating Systems Prof. Dr. Marc H. Scholl DBIS U KN Summer Term

6. Concurrency: Deadlock

Deadlocks. Dr. Yingwu Zhu

The Deadlock Problem (1)

Chap. 3. Input/Output

Chapter 7: Deadlocks 1

CSE 380 Computer Operating Systems

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

Operating Systems. Operating Systems Sina Meraji U of T

CSE Opera+ng System Principles

Final Exam Review. CPSC 457, Spring 2016 June 29-30, M. Reza Zakerinasab Department of Computer Science, University of Calgary

CSCC 69H3 2/1/13. Today: Deadlock. Remember example from last week? Example of Deadlock. Example: dining philosophers: Not just an OS Problem!

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

Chapter 7: Deadlocks

Process Management. Deadlock. Process Synchronization. Management Management. Starvation

System Model. Deadlocks. Deadlocks. For example: Semaphores. Four Conditions for Deadlock. Resource Allocation Graph

Back to synchronization

Frequently asked questions from the previous class survey

Yet another synchronization problem

CS Operating Systems

CS Operating Systems

Chapter 7: Deadlocks. Operating System Concepts 8th Edition, modified by Stewart Weiss

The Deadlock Problem

Concurrency: Deadlock and Starvation. Chapter 6

Deadlock. Disclaimer: some slides are adopted from Dr. Kulkarni s and book authors slides with permission 1

Deadlocks. Prepared By: Kaushik Vaghani

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,

Readings and References. Deadlock. Deadlock. Simple Traffic Gridlock Example. Reading. CSE Computer Systems November 30, 2001.

Deadlocks. Operating System Concepts - 7 th Edition, Feb 14, 2005

Chapter 8: Deadlocks. Bridge Crossing Example. The Deadlock Problem

Deadlocks. Copyright : University of Illinois CS 241 Staff 1

Principles of Operating Systems

CS420: Operating Systems. Deadlocks & Deadlock Prevention

Chapter 6 Concurrency: Deadlock and Starvation

Deadlocks: Part I Prevention and Avoidance Yi Shi Fall 2017 Xi an Jiaotong University

Chapter 8: Deadlocks. The Deadlock Problem

The Deadlock Problem. Chapter 8: Deadlocks. Bridge Crossing Example. System Model. Deadlock Characterization. Resource-Allocation Graph

Chapter 7: Deadlocks. Operating System Concepts 8 th Edition,! Silberschatz, Galvin and Gagne 2009!

Deadlocks. Deadlock in Resource Sharing Environment. CIT 595 Spring Recap Example. Representing Deadlock

Operating Systems: Quiz2 December 15, Class: No. Name:

Transcription:

Chapter 3: Deadlocks

Overview Resources Why do deadlocks occur? Dealing with deadlocks Ignoring them: ostrich algorithm Detecting & recovering from deadlock Avoiding deadlock Preventing deadlock

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

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 Process 1 Process 2 A B A B DEADLOCK!

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

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

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

Resource allocation graphs Resource allocation A B modeled by directed graphs R S Example 1: Resource R assigned to process A T Example 2: Process B is requesting / waiting for resource S C U D Example 3: Process C holds T, waiting for U Process D holds U, waiting for T C and D are in deadlock!

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

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 A B C A B C A B C R S T Acquire R A B C R S T Acquire S A B C R S T Acquire T A B C R S T Acquire S R S T Acquire T R S T DEADLOCK! Acquire R

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

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

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) Process Holds Wants A R S B T C S D U S,T E T V F W S G V U R C A S F W D U G B T E V

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 r e 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) } }

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

Deadlock detection algorithm Hold Want A B C D Avail 2 3 0 1 Process A B C D 1 0 3 0 0 2 1 0 1 1 3 0 2 1 0 4 2 2 3 0 Process A B C D 1 3 2 1 0 2 2 2 0 0 3 3 5 3 1 4 0 4 1 1 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!

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 saved state to restart the process if it s in deadlock 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 Try to choose a process that can be rerun from the start - Pick one that hasn t run too far already

Resource trajectories Two process resource trajectories

Safe and unsafe states Has Max Has Max Has Max Has Max Has Max A 3 9 A 3 9 A 3 9 A 3 9 A 3 9 B 2 4 B 4 4 B 0 - B 0 - B 0 - C 2 7 C 2 7 C 2 7 C 7 7 C 0 - Free: 3 Free: 1 Free: 5 Free: 0 Free: 7 Demonstration that the first state is safe Has Max Has Max Has Max Has Max A 3 9 A 4 9 A 4 9 A 4 9 B 2 4 B 2 4 B 4 4 B 0 - C 2 7 C 2 7 C 2 7 C 2 7 Free: 3 Free: 2 Free: 0 Free: 4 Demonstration that the second state is unsafe

Banker's Algorithm for a single resource Has Max A 0 6 B 0 5 C 0 4 D 0 7 Free: 10 Has Max A 1 6 B 1 5 C 2 4 D 4 7 Free: 2 Bankers algorithm: before granting a request, ensure that a sequence exists that will allow all Has Max A 1 6 B 2 5 C 2 4 D 4 7 Free: 1 Any sequence finishes C,B,A,D finishes Deadlock (unsafe state) 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!

Banker's Algorithm for multiple resources Example of banker's algorithm with multiple resources

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

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

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 new ones Problem: what if someone grabs the resources in the meantime how can the process save its state?

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

Attacking circular wait Assign an order to resources Always acquire resources D in numerical order Need not acquire them all at once! C 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! 3 B A 2 1

Deadlock prevention: summary Mutual exclusion Spool everything Hold and wait Request all resources initially No preemption Take resources away Circular wait Order resources numerically

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-andwait deadlock condition

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

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

Livelock Sometimes, processes can still run, but not make progress Example: two processes want to use resources A and B P0 gets A, P1 gets B Each realizes that a deadlock will occur if they proceed as planned! P0 drops A, P1 drops B P0 gets B, P1 gets A Same problem as before This can go on for a very long time... Real-world example: Ethernet transmission collisions If there s a collision on the wire, wait and try again Multiple processes waited the exact same amount of time...