0% found this document useful (0 votes)
22 views13 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views13 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
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

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