Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles,...
-
Upload
alex-hagan -
Category
Documents
-
view
294 -
download
8
Transcript of Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles,...
![Page 1: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/1.jpg)
Chapter 6Concurrency: Deadlock and
Starvation
Operating Systems:Internals and Design Principles, 6/E
William Stallings
Patricia RoyManatee Community College, Venice, FL
©2008, Prentice Hall
![Page 2: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/2.jpg)
Deadlock
• Permanent blocking of a set of processes that either compete for system resources or communicate with each other
• No efficient solution
• Involve conflicting needs for resources by two or more processes
![Page 3: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/3.jpg)
Deadlock in Traffic
![Page 4: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/4.jpg)
Non-deadlock -Joint Progress Diagram
![Page 5: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/5.jpg)
Deadlock in a Computer – Fatal Region
![Page 6: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/6.jpg)
Deadlock Definition
• 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
• None of the processes can …– run– release resources– be awakened
![Page 7: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/7.jpg)
Reusable Resources
• Used by only one process at a time and not depleted by that use
• Processes obtain resources that they later release for reuse by other processes
![Page 8: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/8.jpg)
Reusable Resources
• Processors, I/O channels, main and secondary memory, devices, and data structures such as files, databases, and semaphores
• Deadlock occurs if each process holds one dedicated resource and requests another held by another process
![Page 9: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/9.jpg)
Reusable Resources
![Page 10: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/10.jpg)
Reusable Resources
• Space is available for allocation of 200Kbytes, and the following sequence of events occur
• Deadlock occurs if both processes progress to their second request
• But virtual memory
P1
. . .
. . .Request 80 Kbytes;
Request 60 Kbytes;
P2
. . .
. . .Request 70 Kbytes;
Request 80 Kbytes;
![Page 11: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/11.jpg)
Consumable Resources
• Created (produced) and destroyed (consumed)
• Interrupts, signals, messages, and information in I/O buffers
• Deadlock may occur if a Receive message is blocking
• May take a rare combination of events to cause deadlock
![Page 12: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/12.jpg)
Example of Deadlock
• Deadlock occurs if Receive is blocking
P1
. . .
. . .Receive(P2);
Send(P2, M1);
P2
. . .
. . .Receive(P1);
Send(P1, M2);
![Page 13: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/13.jpg)
Conditions for Deadlock
• Mutual exclusion– Only one process may use a resource at a
time
• Hold-and-wait– A process may hold allocated resources while
awaiting assignment of others
![Page 14: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/14.jpg)
Conditions for Deadlock
• No preemption– No resource can be forcibly removed form a
process holding it
• Circular wait– A closed chain of processes exists, such that
each process holds at least one resource needed by the next process in the chain
![Page 15: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/15.jpg)
Resource Allocation Graphs
• Directed graph that depicts a state of the system of resources and processes
![Page 16: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/16.jpg)
Resource Allocation Graphs
![Page 17: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/17.jpg)
Resource Allocation Graphs
![Page 18: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/18.jpg)
Deadlock Prevention
• Mutual Exclusion– Spooling
• Hold and Wait– Require that a process request all of its
required resources at one time– Requests would be granted/denied
simultaneously
![Page 19: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/19.jpg)
Deadlock Prevention (cont.)
• No Preemption– Process must release resource and request
again– OS may preempt a process and require it to
release its resources
• Circular Wait– Define a linear ordering of resources– Require that processes request resources
according to the ordering
![Page 20: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/20.jpg)
Deadlock Avoidance
• A decision is made dynamically whether the current resource allocation request will, if granted, potentially lead to a deadlock
• Requires knowledge of future process requests
![Page 21: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/21.jpg)
Two Approaches to Deadlock Avoidance
• Do not start a process if its demands might lead to deadlock
• Do not grant an incremental resource request to a process if this allocation might lead to deadlock
![Page 22: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/22.jpg)
Resource Allocation Denial
• Referred to as the Banker’s Algorithm
• State of the system is the current allocation of resources to process
• Safe state is where there is at least one sequence of execution of processes that does not result in deadlock
• Unsafe state is a state that is not safe
![Page 23: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/23.jpg)
Determination of a Safe State
![Page 24: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/24.jpg)
Determination of a Safe State
![Page 25: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/25.jpg)
Determination of an Unsafe State
![Page 26: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/26.jpg)
Deadlock Avoidance Logic
![Page 27: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/27.jpg)
Deadlock Avoidance Logic
![Page 28: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/28.jpg)
Deadlock Avoidance
• Maximum resource requirement must be stated in advance
• Processes under consideration must be independent; no synchronization (order of execution) requirements
• No process may exit/block while holding resources
![Page 29: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/29.jpg)
Deadlock Detection
![Page 30: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/30.jpg)
Strategies Once Deadlock Detected
• Abort all deadlocked processes
• Back up each deadlocked process to some previously defined checkpoint, and restart all process - original deadlock may re-occur
• Successively abort deadlocked processes until deadlock no longer exists
• Successively preempt resources until deadlock no longer exists
![Page 31: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/31.jpg)
Dining Philosophers Problem
![Page 32: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/32.jpg)
Dining Philosophers Problem
![Page 33: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/33.jpg)
Dining Philosophers Problem with Semaphores
![Page 34: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/34.jpg)
Dining Philosophers Problem with Monitor
![Page 35: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/35.jpg)
Dining Philosophers Problem with Monitor
![Page 36: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/36.jpg)
UNIX Concurrency Mechanisms
• Pipes: circular buffer for two processes like in producer-consumer
• Messages: blocking receive
• Shared memory: shared pages – mutual exclusion is not guaranteed
• Semaphores
• Signals
![Page 37: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/37.jpg)
Linux Kernel Concurrency Mechanism
• Includes all the mechanisms found in UNIX
• Atomic operations execute without interruption and without interference (by blocking the memory bus)
![Page 38: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.](https://reader035.fdocuments.us/reader035/viewer/2022081417/5515d376550346cf6f8b4730/html5/thumbnails/38.jpg)
Linux Atomic Operations
• arithmetic operation plus setting condition code
• spinlocks for mutual exclusion (loop until lock acquired)
• traditional and readers-writer semaphores• memory barrier operations: limit compiler or
CPU in re-ordering instructions