Introduction to Deadlock
•Deadlock is a situation where a set of
processes are blocked because each process is
holding a resource and waiting for another
resource acquired by another process.
• - Common in multitasking and multiprocessing
environments.
3.
Necessary Conditions forDeadlock
• 1. Mutual Exclusion: At least one resource
must be held in a non-shareable mode.
• 2. Hold and Wait: A process is holding at least
one resource and waiting to acquire additional
resources.
• 3. No Preemption: Resources cannot be
forcibly taken from processes holding them.
• 4. Circular Wait: A set of processes are waiting
for each other in a circular chain.
4.
Deadlock Example
• -Process P1 holds Resource R1 and waits for
R2.
• - Process P2 holds Resource R2 and waits for
R1.
• - Neither can proceed = Deadlock
5.
Deadlock Detection
• -System checks periodically for circular waits
in the Resource Allocation Graph.
• - Algorithms used:
• - Wait-for Graph (WFG)
• - Banker's Algorithm (for safe state check)
6.
Deadlock Prevention
• Eliminateone of the necessary conditions:
• - Deny Mutual Exclusion (rarely possible)
• - Deny Hold and Wait
• - Allow Preemption
• - Prevent Circular Wait (resource ordering)
7.
Deadlock Avoidance
• -Ensure system never enters an unsafe state.
• - Banker's Algorithm:
• - Checks system’s resource allocation state
before granting a request.
8.
Deadlock Recovery
• -Process Termination: Abort one or more
processes to break the cycle.
• - Resource Preemption: Take resources from
some processes and allocate to others.
9.
Real-World Examples
• -Database systems
• - Traffic deadlock at intersections
• - Multi-threaded applications
10.
Summary
• - Deadlockis a critical issue in OS requiring
careful handling.
• - Prevention, Avoidance, Detection, and
Recovery are key strategies.
• - Understanding resource management helps
minimize deadlocks.