Chapter 7 Deadlocks

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 13

Chapter 7: Deadlocks

Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.2 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.3 Silberschatz, Galvin and Gagne ©2009
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 disk drives
 P1 and P2 each hold one disk 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 – 8th Edition 7.4 Silberschatz, Galvin and Gagne ©2009
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
 Note – Most OSes do not prevent or deal with deadlocks

Operating System Concepts – 8th Edition 7.5 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.6 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.7 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.8 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.9 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 7.10 Silberschatz, Galvin and Gagne ©2009
Safe State
 When a process requests an available resource, system must decide
if immediate allocation leaves the system in a safe state

 System is in safe state if there exists a sequence <P1, P2, …, Pn> of


ALL the processes is the systems such that for each P i, the
resources that Pi can still request can be satisfied by currently
available resources + resources held by all the Pj, with j < I

 That is:
 If Pi resource needs are not immediately available, then Pi can
wait until all Pj have finished
 When Pj is finished, Pi can obtain needed resources, execute,
return allocated resources, and terminate
 When Pi terminates, Pi +1 can obtain its needed resources, and so
on

Operating System Concepts – 8th Edition 7.11 Silberschatz, Galvin and Gagne ©2009
Basic Facts

 If a system is in safe state  no deadlocks

 If a system is in unsafe state  possibility of deadlock

 Avoidance  ensure that a system will never enter an unsafe state.

Operating System Concepts – 8th Edition 7.12 Silberschatz, Galvin and Gagne ©2009
‫سؤالك ق د يفتح آفاق ًا جدي دة لم‬
‫ أو يط رق أبواب ًا مغلق ة لم‬.. ‫ُتْس َبر‬
‫تأمالت_حياة‬# .. ‫ُتفتح‬
13

Operating Systems

Operating System Concepts – 8th Edition 7.13 Silberschatz, Galvin and Gagne ©2009

You might also like