chapter 6 concurrency: deadlock and starvation operating systems: internals and design principles,...
TRANSCRIPT
![Page 1: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/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://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/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://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/3.jpg)
Deadlock
![Page 4: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/4.jpg)
Deadlock
![Page 5: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/5.jpg)
Deadlock
![Page 6: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/6.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 7: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/7.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 resource and requests the other
![Page 8: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/8.jpg)
Reusable Resources
![Page 9: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/9.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
P1
. . .
. . .Request 80 Kbytes;
Request 60 Kbytes;
P2
. . .
. . .Request 70 Kbytes;
Request 80 Kbytes;
![Page 10: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/10.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 11: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/11.jpg)
Example of Deadlock
• Deadlock occurs if receives blocking
P1
. . .
. . .Receive(P2);
Send(P2, M1);
P2
. . .
. . .Receive(P1);
Send(P1, M2);
![Page 12: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/12.jpg)
Resource Allocation Graphs
• Directed graph that depicts a state of the system of resources and processes
![Page 13: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/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://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/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://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/15.jpg)
Resource Allocation Graphs
![Page 16: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/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://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/17.jpg)
Possibility of Deadlock
• Mutual Exclusion• No preemption• Hold and wait
![Page 18: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/18.jpg)
Existence of Deadlock
• Mutual Exclusion• No preemption• Hold and wait• Circular wait
![Page 19: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/19.jpg)
Deadlock Prevention
• Mutual Exclusion– Must be supported by the OS
• Hold and Wait– Require a process request all of its required
resources at one time
![Page 20: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/20.jpg)
Deadlock Prevention
• No Preemption– Process must release resource and request
again– OS may preempt a process to require it
releases its resources
• Circular Wait– Define a linear ordering of resource types
![Page 21: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/21.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 22: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/22.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 23: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/23.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 that does not result in deadlock• Unsafe state is a state that is not safe
![Page 24: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/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://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/25.jpg)
Determination of a Safe State
![Page 26: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/26.jpg)
Determination of a Safe State
![Page 27: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/27.jpg)
Determination of a Safe State
![Page 28: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/28.jpg)
Determination of an Unsafe State
![Page 29: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/29.jpg)
Deadlock Avoidance Logic
![Page 30: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/30.jpg)
Deadlock Avoidance Logic
![Page 31: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/31.jpg)
Deadlock Avoidance
• Maximum resource requirement must be stated in advance
• Processes under consideration must be independent; no synchronization requirements
• There must be a fixed number of resources to allocate
• No process may exit while holding resources
![Page 32: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/32.jpg)
Deadlock Detection
![Page 33: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/33.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 occur
![Page 34: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/34.jpg)
Strategies Once Deadlock Detected
• Successively abort deadlocked processes until deadlock no longer exists
• Successively preempt resources until deadlock no longer exists
![Page 35: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/35.jpg)
Advantages and Disadvantages
![Page 36: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/36.jpg)
Dining Philosophers Problem
![Page 37: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/37.jpg)
Dining Philosophers Problem
![Page 38: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/38.jpg)
Dining Philosophers Problem
![Page 39: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/39.jpg)
Dining Philosophers Problem
![Page 40: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/40.jpg)
Dining Philosophers Problem
![Page 41: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/41.jpg)
UNIX Concurrency Mechanisms
• Pipes• Messages• Shared memory• Semaphores• Signals
![Page 42: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/42.jpg)
UNIX Signals
![Page 43: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/43.jpg)
Linux Kernel Concurrency Mechanism
• Includes all the mechanisms found in UNIX
• Atomic operations execute without interruption and without interference
![Page 44: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/44.jpg)
Linux Atomic Operations
![Page 45: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/45.jpg)
Linux Atomic Operations
![Page 46: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/46.jpg)
Linux Spinlocks
![Page 47: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/47.jpg)
Linux Semaphores
![Page 48: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/48.jpg)
Linux Memory Barrier Operations
![Page 49: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/49.jpg)
Solaris Thread Synchronization Primitives
• Mutual exclusion (mutex) locks• Semaphores• Multiple readers, single writer
(readers/writer) locks• Condition variables
![Page 50: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/50.jpg)
Solaris Synchronization Data Structures
![Page 51: Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community](https://reader036.vdocuments.site/reader036/viewer/2022081504/56649c765503460f9492ada7/html5/thumbnails/51.jpg)
Windows Synchronization Objects