2. CONTENTS
• WHAT IS DEADLOCK?
• EXAMPLE OF DEADLOCK
• NECESSARY CONDITIONS FOR DEADLOCK
• DEADLOCK PREVENTION
• DEADLOCK DETECTION AND RECOVERY
• DEADLOCK HANDLING IN SPECIFIC OPERATING SYSTEMS
• CONCLUSION
3. WHAT IS
DEADLOCK?
• DEADLOCK IS A SITUATION IN WHICH
TWO OR MORE PROCESSES ARE UNABLE
TO PROCEED BECAUSE EACH IS WAITING
FOR ONE OF THE OTHERS TO COMPLETE
SOME OPERATION.
4. EXAMPLE
LET’S UNDERSTAND WITH A REAL-LIFE ANALOGY.
JOHN AND AMY ARE BROTHER-SISTER.
THEY BOTH ARE IN A DEADLOCK STATE AS
AMY WANTS A LAPTOP WHICH JOHN IS
HAVING AND IS NOT IN THE MOOD TO
GIVE IT TO HIS SISTER. AND AMY HAS A TV
REMOTE WHICH JOHN WANTS, BUT AMY IS
NOT GIVING IT TO HIM.
6. NECESSARY CONDITIONS FOR DEADLOCK
MUTUAL EXCLUSION:
• AT LEAST ONE RESOURCE MUST BE HELD IN A NON-SHAREABLE
MODE, MEANING ONLY ONE PROCESS CAN USE THE RESOURCE
AT A TIME.
• THIS CONDITION ENSURES THAT ONCE A PROCESS HOLDS A
RESOURCE, NO OTHER PROCESS CAN ACCESS IT UNTIL THE
HOLDING PROCESS RELEASES IT.
HOLD AND WAIT:
• PROCESSES MUST HOLD RESOURCES WHILE WAITING FOR
ADDITIONAL RESOURCES THAT ARE CURRENTLY HELD BY
OTHER PROCESSES.
• EACH PROCESS RETAINS AT LEAST ONE RESOURCE AND IS
WAITING TO ACQUIRE ADDITIONAL RESOURCES HELD BY
OTHER PROCESSES.
7. NECESSARY CONDITIONS FOR DEADLOCK
NO PREEMPTION:
• RESOURCES CANNOT BE FORCIBLY TAKEN AWAY FROM THE PROCESSES THAT
HOLD THEM.
• IF A PROCESS IS HOLDING A RESOURCE AND NEEDS ADDITIONAL RESOURCES
THAT ARE CURRENTLY HELD BY OTHER PROCESSES, IT CANNOT FORCIBLY TAKE
THOSE RESOURCES.
CIRCULAR WAIT:
• THERE MUST EXIST A SET OF WAITING PROCESSES {P1, P2, ..., PN}, WHERE P1 IS
WAITING FOR A RESOURCE HELD BY P2, P2 IS WAITING FOR A RESOURCE HELD
BY P3, ..., AND PN IS WAITING FOR A RESOURCE HELD BY P1, RESULTING IN A
CIRCULAR CHAIN OF DEPENDENCIES.
• EACH PROCESS IN THE CYCLE IS WAITING FOR A RESOURCE THAT IS HELD BY
THE NEXT PROCESS IN THE CYCLE, LEADING TO A DEADLOCK SITUATION WHERE
NO PROCESS CAN PROCEED
9. DEADLOCK DETECTION AND
RECOVERY
1. DEADLOCK DETECTION:
DEFINITION:: DEADLOCK DETECTION INVOLVES PERIODICALLY CHECKING THE SYSTEM FOR THE PRESENCE OF DEADLOCK.
TECHNIQUES:
• RESOURCE ALLOCATION GRAPH (RAG) ALGORITHM
• WAIT-FOR GRAPH ALGORITHM
PROCESS::ALGORITHMS ANALYZE RESOURCE ALLOCATION AND REQUEST PATTERNS TO IDENTIFY CIRCULAR WAITS AND DETECT
DEADLOCK SITUATIONS.
2. DEADLOCK RECOVERY:
DEFINITION: DEADLOCK RECOVERY STRATEGIES INVOLVE BREAKING THE DEADLOCK ONCE IT HAS BEEN DETECTED.
TECHNIQUES:
• PROCESS TERMINATION
• RESOURCE PREEMPTION
• ROLLBACK
PROCESS: ONCE DEADLOCK IS DETECTED, RECOVERY MECHANISMS ARE INITIATED TO RESOLVE THE DEADLOCK AND RESTORE
SYSTEM FUNCTIONALITY.
10. DEADLOCK HANDLING IN SPECIFIC
OPERATING SYSTEMS
1. Windows:
Deadlock Detection:
•Windows employs a deadlock
detection mechanism to identify
and resolve deadlock situations.
Recovery Techniques:
•Once deadlock is detected,
Windows may terminate one or
more processes involved in the
deadlock to break it.
Resource Management:
•Windows uses mechanisms like
the Resource Allocation Graph
(RAG) to track resource allocation
and detect deadlock.
11. DEADLOCK HANDLING IN SPECIFIC
OPERATING SYSTEMS
2. LINUX:
DEADLOCK AVOIDANCE:
LINUX UTILIZES DEADLOCK AVOIDANCE TECHNIQUES TO PREVENT DEADLOCK
SITUATIONS.
RESOURCE PREEMPTION:
IN SOME CASES, LINUX MAY PREEMPT RESOURCES FROM PROCESSES TO RESOLVE
DEADLOCK.
KERNEL-LEVEL SUPPORT:
LINUX KERNEL PROVIDES APIS AND SYSTEM CALLS FOR MANAGING RESOURCES AND
DETECTING DEADLOCK.
12. DEADLOCK HANDLING IN SPECIFIC
OPERATING SYSTEMS
3. MACOS:
DEADLOCK PREVENTION:
MACOS FOCUSES ON PREVENTING DEADLOCK SITUATIONS BY CAREFULLY MANAGING RESOURCE
ALLOCATION.
RESOURCE ORDERING:
RESOURCES ARE ASSIGNED A PARTIAL ORDERING, AND PROCESSES MUST REQUEST RESOURCES IN A
SPECIFIC ORDER TO PREVENT CIRCULAR WAITS.
SYSTEM STABILITY:
MACOS PRIORITIZES SYSTEM STABILITY AND RELIABILITY BY MINIMIZING THE OCCURRENCE OF
DEADLOCK SITUATIONS.
13. CONCLUSION
• DEADLOCKS POSE A SIGNIFICANT CHALLENGE IN OPERATING SYSTEMS, BUT
WITH CAREFUL DESIGN AND IMPLEMENTATION OF PREVENTION, DETECTION,
AND RECOVERY MECHANISMS, THEY CAN BE EFFECTIVELY MANAGED.
• IT'S ESSENTIAL FOR SYSTEM ADMINISTRATORS, DEVELOPERS, AND RESEARCHERS
TO STAY ABREAST OF THE LATEST DEADLOCK HANDLING TECHNIQUES AND
BEST PRACTICES TO ENSURE THE STABILITY AND RELIABILITY OF COMPUTER
SYSTEMS IN THE FACE OF DEADLOCK SCENARIOS.