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

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

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

Synchronization. Heechul Yun

OS Structure. User mode/ kernel mode (Dual-Mode) Memory protection, privileged instructions. Definition, examples, how it works?

Synchronization. Heechul Yun. Disclaimer: some slides are adopted from the book authors and Dr. Kulkani

Synchronization. Disclaimer: some slides are adopted from the book authors slides 1

Synchronization. Disclaimer: some slides are adopted from the book authors slides 1

OS Structure. User mode/ kernel mode. System call. Other concepts to know. Memory protection, privileged instructions

Deadlock. Concepts to discuss. A System Model. Deadlock Characterization. Deadlock: Dining-Philosophers Example. Deadlock: Bridge Crossing Example

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.

The Deadlock Problem (1)

Last Class: Synchronization Problems!

Bridge Crossing Example

Deadlocks. Minsoo Ryu. Real-Time Computing and Communications Lab. Hanyang University.

Last Class: Monitors. Real-world Examples

CS307 Operating Systems Deadlocks

Deadlocks. Bridge Crossing Example. The Problem of Deadlock. Deadlock Characterization. Resource-Allocation Graph. System Model

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 7 Deadlocks. Zhi Wang Florida State University

Principles of Operating Systems

Chapter 7: Deadlocks

System Model. Types of resources Reusable Resources Consumable Resources

The Deadlock Problem

Chapter 7: Deadlocks

Chapter 8: Deadlocks

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

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

More on Synchronization and Deadlock

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

Module 7: Deadlocks. The Deadlock Problem. Bridge Crossing Example. System Model

CS420: Operating Systems. Deadlocks & Deadlock Prevention

What is the Race Condition? And what is its solution? What is a critical section? And what is the critical section problem?

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

Chapter 8: Deadlocks. Operating System Concepts with Java

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

Chapter 7: Deadlocks. Chapter 7: Deadlocks. The Deadlock Problem. Chapter Objectives. System Model. Bridge Crossing Example

Chapter 7: Deadlocks. Operating System Concepts with Java 8 th Edition

Deadlocks. Dr. Yingwu Zhu

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

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

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

Operating systems. Lecture 5. Deadlock: System Model. Deadlock: System Model. Process synchronization Deadlocks. Deadlock: System Model

UNIT-5 Q1. What is deadlock problem? Explain the system model of deadlock.

Module 7: Deadlocks. The Deadlock Problem

Module 7: Deadlocks. System Model. Deadlock Characterization. Methods for Handling Deadlocks. Deadlock Prevention. Deadlock Avoidance

Chapter 8: Deadlocks. The Deadlock Problem

The deadlock problem

Chapter 7: Deadlocks

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

Last Class: Synchronization Problems. Need to hold multiple resources to perform task. CS377: Operating Systems. Real-world Examples

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

Deadlocks: Detection & Avoidance

Chapter 8: Deadlocks. The Deadlock Problem

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

Last Class: Deadlocks. Today

Principles of Operating Systems

Deadlocks. Prepared By: Kaushik Vaghani

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

Deadlocks. Deadlock Overview

CSC 539: Operating Systems Structure and Design. Spring 2005

Chapter 7: Deadlocks

Chapter 7: Deadlocks CS370 Operating Systems

Lecture 7 Deadlocks (chapter 7)

Silberschatz, Galvin and Gagne 2013! CPU cycles, memory space, I/O devices! " Silberschatz, Galvin and Gagne 2013!

CHAPTER 7: DEADLOCKS. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CS370 Operating Systems

CSE Opera+ng System Principles

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

Deadlocks Characterization & Detection

Deadlock Risk Management

COMP 3713 Operating Systems Slides Part 3. Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University

The Deadlock Problem

CS307: Operating Systems

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

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

Deadlock Risk Management

Chapter 7: Deadlocks. Operating System Concepts 9th Edition DM510-14

CMSC 412. Announcements

Deadlock. Concurrency: Deadlock and Starvation. Reusable Resources

