Top Banner
Deadlocks CPE 261403 - Operating Systems http://www.e-cpe.org/moodle
24

Deadlocks

Jan 03, 2016

Download

Documents

chanda-norris

Deadlocks. CPE 261403 - Operating Systems http://www.e-cpe.org/moodle. Conditions of a Deadlock (7.2.1). Mutual exclusion Hold and wait No preemption Circular wait. Which of these are in a deadlock?. Methods for Handling Deadlocks. Never allow a deadlock state - PowerPoint PPT Presentation
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: Deadlocks

Deadlocks

CPE 261403 - Operating Systemshttp://www.e-cpe.org/moodle

Page 2: Deadlocks
Page 3: Deadlocks

Conditions of a Deadlock (7.2.1)

Mutual exclusion

Hold and wait

No preemption

Circular wait

Page 4: Deadlocks

Which of these are in a deadlock?

Page 5: Deadlocks

Methods for Handling Deadlocks Never allow a deadlock state

Allow deadlock and then recover

Ignore the problem

Page 6: Deadlocks

Deadlock Prevention (7.4)

Prevent deadlock conditions from occurring Mutual exclusion

Hold and wait

No preemption

Circular wait

Page 7: Deadlocks

Deadlock Avoidance (7.5)

Figure 7.5

Page 8: Deadlocks

Example

Max Needs Needs at T0(safe)

Needs at T1(unsafe)

P0 4 2 2

P1 10 5 5

P2 9 2 3

Total number of resources = 12

Page 9: Deadlocks

Resource Allocation Graph

Safe Unsafe

Page 10: Deadlocks

Banker’s Algorithm

Available: Vector of length m. If available [j] = k, there are k instances of resource type Rj available.

Max: n x m matrix. If Max [i,j] = k, then process Pi may request at most k instances of resource type Rj.

Allocation: n x m matrix. If Allocation[i,j] = k then Pi is currently allocated k instances of Rj.

Need: n x m matrix. If Need[i,j] = k, then Pi may need k more instances of Rj to complete its task.

Need [i,j] = Max[i,j] – Allocation [i,j].

Let n = number of processes, and m = number of resources types.

Page 11: Deadlocks

Example

A B C

7 5 3

3 2 2

9 0 2

2 2 2

4 3 3

P0

P1

P2

P3

P4

A B C

0 1 0

2 0 0

3 0 2

2 1 1

0 0 2

MAX Allocation

3 resource types: A (10 instances), B (5instances), and C (7 instances).

Time T0

Page 12: Deadlocks

Safety Algorithm

Available

Need Finish

P0

P1

P2

P3

P4

R1 R2 R3

Page 13: Deadlocks

Safety Algorithm

7-0=7 5-1=4 3-0=3

3-2=1 2-0=2 2-0=2

9-3=6 0-0=0 2-2=0

2-2=0 2-1=1 2-1=1

4-0=4 3-0=3 3-2=1

3 3 2Available

Need Finish

P0

P1

P2

P3

P4

R1 R2 R3

Page 14: Deadlocks

Example (Cont.)

The content of the matrix Need is defined to be Max – Allocation.

NeedA B C

P0 7 4 3

P1 1 2 2

P2 6 0 0

P3 0 1 1

P4 4 3 1

The system is in a safe state since the sequence < P1, P3, P4, P2, P0> satisfies safety criteria.

Page 15: Deadlocks

Process P1 makes a request for: 1 instance of A 2 instance of C

Request Vector = (1,0,2)

Page 16: Deadlocks

Safety Algorithm after (1,0,2) request

7 4 3

1 2 2

6 0 0

0 1 1

4 3 1

3 3 2Work

Need Finish

P0

P1

P2

P3

P4

R1 R2 R3

Page 17: Deadlocks

Example: P1 Request (1,0,2)

Check that Request Available (that is, (1,0,2) (3,3,2) true.Allocation Need AvailableA B C A B C A B C

P0 0 1 0 7 4 3 2 3 0

P1 3 0 2 0 2 0

P2 3 0 1 6 0 0

P3 2 1 1 0 1 1

P4 0 0 2 4 3 1 Executing safety algorithm shows that sequence < P1, P3, P4, P0,

P2> satisfies safety requirement. Can request for (3,3,0) by P4 be granted? Can request for (0,2,0) by P0 be granted?

Page 18: Deadlocks

Deadlock Detection (7.6)

Page 19: Deadlocks

Wait-for Graphs (single instance system only)

Resource-Allocation Graph Corresponding wait-for graph

Page 20: Deadlocks

Wait-for Graph does not work with multiple instance resources

Page 21: Deadlocks

Banker’s Algorithm as a deadlock detection tool for multiple instance systems

Page 22: Deadlocks

Deadlock Recovery (7.7)

Page 23: Deadlocks

Process Termination

Abort all deadlock processes

Abort one at a time until deadlock cycle is eliminated

Page 24: Deadlocks

Resource Preemption

Selecting a victim – minimize cost.

Rollback – return to some safe state, restart process for that state.

Starvation – same process may always be picked as victim, include number of rollback in cost factor.