100% found this document useful (1 vote)
632 views10 pages

Deadlock Prevention and Avoidance

Deadlock prevention and avoidance techniques aim to prevent deadlocks from occurring in a system. Deadlock prevention restricts how processes can request resources to avoid circular wait conditions. Deadlock avoidance dynamically checks the resource allocation state to ensure the system remains in a "safe state" where deadlocks cannot occur. The resource allocation graph model represents resource usage and can be used to determine if a requested allocation would leave the system in a safe or unsafe state.

Uploaded by

Anos
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
100% found this document useful (1 vote)
632 views10 pages

Deadlock Prevention and Avoidance

Deadlock prevention and avoidance techniques aim to prevent deadlocks from occurring in a system. Deadlock prevention restricts how processes can request resources to avoid circular wait conditions. Deadlock avoidance dynamically checks the resource allocation state to ensure the system remains in a "safe state" where deadlocks cannot occur. The resource allocation graph model represents resource usage and can be used to determine if a requested allocation would leave the system in a safe or unsafe state.

Uploaded by

Anos
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/ 10

DEADLOCK PREVENTION AND

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


Deadlock Prevention
 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.
Deadlock Avoidance
 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.
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 safe sequence of all


processes.

 Sequence <P1, P2, …, Pn> is safe if 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.
 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.
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.
Safe, Unsafe , Deadlock State
Resource-Allocation Graph
Algorithm
 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.

 When a resource is released by a process,


assignment edge reconverts to a claim edge.

 Resources must be claimed a priori in the system.


Resource-Allocation Graph For Deadlock Avoidance
Unsafe State In Resource-Allocation Graph

You might also like