Top Banner
Concurrency: Deadlock and Starvation Chapter 6
37

Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Dec 25, 2015

Download

Documents

Robert Williams
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Concurrency: Deadlock and Starvation

Chapter 6

Page 2: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Goal and approach

• Deadlock and starvation

• Underlying principles

• Solutions?– Prevention– Detection– Avoidance

• Dining philosopher problem

Page 3: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Deadlock

• Permanent blocking of a set of processes that either compete for system resources or communicate with each other

• Involve conflicting needs for resources by two or more processes

• No efficient solution in the general case

Page 4: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.
Page 5: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.
Page 6: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Process P

{

Get A

Release A

Geb B

Release B

}

Page 7: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Reusable Resources

• Used by 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, files, databases, and semaphores

• Deadlock occurs if each process holds one resource and requests the other

Page 8: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Example of Deadlock

Page 9: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Another Example of Deadlock

• Space is available for allocation of 200K bytes, and the following sequence of events occur

• Deadlock occurs if both processes progress to their second request

P1

. . .

. . .Request 80K bytes;

Request 60K bytes;

P2

. . .

. . .Request 70K bytes;

Request 80K bytes;

Page 10: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Consumable Resources

• Created (produced) and destroyed (consumed) by a process

• 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: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Example of Deadlock

• Deadlock occurs if receive is blocking

P1

. . .

. . .Receive(P2);

Send(P2, M1);

P2

. . .

. . .Receive(P1);

Send(P1, M2);

Page 12: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Conditions for Deadlock

• Mutual exclusion– only one process may use a resource at a

time

• Hold-and-wait– A process request all of its required

resources at one time

Page 13: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Conditions for Deadlock

• No preemption– If a process holding certain resources is

denied a further request, that process must release its original resources

– If a process requests a resource that is currently held by another process, the operating system may preempt the second process and require it to release its resources

Page 14: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

?

• Mutual exclusion– Consistency, integrity

• Hold and wait– simple

• No preemption– Rollback recovery mechanism

Page 15: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Conditions for Deadlock

• Circular wait– Prevented by defining a linear ordering of

resource types

Page 16: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

prevention

• one of 3 necessary conditions – indirect– Mutual exclusion? No– Hold and wait? Yes, but inefficient– No preemption? Yes w/ rollback recovery

• 4th condition – direct– Linear ordering of resource– May be inefficient

Page 17: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Deadlock Avoidance

• A decision is made dynamically whether the current resource allocation request will, if granted, potentially lead to a deadlock – never reach to deadlock

• Requires knowledge of future process request

Page 18: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

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 19: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Resource = (R1,R2,…,Rm)

Available = (V1,V2,…,Vm)

Claim = Cij : Requirement of process i for resource j

Allocation = Aij

1. Ri = vi + Sum Aki over k

2. Ckj <= Ri

3. Aki <= CkiStart Pn+1only if Ri >= C(n+1)i + sum Cki over k

Optimal?

Page 20: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Determination of a Safe StateInitial State

Page 21: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

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 22: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Initial state

6

0

Page 23: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Determination of a Safe StateP2 Runs to Completion

Page 24: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Determination of a Safe StateP1 Runs to Completion

Page 25: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Determination of a Safe StateP3 Runs to Completion

Page 26: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Determination of an Unsafe State

Page 27: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Determination of an Unsafe State

Deadlock?

Page 28: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

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 29: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Deadlock Detection

Page 30: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

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 31: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

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 32: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Dining Philosophers Problem

Page 33: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

UNIX Concurrency Mechanisms

• Pipes

• Messages

• Shared memory

• Semaphores

• Signals

Page 34: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Solaris Thread Synchronization Primitives

• Mutual exclusion (mutex) locks

• Semaphores

• Multiple readers, single writer (readers/writer) locks

• Condition variables

Page 35: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.
Page 36: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.
Page 37: Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.

Windows 2000 Concurrency Mechanisms

• Process• Thread• File• Console input• File change notification• Mutex• Semaphore• Event• Waitable timer