Deadlocks Detection and Avoidance. Prof. Sirer CS 4410 Cornell University

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

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

Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - X Deadlocks - I. University at Buffalo. Synchronization structures

Roadmap. Problems with Semaphores. Semaphores. Monitors. Monitor - Example. Tevfik Koşar. CSE 421/521 - Operating Systems Fall 2012

Deadlock. Operating Systems. Autumn CS4023

CS370 Operating Systems

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

Page 1. Goals for Today" Recap: Monitors" CS162 Operating Systems and Systems Programming Lecture 7. Semaphores, Conditional Variables, Deadlocks"

CS162 Operating Systems and Systems Programming Lecture 7 Semaphores, Conditional Variables, Deadlocks"

CS 4410 Operating Systems. Review 1. Summer 2016 Cornell University

Operating Systems Antonio Vivace revision 4 Licensed under GPLv3

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

The Deadlock Problem

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.

Contents. Chapter 8 Deadlocks

Deadlock Prevention. Restrain the ways request can be made. Mutual Exclusion not required for sharable resources; must hold for nonsharable resources.

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

Chapter 7: Deadlocks. Operating System Concepts 9 th Edition

CHAPTER 7 - DEADLOCKS

Deadlock Prevention, Avoidance, and Detection

Maximum CPU utilization obtained with multiprogramming. CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait

Transcription:

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

Recap: Synchronization Race condition A situation when two or more threads read and write shared data at the same time Critical section Code sections of potential race conditions Mutual exclusion If a thread executes its critical section, no other threads can enter their critical sections Peterson s solution Software only solution providing mutual exclusion 2

Spinlock Recap: Synchronization Spin on waiting Use synchronization instructions (test&set) Mutex Sleep on waiting Semaphore Powerful tool, but often difficult to use Monitor Powerful and (relatively) easy to use 3

Quiz Mutex lock; Condition full, empty; produce (item) { while (queue.isfull()) empty.wait(&lock); queue.enqueue(item); full.signal(); } consume() { while (queue.isempty()) item = queue.dequeue(item); return item; } 4 Semaphore mutex = 1, full = 0, empty = N; produce (item) { ; P(&mutex); queue.enqueue(item); V(&mutex); ; } consume() { ; P(&mutex); item = queue.dequeue(); V(&mutex); ; return item; }

Quiz Mutex lock; Condition full, empty; produce (item) { lock.acquire(); while (queue.isfull()) empty.wait(&lock); queue.enqueue(item); full.signal(); lock.release(); } consume() { lock.acquire(); while (queue.isempty()) full.wait(&lock); item = queue.dequeue(item); empty.signal(); lock.release(); return item; } 5 Semaphore mutex = 1, full = 0, empty = N; produce (item) { P(&empty); P(&mutex); queue.enqueue(item); V(&mutex); V(&full); } consume() { P(&full); P(&mutex); item = queue.dequeue(); V(&mutex); V(&empty); return item; }

Deadlock Agenda Starvation vs. deadlock Deadlock conditions General solutions: detection and prevention Detection algorithm Banker s algorithm 6

Starvation Information bus (High) lock() I m starved Communication (Medium) Weather (Low) lock() More reading: What really happened on Mars? Critical section Starvation Wait potentially indefinitely, but it can end 7

Starvation vs. Deadlock Deadlock: circular waiting for resources Example: semaphore A = B = 1 P0 P1 Owned by P0 Wait for P(A) P(B) P(B) P(A) A P1 B Wait for Owned by Deadlock Starvation But reverse is not true Deadlock can t end but starvation can 8

Bridge Crossing bridge Traffic only in one direction Each section of a bridge can be viewed as a resource If a deadlock occurs, how to fix it? Make one car backs up Several cars may have to be backed up if a deadlock occurs 9

Dining Philosophers Problem synopsis Need two chopsticks to eat Grab one chopsticks at a time What happens if all grab left chopstick at the same time?? Deadlock!!! How to fix it? How to avoid it? 10

