0% found this document useful (0 votes)
21 views

Lecture 27

The document discusses three main methods for handling deadlocks: 1) Deadlock prevention ensures a system will never enter a deadlock state through techniques like mutual exclusion, hold and wait, no preemption, and imposing a total ordering of resource types. 2) Deadlock avoidance allows for dynamic checking of system state to ensure no circular wait condition occurs and the system remains in a safe state. 3) Recovery allows the system to enter a deadlock state but then recover by breaking resource cycles.

Uploaded by

YASH KAMRA
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Lecture 27

The document discusses three main methods for handling deadlocks: 1) Deadlock prevention ensures a system will never enter a deadlock state through techniques like mutual exclusion, hold and wait, no preemption, and imposing a total ordering of resource types. 2) Deadlock avoidance allows for dynamic checking of system state to ensure no circular wait condition occurs and the system remains in a safe state. 3) Recovery allows the system to enter a deadlock state but then recover by breaking resource cycles.

Uploaded by

YASH KAMRA
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

Methods for Handling Deadlocks

 Ensure that the system will never enter a


deadlock state:
 Deadlock prevention
 Deadlock avoidence
 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 – 9th Edition 7.1 Silberschatz, Galvin and Gagne
Deadlock Prevention
Restrain the ways request can be made

 Mutual Exclusion – not required for sharable


resources (e.g., read-only files); must hold for non-
sharable 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 allocated to it.
 Low resource utilization; starvation possible

Operating System Concepts – 9th Edition 7.2 Silberschatz, Galvin and Gagne
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 – 9th Edition 7.3 Silberschatz, Galvin and Gagne
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 – 9th Edition 7.4 Silberschatz, Galvin and Gagne
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 in the systems such
that for each Pi, 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 – 9th Edition 7.5 Silberschatz, Galvin and Gagne
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 – 9th Edition 7.6 Silberschatz, Galvin and Gagne
Safe, Unsafe, Deadlock State

Operating System Concepts – 9th Edition 7.7 Silberschatz, Galvin and Gagne
Avoidance Algorithms
 Single instance of a resource type
 Use a resource-allocation graph

 Multiple instances of a resource type


 Use the banker’s algorithm

Operating System Concepts – 9th Edition 7.8 Silberschatz, Galvin and Gagne
Resource-Allocation Graph Scheme
 Claim edge Pi - - -  Rj indicated that process Pj
may request resource Rj; represented by a dashed
line
 Claim edge converts to request edge when a
process requests a resource
 Request edge converted to an assignment edge
when the resource is allocated to the process
 When a resource is released by a process,
assignment edge reconverts to a claim edge
 Resources must be claimed a priori in the system

Operating System Concepts – 9th Edition 7.9 Silberschatz, Galvin and Gagne
Resource-Allocation Graph

Operating System Concepts – 9th Edition 7.10 Silberschatz, Galvin and Gagne
Unsafe State In Resource-Allocation Graph

Operating System Concepts – 9th Edition 7.11 Silberschatz, Galvin and Gagne
Resource-Allocation Graph Algorithm

 Suppose that process Pi requests a


resource Rj
 The request can be granted only if
converting the request edge to an
assignment edge does not result in the
formation of a cycle in the resource
allocation graph

Operating System Concepts – 9th Edition 7.12 Silberschatz, Galvin and Gagne
Banker’s Algorithm
 Multiple instances

 Each process must a priori claim maximum use

 When a process requests a resource it may have


to wait

 When a process gets all its resources it must


return them in a finite amount of time

Operating System Concepts – 9th Edition 7.13 Silberschatz, Galvin and Gagne

You might also like