YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

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


Related Documents