Conditions for Deadlocks Mutual exclusion only one process at a time can use a resource No preemption resources cannot be preempted, release must be voluntary Hold and wait a process must be holding at least one resource, and waiting to acquire additional resources held by other processes Circular wait There must be a circular dependency. For example, A waits B, B waits C, and C waits A. All four conditions must simultaneously hold 11

Resource-Allocation Graph To illustrate deadlock conditions. Graph consists of a set of vertices V and a set of edges E 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 i R j assignment edge directed edge R j P i 12

Process Resource-Allocation Graph P 1 Resource Type with 4 instances P i requests instance of R j P i P i is holding an instance of R j R j P i R j 13

Resource Allocation Graph Simple example Deadlock example With cycle, but no deadlock request edge directed edge P i R j assignment edge directed edge R j P i 14

Recap: Starvation vs. Deadlock Deadlock: circular waiting for resources Example: semaphore A = B = 1 P0 P1 Owned by P0 Wait for P(A) P(B) P(B) P(A) A P1 B Wait for Owned by Deadlock Starvation But reverse is not true Deadlock can t end but starvation can 15

Recap: Conditions for Deadlocks Mutual exclusion only one process at a time can use a resource No preemption resources cannot be preempted, release must be voluntary Hold and wait a process must be holding at least one resource, and waiting to acquire additional resources held by other processes Circular wait There must be a circular dependency. For example, A waits B, B waits C, and C waits A. All four conditions must simultaneously hold 16

Methods for Handling Deadlocks Detection and recovery Allow a system to enter a deadlock and then recover Need a detection algorithm Somehow preempt resources Prevention and avoidance Ensure a system never enter a deadlock Possible solutions have Infinite resources prevent hold and wait prevent circular wait Recall four deadlock conditions: (1) Mutual exclusion, (2) no preemption, (3) hold and wait, (4) circular wait 17

Deadlock Detection Deadlock detection algorithms Single instance for each resource type Multiple instances for each resource type 18

Single Instance Per Resource Each resource is unique E.g., one printer, one audio card, Wait-for-graph Variant of the simplified resource allocation graph Remove resource nodes, collapse corresponding edges Detection algorithm Searches for a cycle in the wait-for graph Presence of a cycle points to the existence of a deadlock 19

Wait-for Graph Resource-Allocation Graph Corresponding wait-for graph 20

Multiple Instances Per Resource n processes, m resources FreeResources: resource vector (of size m) indicates the number of available resources of each type [R1, R2] = [0,0] Alloc[i]: process i s allocated resource vector defines the number of resources of each type currently allocated to each process Alloc[1] = [0,1], Alloc[2] = [1, 0], Request[i]: process i s requesting resource vector indicates the resources each process requests Request[1] = [1,0], Request[2] = [0,0], 21

Detection Algorithm 1. Initialize Avail and Finish vectors Avail = FreeResources; For i = 1,2,, n, Finish[i] = false 2. Find an index i such that Finish[i] == false AND Request[i] Avail If no such i exists, go to step 4 FreeResources: resource vector [R1, R2] = [0,0] Alloc[i]: process i s allocated resource vector: Alloc[1] = [0,1], Alloc[2] = [1, 0] Request[i]: process i s requesting vector: Request[1] = [1,0] Request[2] = [0,0] 3. Avail = Avail + Alloc[i], Finish[i] = true Go to step 2 4. If Finish[i] == false, for some i, 1 i n, (a) then the system is in deadlock state 22

Recovery from Deadlock Terminate Preempt the resources Bridge example: throw the car to the river Kill the deadlocked threads and return the resources Rollback Return to a known safe state Bridge example: move one car backward Dining philosopher: make one philosopher give up a chopstick Not always possible! 23

Deadlock Prevention Break any of the four deadlock conditions Mutual exclusion No preemption Hold and wait Circular wait 24

Deadlock Prevention Break any of the four deadlock conditions Mutual exclusion allow sharing Well, not all resources are sharable No preemption Hold and wait Circular wait 25

Deadlock Prevention Break any of the four deadlock conditions Mutual exclusion allow sharing Well, not all resources are sharable No preemption allow preemption This is also quite hard (kill the threads) Hold and wait Circular wait 26

