0% found this document useful (0 votes)
12 views10 pages

Lecture3 ch07

Uploaded by

m.kodary1189
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views10 pages

Lecture3 ch07

Uploaded by

m.kodary1189
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Chapter 7: Deadlocks

Chapter 7: Deadlocks

The Deadlock Problem


System Model
Deadlock Characterization
Methods for Handling Deadlocks
Deadlock Prevention
Deadlock Avoidance
Deadlock Detection
Recovery from Deadlock

Operating System Concepts 7.2 Silberschatz, Galvin and Gagne ©2005

1
The Deadlock Problem

A set of blocked processes each holding a resource and waiting to


acquire a resource held by another process in the set.
Example
System has 2 tape drives.
P1 and P2 each hold one tape drive and each needs another
one.
Example
semaphores A and B, initialized to 1

P0 P1
wait (A); wait(B)
wait (B); wait(A)

Operating System Concepts 7.3 Silberschatz, Galvin and Gagne ©2005

Bridge Crossing Example

Traffic only in one direction.


Each section of a bridge can be viewed as a resource.
If a deadlock occurs, it can be resolved if one car backs up
(preempt resources and rollback).
Several cars may have to be backed up if a deadlock
occurs.
Starvation is possible.

Operating System Concepts 7.4 Silberschatz, Galvin and Gagne ©2005

2
System Model

Resource types R1, R2, . . ., Rm


CPU cycles, memory space, I/O devices
Each resource type Ri has Wi instances.
Each process utilizes a resource as follows:
request
use
release

Operating System Concepts 7.5 Silberschatz, Galvin and Gagne ©2005

Deadlock Characterization

Deadlock can arise if four conditions hold simultaneously.


Mutual exclusion: only one process at a time can use a
resource.
Hold and wait: a process holding at least one resource is
waiting to acquire additional resources held by other
processes.
No preemption: a resource can be released only
voluntarily by the process holding it, after that process has
completed its task.
Circular wait: there exists a set {P0, P1, …, P0} of waiting
processes such that P0 is waiting for a resource that is held
by P1, P1 is waiting for a resource that is held by
P2, …, Pn–1 is waiting for a resource that is held by
Pn, and P0 is waiting for a resource that is held by P0.

Operating System Concepts 7.6 Silberschatz, Galvin and Gagne ©2005

3
Resource-Allocation Graph

A set of vertices V and a set of edges E.

V is partitioned into two types:


P = {P1, P2, …, Pn}, the set consisting of all the
processes in the system.

R = {R1, R2, …, Rm}, the set consisting of all resource


types in the system.
request edge – directed edge P1 → Rj
assignment edge – directed edge Rj → Pi

Operating System Concepts 7.7 Silberschatz, Galvin and Gagne ©2005

Resource-Allocation Graph (Cont.)

Process

Resource Type with 4 instances

Pi requests instance of Rj

Pi
Rj
Pi is holding an instance of Rj

Pi
Rj

Operating System Concepts 7.8 Silberschatz, Galvin and Gagne ©2005

4
Example of a Resource Allocation Graph

Operating System Concepts 7.9 Silberschatz, Galvin and Gagne ©2005

Resource Allocation Graph With A Deadlock

Operating System Concepts 7.10 Silberschatz, Galvin and Gagne ©2005

5
Resource Allocation Graph With A Cycle But No Deadlock

Operating System Concepts 7.11 Silberschatz, Galvin and Gagne ©2005

Basic Facts

If graph contains no cycles no deadlock.

If graph contains a cycle


if only one instance per resource type, then deadlock.
if several instances per resource type, possibility of
deadlock.

Operating System Concepts 7.12 Silberschatz, Galvin and Gagne ©2005

6
Methods for Handling Deadlocks

Ensure that the system will never enter a deadlock state.

Allow the system to enter a deadlock state and then


recover.

Ignore the problem and pretend that deadlocks never occur


in the system; used by most operating systems, including
UNIX.

Operating System Concepts 7.13 Silberschatz, Galvin and Gagne ©2005

Deadlock Prevention

Restrain the ways request can be made.

Mutual Exclusion – not required for sharable resources;


must hold for nonsharable resources.

Hold and Wait – must guarantee that whenever a process


requests a resource, it does not hold any other resources.
Require process to request and be allocated all its
resources before it begins execution, or allow process
to request resources only when the process has none.
Low resource utilization; starvation possible.

Operating System Concepts 7.14 Silberschatz, Galvin and Gagne ©2005

7
Deadlock Prevention (Cont.)

No Preemption –
If a process that is holding some resources requests
another resource that cannot be immediately allocated to
it, then all resources currently being held are released.
Preempted resources are added to the list of resources
for which the process is waiting.
Process will be restarted only when it can regain its old
resources, as well as the new ones that it is requesting.

Circular Wait – impose a total ordering of all resource types,


and require that each process requests resources in an
increasing order of enumeration.

Operating System Concepts 7.15 Silberschatz, Galvin and Gagne ©2005

Deadlock Avoidance

Requires that the system has some additional a priori information


available.

Simplest and most useful model requires that each process


declare the maximum number of resources of each type
that it may need.

The deadlock-avoidance algorithm dynamically examines


the resource-allocation state to ensure that there can never
be a circular-wait condition.

Resource-allocation state is defined by the number of


available and allocated resources, and the maximum
demands of the processes.

Operating System Concepts 7.16 Silberschatz, Galvin and Gagne ©2005

8
Deadlock Detection

Allow system to enter deadlock state

Detection algorithm

Recovery scheme

Operating System Concepts 7.17 Silberschatz, Galvin and Gagne ©2005

Recovery from Deadlock: Process Termination

Abort all deadlocked processes.

Abort one process at a time until the deadlock cycle is eliminated.

In which order should we choose to abort?


Priority of the process.
How long process has computed, and how much longer to
completion.
Resources the process has used.
Resources process needs to complete.
How many processes will need to be terminated.
Is process interactive or batch?

Operating System Concepts 7.18 Silberschatz, Galvin and Gagne ©2005

9
Recovery from Deadlock: 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.

Operating System Concepts 7.19 Silberschatz, Galvin and Gagne ©2005

End of Chapter 7

10

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy