Chapter06
-
Upload
jhcloudnine -
Category
Technology
-
view
2.549 -
download
0
Transcript of Chapter06
![Page 1: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/1.jpg)
1
Concurrency: Deadlock and Starvation
Chapter 6
![Page 2: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/2.jpg)
2
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: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/3.jpg)
3
![Page 4: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/4.jpg)
4
![Page 5: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/5.jpg)
5
![Page 6: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/6.jpg)
6
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
• 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 7: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/7.jpg)
7
Example of Deadlock
![Page 8: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/8.jpg)
8
Another Example of Deadlock
• 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 9: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/9.jpg)
9
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 10: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/10.jpg)
10
Example of Deadlock
• Deadlock occurs if receive is blocking
P1
. . .
. . .Receive(P2);
Send(P2, M1);
P2
. . .
. . .Receive(P1);
Send(P1, M2);
![Page 11: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/11.jpg)
11
Resource Allocation Graphs
• Directed graph that depicts a state of the system of resources and processes
![Page 12: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/12.jpg)
12
Resource Allocation Graphs
![Page 13: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/13.jpg)
13
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
• No preemption– No resource can be forcibly removed form a
process holding it
![Page 14: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/14.jpg)
14
Conditions for Deadlock
• 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: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/15.jpg)
15
![Page 16: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/16.jpg)
16
Possibility of Deadlock
• Mutual Exclusion
• No preemption
• Hold and wait
![Page 17: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/17.jpg)
17
Existence of Deadlock
• Mutual Exclusion
• No preemption
• Hold and wait
• Circular wait
![Page 18: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/18.jpg)
18
Deadlock Prevention
• Mutual Exclusion– Must be supported by the operating system
• Hold and Wait– Require a process request all of its required
resources at one time
![Page 19: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/19.jpg)
19
Deadlock Prevention
• No Preemption– Process must release resource and request
again– Operating system may preempt a process to
require it releases its resources
• Circular Wait– Define a linear ordering of resource types
![Page 20: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/20.jpg)
20
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 request
![Page 21: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/21.jpg)
21
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: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/22.jpg)
22
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 23: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/23.jpg)
23
Determination of a Safe StateInitial State
![Page 24: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/24.jpg)
24
Determination of a Safe StateP2 Runs to Completion
![Page 25: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/25.jpg)
25
Determination of a Safe StateP1 Runs to Completion
![Page 26: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/26.jpg)
26
Determination of a Safe StateP3 Runs to Completion
![Page 27: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/27.jpg)
27
Determination of an Unsafe State
![Page 28: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/28.jpg)
28
Determination of an Unsafe State
![Page 29: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/29.jpg)
29
Deadlock Avoidance Logic
![Page 30: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/30.jpg)
30
Deadlock Avoidance Logic
![Page 31: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/31.jpg)
31
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: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/32.jpg)
32
Deadlock Detection
![Page 33: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/33.jpg)
33
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
• Successively abort deadlocked processes until deadlock no longer exists
• Successively preempt resources until deadlock no longer exists
![Page 34: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/34.jpg)
34
Selection Criteria Deadlocked Processes
• Least amount of processor time consumed so far
• Least number of lines of output produced so far
• Most estimated time remaining
• Least total resources allocated so far
• Lowest priority
![Page 35: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/35.jpg)
35
Strengths and Weaknesses of the Strategies
![Page 36: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/36.jpg)
36
Dining Philosophers Problem
![Page 37: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/37.jpg)
37
Dining Philosophers Problem
![Page 38: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/38.jpg)
38
Dining Philosophers Problem
![Page 39: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/39.jpg)
39
Dining Philosophers Problem
![Page 40: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/40.jpg)
40
Dining Philosophers Problem
![Page 41: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/41.jpg)
41
UNIX Concurrency Mechanisms
• Pipes
• Messages
• Shared memory
• Semaphores
• Signals
![Page 42: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/42.jpg)
42
![Page 43: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/43.jpg)
43
Linux Kernel Concurrency Mechanisms
• Includes all the mechanisms found in UNIX
• Atomic operations execute without interruption and without interference
![Page 44: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/44.jpg)
44
Linux Atomic Operations
![Page 45: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/45.jpg)
45
Linux Atomic Operations
![Page 46: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/46.jpg)
46
Linux Kernel Concurrency Mechanisms
• Spinlocks– Used for protecting a critical section
![Page 47: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/47.jpg)
47
![Page 48: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/48.jpg)
48
Linux Kernel Concurrency Mechanisms
![Page 49: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/49.jpg)
49
Solaris Thread Synchronization Primitives
• Mutual exclusion (mutex) locks
• Semaphores
• Multiple readers, single writer (readers/writer) locks
• Condition variables
![Page 50: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/50.jpg)
50
![Page 51: Chapter06](https://reader033.fdocuments.us/reader033/viewer/2022060110/555aeab3d8b42a4c7d8b4bf5/html5/thumbnails/51.jpg)
51