concurrency: deadlock and stravation
TRANSCRIPT
![Page 1: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/1.jpg)
1
Concurrency: Deadlock and
Starvation
Chapter 6
![Page 2: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/3.jpg)
3
![Page 4: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/4.jpg)
4
![Page 5: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/5.jpg)
5
![Page 6: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/7.jpg)
7
Example of Deadlock
![Page 8: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/11.jpg)
11
Resource Allocation Graphs
• Directed graph that depicts a state of the
system of resources and processes
![Page 12: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/12.jpg)
12
Resource Allocation Graphs
![Page 13: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/15.jpg)
15
![Page 16: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/16.jpg)
16
Possibility of Deadlock
• Mutual Exclusion
• No preemption
• Hold and wait
![Page 17: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/17.jpg)
17
Existence of Deadlock
• Mutual Exclusion
• No preemption
• Hold and wait
• Circular wait
![Page 18: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/23.jpg)
23
Determination of a Safe State
Initial State
![Page 24: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/24.jpg)
24
Determination of a Safe State
P2 Runs to Completion
![Page 25: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/25.jpg)
25
Determination of a Safe State
P1 Runs to Completion
![Page 26: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/26.jpg)
26
Determination of a Safe State
P3 Runs to Completion
![Page 27: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/27.jpg)
27
Determination of an
Unsafe State
![Page 28: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/28.jpg)
28
Determination of an
Unsafe State
![Page 29: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/29.jpg)
29
Deadlock Avoidance Logic
![Page 30: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/30.jpg)
30
Deadlock Avoidance Logic
![Page 31: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/32.jpg)
32
Deadlock Detection
![Page 33: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/35.jpg)
35
Strengths and Weaknesses of the
Strategies
![Page 36: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/36.jpg)
36
Dining Philosophers Problem
![Page 37: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/37.jpg)
37
Dining Philosophers Problem
![Page 38: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/38.jpg)
38
Dining Philosophers Problem
![Page 39: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/39.jpg)
39
Dining Philosophers Problem
![Page 40: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/40.jpg)
40
Dining Philosophers Problem
![Page 41: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/41.jpg)
41
UNIX Concurrency
Mechanisms• Pipes
• Messages
• Shared memory
• Semaphores
• Signals
![Page 42: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/42.jpg)
42
![Page 43: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/44.jpg)
44
Linux Atomic Operations
![Page 45: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/45.jpg)
45
Linux Atomic Operations
![Page 46: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/46.jpg)
46
Linux Kernel Concurrency
Mechanisms
• Spinlocks
– Used for protecting a critical section
![Page 47: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/47.jpg)
47
![Page 48: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/48.jpg)
48
Linux Kernel Concurrency
Mechanisms
![Page 49: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/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: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/50.jpg)
50
![Page 51: Concurrency: Deadlock and Stravation](https://reader031.vdocuments.us/reader031/viewer/2022013101/61d1cfc611ce1162c774323a/html5/thumbnails/51.jpg)
51