Lecture 27
Lecture 27
Operating System Concepts – 9th Edition 7.1 Silberschatz, Galvin and Gagne
Deadlock Prevention
Restrain the ways request can be made
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
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
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
Operating System Concepts – 9th Edition 7.12 Silberschatz, Galvin and Gagne
Banker’s Algorithm
Multiple instances
Operating System Concepts – 9th Edition 7.13 Silberschatz, Galvin and Gagne