Deadlock Prevention Break any of the four deadlock conditions Mutual exclusion allow sharing Well, not all resources are sharable No preemption allow preemption This is also quite hard (kill the threads) Hold and wait get all resources at once Dining philosopher: get both chopsticks or none Circular wait 27

Deadlock Prevention Break any of the four deadlock conditions Mutual exclusion allow sharing Well, not all resources are sharable No preemption allow preemption This is also quite hard (kill the threads) Hold and wait get all resources at once Dining philosopher: get both chopsticks or none Circular wait prevent cycle Dining philosopher: change the chopstick picking order; if grabbing a chopstick will form a cycle, prevent it. 28

General idea Banker s Algorithm Assume that each process s maximum resource demand is known in advance Max[i] : process i s maximum resource demand vector Pretend each request is granted, then run the deadlock detection algorithm If a deadlock is detected, the do not grant the request to keep the system in a safe state 29

Banker s Algorithm 1. Initialize Avail and Finish vectors Avail = FreeResources; For i = 1,2,, n, Finish[i] = false 2. Find an index i such that Finish[i] == false AND Max[i] Alloc[i] Avail If no such i exists, go to step 4 3. Avail = Avail + Alloc[i], Finish[i] = true Go to step 2 FreeResources: resource vector [R1, R2] = [0,0] Alloc[i]: process i s allocated resource vector: Alloc[1] = [0,1], Alloc[2] = [1, 0] Request[i]: process i s requesting vector: Request[1] = [1,0] Request[2] = [0,0] Max[i]: process i s maximum resource demand vector 4. If Finish[i] == false, for some i, 1 i n, (a) then the system is in deadlock state (b) if Finish[i] == false, then P i is deadlocked 30

Example Free = [1,1,1,1,1] Max[2] = [1,1,0,0,0] R2 Max[3] = [0,1,1,0,0] R1 R3 Max[1] = [1,0,0,0,1] R5 R4 Max[4] = [0,0,1,1,0] Max[5] = [0,0,0,1,1] 31

Example Max[2] = [1,1,0,0,0] Alloc[2] = [0,1,0,0,0] Free = [0,0,0,0,1] Avail = [0,0,0,0,1] R2 Max[3] = [0,1,1,0,0] Alloc[3] = [0,0,1,0,0] R1 R3 Max[1] = [1,0,0,0,1] Alloc[1]= [1,0,0,0,0] - Philosopher 5 requested R5. - Safe or Unsafe? R5 R4 Max[5] = [0,0,0,1,1] Alloc[5] = [0,0,0,0,0] Max[4] = [0,0,1,1,0] Alloc[4] = [0,0,0,1,0] 32

Example Max[2] = [1,1,0,0,0] Alloc[2] = [0,1,0,0,0] Free = [0,0,0,0,0] Avail = [0,0,0,0,0] R2 Max[3] = [0,1,1,0,0] Alloc[3] = [0,0,1,0,0] R1 R3 Max[1] = [1,0,0,0,1] Alloc[1]= [1,0,0,0,0] 2. Find an index i such that Finish[i] == false AND Max[i] Alloc[i] Avail If no such i exists, go to step 4 R5 R4 Max[5] = [0,0,0,1,1] Alloc[5] = [0,0,0,0,1] Max[4] = [0,0,1,1,0] Alloc[4] = [0,0,0,1,0] 33

Quiz Determine whether this state is safe or unsafe. Total resources: 12 Avail resources: 3 Process Max Alloc P 0 10 4 P 1 3 1 P 2 6 4 10 4 <= 8 3 1 <= 7 6 4 <= 3 Safe 34

Quiz Can a request 3 by P0 be granted? Total resources: 12 Avail resources: 0 Process Max Alloc P 0 10 7 P 1 3 1 P 2 6 4 10 7 <= 0 3 1 <= 0 6 4 <= 0 Unsafe 35

Deadlock Summary Four deadlock conditions: Mutual exclusion No preemption Hold and wait Circular wait Detection Avoidance 36