Deadlock Prevention

Only available on StudyMode
  • Topic: Deadlock, Resource allocation, Resource
  • Pages : 12 (1869 words )
  • Download(s) : 79
  • Published : May 14, 2013
Open Document
Text Preview
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

Chapter Objectives
To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks To present a number of different methods for preventing or avoiding deadlocks in a computer system.

Operating System Concepts

7.3

Silberschatz, Galvin and Gagne ©2005

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 wait (A); wait (B); P1 wait(B) wait(A)

Operating System Concepts

7.4

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.5

Silberschatz, Galvin and Gagne ©2005

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.6

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.7

Silberschatz, Galvin and Gagne ©2005

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.8

Silberschatz, Galvin and Gagne ©2005

Resource-Allocation Graph (Cont.)
Process

Resource Type with 4 instances

Pi requests instance of Rj Pi Pi is holding an instance of Rj Rj

Pi
Rj
Operating System Concepts 7.9 Silberschatz, Galvin and Gagne ©2005

Example of a Resource Allocation Graph

Operating System Concepts

7.10

Silberschatz, Galvin and Gagne ©2005

Resource Allocation Graph With A Deadlock

Operating System Concepts

7.11

Silberschatz, Galvin and Gagne ©2005

Resource Allocation Graph With A Cycle But No Deadlock

Operating System Concepts

7.12

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.13

Silberschatz, Galvin and Gagne ©2005

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...
tracking img