6. Deadlocks

23
Operating Systems 1 6. Deadlocks 6.1 Deadlocks with Reusable and Consumable Resources 6.2 Approaches to the Deadlock Problem 6.3 A System Model Resource Graphs State Transitions Deadlock States and Safe States 6.4 Deadlock Detection Reduction of Resource Graphs Special Cases of Deadlock Detection 6.5 Recovery from Deadlock 6.6 Dynamic Deadlock Avoidance Claim Graphs The Banker’s Algorithm 6.7 Deadlock Prevention

description

6. Deadlocks. 6.1 Deadlocks with Reusable and Consumable Resources 6.2 Approaches to the Deadlock Problem 6.3 A System Model Resource Graphs State Transitions Deadlock States and Safe States 6.4 Deadlock Detection Reduction of Resource Graphs - PowerPoint PPT Presentation

Transcript of 6. Deadlocks

Page 1: 6. Deadlocks

Operating Systems 1

6. Deadlocks6.1 Deadlocks with Reusable and Consumable Resources6.2 Approaches to the Deadlock Problem 6.3 A System Model

– Resource Graphs – State Transitions– Deadlock States and Safe States

6.4 Deadlock Detection – Reduction of Resource Graphs– Special Cases of Deadlock Detection

6.5 Recovery from Deadlock6.6 Dynamic Deadlock Avoidance

– Claim Graphs – The Banker’s Algorithm

6.7 Deadlock Prevention

Page 2: 6. Deadlocks

Operating Systems 2

Deadlocks• Informal definition: Process is blocked on resource that

will never be released.• Deadlocks waste resources• Deadlocks are rare:

– Many systems ignore them • Resolved by explicit user intervention

– Critical in many real-time applications• May cause damage, endanger life

Page 3: 6. Deadlocks

Operating Systems 3

Reusable/Consumable Resources• Reusable Resources

– Examples: memory, devices, files, tables– Number of units is constant– Unit is either free or allocated; no sharing– Process requests, acquires, releases units

• Consumable Resources– Examples: messages, signals– Number of units varies at runtime– Process releases (create) units (w/o acquire)– Other process requests and acquires (consumes)

Page 4: 6. Deadlocks

Operating Systems 4

Examples of Deadlocksp1: ... p2: ... open(f1,w); open(f2,w); open(f2,w); open(f1,w); ... ...• Deadlock when executed concurrently

p1: if (C) send(p2,m); p2: ... while(1) {... while(1) {... recv(p2,m); recv(p1,m); send(p2,m); send(p1,m); ... } ... }• Deadlock when C not true

Page 5: 6. Deadlocks

Operating Systems 5

Approaches to Deadlock Problem1. Detection and Recovery

– Allow deadlock to happen and eliminate it

2. Avoidance (dynamic)– Runtime checks disallow allocations that might lead to

deadlocks

3. Prevention (static)– Restrict type of request and acquisition to make

deadlock impossible

Page 6: 6. Deadlocks

Operating Systems 6

System Model (reusable only)• Resource graph:

– represents processes, resources, and their interactions– Process = Circle– Resource = Rectangle with small circles for each unit– Request = Edge from process to resource class– Allocation = Edge from resource unit to process

Page 7: 6. Deadlocks

Operating Systems 7

System Model: State Transitions• Request: Create new request edge piRj

Preconditions:– pi has no outstanding requests (= not blocked)

– number of edges between pi and Rj cannot exceed total units of Rj

• Acquisition: Reverse the request edge to piRj

Precondition:– All requests of pi are satisfiable (simplifies model)

• Release: Remove edge piRj

Page 8: 6. Deadlocks

Operating Systems 8

System Model: State Transitions• Resource graph represents current state of the system

(snapshot)

• Every request, acquisition, and release moves the system from one state to another

Page 9: 6. Deadlocks

Operating Systems 9

System Model – more definitions• A process is blocked in state S if it cannot request,

acquire, or release any resource.

• A process is deadlocked in state S if it is currently blocked now and remains blocked in all states reachable from state S

• A state is a deadlock state if it contains a deadlocked process.

• State S is a safe state if no deadlock state can be reached from S by any sequence of request, acquire, release operations.

Page 10: 6. Deadlocks

Operating Systems 10

ExampleAssume: 2 processes p1, p2; 2 resources R1, R2,

• p1 and p2 both need R1 and R2

• p1 always requests R1 first, p2 always requests R2 first

• Consider transition by p1 only

Page 11: 6. Deadlocks

Operating Systems 11

Example• p1 and p2 both need

R1 and R2

• p1 requests R1 before R2 releases R2 before R1

• p2 requests R2 before R1

releases R1 before R2

• consider all possible transitions

Page 12: 6. Deadlocks

Operating Systems 12

Deadlock Detection• Graph Reduction: Repeat the following

1. Select unblocked process p

2. Remove p and all request and allocation edges• Deadlock Graph not completely reducible.• All reduction sequences lead to the same result.

Page 13: 6. Deadlocks

Operating Systems 13

Special Cases of Detection• Testing for whether a specific process p is deadlocked:

– Reduce until p is removed or graph irreducible

• Continuous detection:

1. Current state not deadlocked

2. Next state T deadlocked only if:

a. Operation was a request by p and

b. p is deadlocked in T

3. Try to reduce T by p

Page 14: 6. Deadlocks

Operating Systems 14

Special Cases of Detection• Immediate allocations

– All satisfiable requests are granted immediately

– Expedient state: state with no satisfiable request edges

– If all requests are granted immediately, all states are expedient.

Example:not expedient (p1->R1)

Page 15: 6. Deadlocks

Operating Systems 15

Special Cases of Detection• Immediate allocations (continued)

– Knot in expedient state Deadlock– Knot: A set K of nodes such that

• Every node in K reachable from any other node in K• No outgoing edges from any node in K

– Intuition:• All processes in K must have outstanding requests • Expedient state means requests not satisfiable• Therefore all processes are blocked

– But condition is not sufficient for deadlock – not very useful

Page 16: 6. Deadlocks

Operating Systems 16

Special Cases of Detection• For single-unit resources, cycle deadlock

• Intuition:

– Cycle: must alternate p and R nodes

– Every pi on cycle must have a request edge to Ri

– Every Ri must have an allocation edge to pi+1

– no R is available (single unit) and thus all p’s are blocked

Page 17: 6. Deadlocks

Operating Systems 17

Recovery from Deadlock• Process termination

– Kill all processes involved in deadlock; or– Kill one at a time. In what order?

• by priority: consistent with scheduling • by cost of restart: length of recomputation • by impact on other processes: CS, producer/consumer

• Resource preemption– Direct: Temporarily remove resource (e.g., Memory)– Indirect: Rollback to earlier “checkpoint”

Page 18: 6. Deadlocks

Operating Systems 18

Dynamic Deadlock Avoidance

• Process indicatesmaximum resources needed

• Potential request edge piRj (dashed)

• May turn intoreal request edge

Maximum Claim Graph

Page 19: 6. Deadlocks

Operating Systems 19

Dynamic Deadlock Avoidance• Theorem: Prevent acquisitions that do not produce a

completely reducible graph All state are safe.

• Banker’s algorithm (Dijkstra):– Given a satisfiable request, pR, tentatively grant

request, changing pR to Rp– Try to reduce new claim graph – If completely reducible proceed.

If not, reverse acquisition Rp back to pR

Page 20: 6. Deadlocks

Operating Systems 20

Example of banker’s algorithm

a. Which requests for R1 can safely be granted?

b. p1: grant, resulting claim graph is reducible (p1,p3, p2)

c. p2: do not grant, resulting claim graph is not reducible

• p3: grant, resulting claim graph is reducible (p3,p1/p2)

Page 21: 6. Deadlocks

Operating Systems 21

Dynamic Deadlock Avoidance• Special Case: Single-unit resources

a. Check for cycles after tentative acquisitionDisallow if cycle is found, e.g., grant R1 to p2?

b. If claim graph contains no undirected cycles,all states are safe (no directed cycle can ever be formed)

Page 22: 6. Deadlocks

Operating Systems 22

Deadlock Prevention• Deadlock requires the following 3 conditions:

1. Mutual exclusion: • Resources not sharable

2. Hold and wait: • Process must be holding one resource while

requesting another

3. Circular wait:• At least 2 processes must be blocked on each other

Page 23: 6. Deadlocks

Operating Systems 23

Deadlock Prevention1. Eliminate mutual exclusion

– Not possible in most cases– Spooling makes I/O devices sharable

2. Eliminate hold-and-wait – Request all resources at once– Release all resources before a new request– Release all resources if current request blocks

3. Eliminate circular wait– Order all resources– Process must request in ascending order