Deadlock एक ऐसी स्थिति (condition) है जिसमें दो या दो से अधिक processes एक-दूसरे के resources का इंतजार करते रहते हैं और कोई भी process अपना काम पूरा नहीं कर पाता।
दूसरे शब्दों में कहें तो, “Deadlock वह स्थिति है जिसमें दो या दो से अधिक processes को अपने execution पूरा करने के लिए resource की आवश्यकता होती है परन्तु उन resources को किसी दूसरे process के द्वारा hold किया गया होता है। जिसके कारण process का execution पूरा नहीं हो पाता।”
डेडलॉक Operating system में होने वाली एक स्थिति है जिसमे कोई एक process (प्रोसेस) waiting state में चली जाती है क्योंकि दूसरी process के द्वारा resource को hold किया गया होता है।
Deadlock का आसान उदाहरण (Example)
मान लीजिए दो दोस्त, राहुल और अमित, कंप्यूटर गेम खेलना चाहते हैं।
- राहुल के पास गेम की Remote Control है।
- अमित के पास गेम की CD है।
अब राहुल को खेलने के लिए CD चाहिए और अमित को रिमोट। दोनों में से कोई भी अपनी चीज दूसरे को देने को तैयार नहीं है। नतीजा यह होता है कि दोनों में से कोई भी गेम नहीं खेल पाता। यही स्थिति ‘Deadlock’ है।

डेडलॉक को समझना (Technical Explanation)
चित्र के अनुसार, मान लीजिए हमारे पास दो प्रोसेसेज P1 और P2 हैं, और दो रिसोर्स R1 और R2 हैं।
- P1 ने R1 को hold किया है, लेकिन उसे काम पूरा करने के लिए R2 चाहिए।
- P2 ने R2 को hold किया है, लेकिन उसे काम पूरा करने के लिए R1 चाहिए।
- अब P1, R2 के खाली होने का इंतजार कर रहा है और P2, R1 के खाली होने का। यह इंतजार कभी खत्म नहीं होता और सिस्टम Deadlock में फंस जाता है।
Conditions of Deadlock in Hindi
Deadlock की चार कंडीशन होती है जो निम्नलिखित है:-
- mutual exclusion
- hold & wait
- no preemption
- circular wait
1:- Mutual exclusion – इस स्थिति में, कोई न कोई एक ऐसा resource होता है जिसे processes के मध्य share (साझा) ना किया जा सकें.
इसमें एक समय में केवल एक process ही resource को use कर सकती है. अर्थात् कोई दो process एक समय में एक resource का प्रयोग नहीं कर सकते.
2:- Hold & wait – इसमें, process एक resource को hold किये रहता है जबकि दुसरे resource के लिए wait (इन्तजार) करता है.
3:- No preemption – वह resource जो किसी process के लिए allocate हो चूका हो, उसे जबरन किसी दुसरे process को allocate नही किया जा सकता है. Process अपनी मर्जी से resource को release करता है.
4:- Circular wait – इस स्थिति में, प्रत्येक process एक resource के लिए wait करता है जिसको दूसरे process ने held किया रहता है. इसमें सभी प्रोसेस एक circle के रूप में resources का इन्तजार करते हैं. इसलिए इसे circular wait कहा जाता है.
इसे भी पढ़ें:- Deadlock prevention और avoidance क्या है?
Deadlock Prevention –डेडलॉक को रोकना
Deadlock को prevent करने के लिए हमें डेडलॉक की ऊपर दी गयी चार conditions में से किसी एक को होने से रोकना पड़ता है. तभी जाके हम डेडलॉक को होने से रोक सकते हैं.
Mutual exclusion – यदि हम किसी resource को share कर सकते हैं तो हम mutual exclusion को होने से रोक सकते हैं. परन्तु हमारे पास बहुत सारें ऐसे resources होते है जिन्हें share नहीं किया जा सकता है जैसे कि – tape driver, printer आदि. इसके कारण हम mutual exclusion के द्वारा हमेशा डेडलॉक को prevent नहीं कर सकते.
Hold & Wait – यदि हम प्रोसेस को इसके execution से पहले ही resource allocate कर दे तो हम hold and wait की condition को होने से रोक सकते हैं. परन्तु इसका नुकसान यह है कि इससे device का utilization बहुत कम हो जाता है.
No preemption – किसी process के द्वारा hold किये गये resource को release करके हम इस कंडीशन को होने से रोक सकते है.
Circular wait – इस condition को रोकने के लिए हम process को घटते या बढ़ते क्रम में ही resources allocate कर सकते है.
Deadlock avoidance – डेडलॉक को अवॉयड करना
Deadlock prevention की algorithm बहुत कम प्रभावशाली है क्योंकि इनसे device का utilization और सिस्टम का throughput कम होता है. परन्तु हम डेडलॉक को avoid कर सकते हैं.
डेडलॉक को अवॉयड करने के लिए हम banker’s algorithm का प्रयोग करते हैं.
इसे पढने के लिए click करें:- banker’s algorithm क्या है?
Deadlock Detection – डेडलॉक को डिटेक्ट करना
ऑपरेटिंग सिस्टम resource scheduler का प्रयोग करके deadlocks को detect कर सकता है. Resource scheduler ऑपरेटिंग सिस्टम की सभी processes को allocate किए गए resources को track करने मे मदद करता है. इसलिए जब भी कोई डेडलॉक होता है तो उसे algorithms का प्रयोग करके solve कर लिया जाता है.
Disadvantage of Deadlock in Hindi – डेडलॉक के नुकसान
इसके नुकसान निम्नलिखित हैं:-
- इसके कारण process के execution में देरी होती है.
- इसमें प्रोसेस को पता होना चाहिए कि future में उसे किस रिसोर्स की जरूरत होगी.
- इसमें preemption आवश्यकता से अधिक बार होता है.
डेडलॉक के लाभ –
इसके लाभ निम्नलिखित हैं:-
- यह स्थिति उन processes के लिए अच्छी है जो सिर्फ एक कार्य को ही perform करते हैं.
- deadlock avoidance के लिए no preemption की आवश्यकता नहीं होती.
references:-
निवेदन:- अगर आपको Deadlock in Hindi पोस्ट आपको पसंद आई है तो इसे अपने दोस्तों के साथ भी शेयर करें तथा deadlock के बारे में आप कुछ और जानते हो तो हमें कमेंट के माध्यम से बताएँ।
मैं आपके लिए नए नए notes और articles लाते रहता हूँ. अगर आपका कोई सुझाव है या किसी subject से सम्बन्धित कोई सवाल हो तो आप उसे भी नीचे comment करके बता सकते हैं. मैं उसे 1-2 दिन में डाल दूंगा. Thanks.