51
1 Concurrency: Deadlock and Starvation Chapter 6

Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

1

Concurrency: Deadlock and

Starvation

Chapter 6

Page 2: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

3

Page 4: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

4

Page 5: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

5

Page 6: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

7

Example of Deadlock

Page 8: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

11

Resource Allocation Graphs

• Directed graph that depicts a state of the

system of resources and processes

Page 12: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

12

Resource Allocation Graphs

Page 13: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

15

Page 16: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

16

Possibility of Deadlock

• Mutual Exclusion

• No preemption

• Hold and wait

Page 17: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

17

Existence of Deadlock

• Mutual Exclusion

• No preemption

• Hold and wait

• Circular wait

Page 18: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

23

Determination of a Safe State

Initial State

Page 24: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

24

Determination of a Safe State

P2 Runs to Completion

Page 25: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

25

Determination of a Safe State

P1 Runs to Completion

Page 26: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

26

Determination of a Safe State

P3 Runs to Completion

Page 27: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

27

Determination of an

Unsafe State

Page 28: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

28

Determination of an

Unsafe State

Page 29: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

29

Deadlock Avoidance Logic

Page 30: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

30

Deadlock Avoidance Logic

Page 31: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

32

Deadlock Detection

Page 33: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

35

Strengths and Weaknesses of the

Strategies

Page 36: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

36

Dining Philosophers Problem

Page 37: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

37

Dining Philosophers Problem

Page 38: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

38

Dining Philosophers Problem

Page 39: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

39

Dining Philosophers Problem

Page 40: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

40

Dining Philosophers Problem

Page 41: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

41

UNIX Concurrency

Mechanisms• Pipes

• Messages

• Shared memory

• Semaphores

• Signals

Page 42: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

42

Page 43: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

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 Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

44

Linux Atomic Operations

Page 45: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

45

Linux Atomic Operations

Page 46: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

46

Linux Kernel Concurrency

Mechanisms

• Spinlocks

– Used for protecting a critical section

Page 47: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

47

Page 48: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

48

Linux Kernel Concurrency

Mechanisms

Page 49: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

49

Solaris Thread

Synchronization Primitives• Mutual exclusion (mutex) locks

• Semaphores

• Multiple readers, single writer

(readers/writer) locks

• Condition variables

Page 50: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

50

Page 51: Concurrency: Deadlock and Stravationcourses.daiict.ac.in/.../Concurrency_-_Deadlock_and_Starvation.pdf · Strategies once Deadlock Detected •Abort all deadlocked processes •Back

51