Prevention:
• The goal is to ensure
that at least one of the necessary conditions for deadlock can never hold.
• Deadlock prevention is
often impossible to implement.
• The system doesnot
require additional apriori information regarding the overall potential use of
each resource for each process.
• In order for the system
to prevent the deadlock condition it does not need to know all the details of
all resources in existence, available and requested.
• Deadlock prevention
techniques include non-blocking synchronization algorithms, serializing tokens,
Dijkstras algorithm etc.
• Resource allocation
strategy for deadlock prevention is conservative, it under commits the
resources.
• All resources are
requested at once.
Avoidance:
• The goal for deadlock
avoidance is to the system must not enter an unsafe state.
• Deadlock avoidance is
often impossible to implement.
• The system requires
additional apriori information regarding the overall potential use of each
resource for each process.
• In order for the system
to be able to figure out whether the next state will be safe or unsafe, it must
know in advance at any time the number and type of all resources in existence,
available, and requested.
• Deadlock avoidance
techniques include Banker’s algorithm, Wait/Die, Wound/Wait etc.
• Resource allocation
strategy for deadlock avoidance selects midway between that of detection and
prevention.
• Needs to be manipulated
until atleast one safe path is found.
• There is no preemption.
Detection:
• The goal is to detect the
deadlock after it occurs or before it occurs.
• Detecting the possibility
of a deadlock before it occurs is much more difficult and is, in fact,
generally undecidable. However, in specific environments, using specific means
of locking resources, deadlock detection may be decidable.
• The system doesnot
requires additional apriori information regarding the overall potential use of
each resource for each process in all cases.
• In order for the system
to detect the deadlock condition it does not need to know all the details of
all resources in existence, available and requested.
• A deadlock detection
technique includes, but is not limited to, Model checking. This approach
constructs a Finite State-model on which it performs a progress analysis and
finds all possible terminal sets in the model.
• Resource allocation
strategy for deadlock detection is very liberal. Resources are granted as
requested.
• Needs to be invoked
periodically to test for deadlock.
• Preemption is seen.
_______________________