what is deadlock in hindi

आज का अपना टॉपिक है what is deadlock in hindi और इसके साथ इसके necessary conditions for Deadloack in hindi, Methods to Prevent Deadlock in hindi, Example of Deadlock in hindi and solution of deadlock in hindi बारे में पढ़ेंगे

डेडलॉक क्या है?| what is deadlock in hindi

किसी Operating system में, डेडलॉक एक ऐसी स्थिति है जिसमें दो या अधिक प्रक्रियाएँ (processes) एक-दूसरे के संसाधनों (resources) की प्रतीक्षा कर रही होती हैं, लेकिन कोई भी प्रक्रिया अपने आवश्यक संसाधन प्राप्त नहीं कर पाती। इसका परिणाम यह होता है कि सभी प्रभावित प्रक्रियाएँ अनिश्चितकाल के लिए रुक जाती हैं और सिस्टम का प्रदर्शन प्रभावित होता है।

Necessary Conditions for Deadlock in hindi:

डेडलॉक की आवश्यक शर्तें

डेडलॉक ऑपरेटिंग सिस्टम में एक ऐसी स्थिति है जिसमें दो या अधिक प्रक्रियाएँ (processes) अनिश्चितकाल के लिए रुकी रहती हैं क्योंकि वे एक-दूसरे के संसाधनों की प्रतीक्षा कर रही होती हैं। जब किसी सिस्टम में डेडलॉक होता है, तो यह सिस्टम की कार्यक्षमता को प्रभावित करता है और निष्पादन (execution) को रोक सकता है। डेडलॉक तभी उत्पन्न होता है जब कुछ विशेष शर्तें पूरी होती हैं। इन शर्तों को “डेडलॉक की आवश्यक शर्तें” (Necessary Conditions for Deadlock in hindi) कहा जाता है।

डेडलॉक उत्पन्न होने के लिए निम्नलिखित चार शर्तों का पूरा होना आवश्यक है:

1. म्यूचुअल एक्सक्लूज़न (Mutual Exclusion)

म्यूचुअल एक्सक्लूज़न का अर्थ है कि कोई भी संसाधन (resource) एक समय में केवल एक ही प्रक्रिया (process) द्वारा उपयोग किया जा सकता है। यदि कोई दूसरी प्रक्रिया उसी संसाधन को उपयोग करने का प्रयास करती है, तो उसे तब तक प्रतीक्षा करनी होगी जब तक वह संसाधन उपलब्ध न हो जाए।

उदाहरण के लिए, मान लीजिए कि कोई प्रिंटर (printer) एक विशेष प्रक्रिया द्वारा उपयोग किया जा रहा है, तो दूसरी प्रक्रिया उसे तब तक उपयोग नहीं कर सकती जब तक पहली प्रक्रिया अपना कार्य पूरा नहीं कर लेती। अगर संसाधनों को साझा (shared) किया जा सकता, तो डेडलॉक की संभावना कम हो जाती। लेकिन कई महत्वपूर्ण संसाधन जैसे प्रिंटर, हार्ड डिस्क, और नेटवर्क पोर्ट म्यूचुअल एक्सक्लूज़न नियम का पालन करते हैं, जिससे डेडलॉक की स्थिति उत्पन्न हो सकती है।

2. होल्ड एंड वेट (Hold and Wait)

होल्ड एंड वेट स्थिति तब उत्पन्न होती है जब कोई प्रक्रिया पहले से आवंटित संसाधनों को छोड़े बिना अन्य संसाधनों की प्रतीक्षा कर रही होती है। इसका मतलब यह है कि प्रक्रिया कुछ संसाधनों को धारण (hold) किए रहती है और अतिरिक्त संसाधनों के उपलब्ध होने का इंतजार करती है।

उदाहरण के लिए, मान लीजिए कि कोई प्रक्रिया सीपीयू (CPU) और प्रिंटर दोनों की आवश्यकता रखती है, लेकिन पहले उसे केवल सीपीयू मिलता है और वह प्रिंटर के लिए प्रतीक्षा करने लगती है। दूसरी ओर, दूसरी प्रक्रिया प्रिंटर को पहले ही पकड़ चुकी होती है और सीपीयू के लिए प्रतीक्षा कर रही होती है। इस स्थिति में दोनों प्रक्रियाएँ एक-दूसरे की प्रतीक्षा करती हैं, जिससे डेडलॉक हो जाता है।

डेडलॉक से बचने के लिए, सिस्टम को इस स्थिति को रोकना होगा, जैसे कि प्रक्रिया को तब तक कोई भी संसाधन आवंटित न किया जाए जब तक वह सभी आवश्यक संसाधन एक साथ प्राप्त न कर ले।

3. नो प्रीएम्पशन (No Preemption)

नो प्रीएम्पशन का अर्थ है कि किसी प्रक्रिया को आवंटित संसाधन जबरदस्ती वापस नहीं लिया जा सकता। जब एक संसाधन किसी प्रक्रिया को आवंटित किया जाता है, तो उसे तब तक उसी प्रक्रिया के पास रहना होता है जब तक वह उसे स्वेच्छा से छोड़ न दे।

अगर संसाधन को जबरदस्ती वापस लिया जा सकता होता, तो डेडलॉक की समस्या नहीं आती, क्योंकि प्रक्रिया को संसाधनों की प्रतीक्षा करने की जरूरत नहीं होती।

उदाहरण के लिए, मान लीजिए कि कोई प्रक्रिया एक नेटवर्क पोर्ट को उपयोग कर रही है और उसे प्रिंटर की भी आवश्यकता है, लेकिन वह पहले से किसी अन्य प्रक्रिया द्वारा उपयोग किया जा रहा है। अब, चूंकि संसाधनों को जबरदस्ती वापस नहीं लिया जा सकता, इसलिए प्रक्रिया को प्रिंटर के उपलब्ध होने तक इंतजार करना पड़ेगा। यदि कोई तरीका होता जिससे संसाधन किसी अन्य प्रक्रिया को दिया जा सकता, तो डेडलॉक टल सकता था।

डेडलॉक से बचने के लिए कुछ ऑपरेटिंग सिस्टम संसाधन प्रीएम्पशन की अनुमति देते हैं, जिससे यदि कोई प्रक्रिया संसाधनों की प्रतीक्षा कर रही हो, तो दूसरे संसाधनों को पुनः आवंटित किया जा सके।

4. सर्कुलर वेट (Circular Wait)

सर्कुलर वेट तब होता है जब प्रक्रियाओं का एक समूह एक-दूसरे से संसाधनों की प्रतीक्षा कर रहा होता है, जिससे एक चक्र (cycle) बन जाता है।

उदाहरण के लिए, मान लीजिए कि चार प्रक्रियाएँ P1, P2, P3, और P4 हैं, और उनके संसाधन अनुरोध इस प्रकार हैं:

  • P1 संसाधन R1 को होल्ड किए हुए है और R2 की प्रतीक्षा कर रही है।
  • P2 संसाधन R2 को होल्ड किए हुए है और R3 की प्रतीक्षा कर रही है।
  • P3 संसाधन R3 को होल्ड किए हुए है और R4 की प्रतीक्षा कर रही है।
  • P4 संसाधन R4 को होल्ड किए हुए है और R1 की प्रतीक्षा कर रही है।

इस स्थिति में, एक चक्र बन जाता है और कोई भी प्रक्रिया आगे नहीं बढ़ सकती, जिससे डेडलॉक हो जाता है।

डेडलॉक से बचने के लिए सर्कुलर वेट को तोड़ने की आवश्यकता होती है। इसका एक तरीका यह है कि संसाधनों को एक निश्चित क्रम (order) में आवंटित किया जाए, जिससे चक्र (cycle) बनने की संभावना समाप्त हो जाए।

और भी पढ़े
system designing

Methods to Prevent Deadlock in hindi:

deadlock in hindi

डेडलॉक रोकथाम के तरीके

डेडलॉक को रोकने के लिए मुख्य रूप से चार प्रकार के तरीके होते हैं:

  1. डेडलॉक रोकथाम (Deadlock Prevention)
  2. डेडलॉक परिहार (Deadlock Avoidance)
  3. डेडलॉक डिटेक्शन और रिकवरी (Deadlock Detection and Recovery)
  4. संसाधन आवंटन नीतियाँ (Resource Allocation Policies)

आइए इन सभी तरीकों को विस्तार से समझते हैं।

1. डेडलॉक रोकथाम (Deadlock Prevention)

डेडलॉक की रोकथाम का अर्थ है कि सिस्टम को इस प्रकार डिज़ाइन किया जाए कि डेडलॉक उत्पन्न ही न हो। चूँकि डेडलॉक तभी उत्पन्न होता है जब चार आवश्यक शर्तें पूरी होती हैं (Mutual Exclusion, Hold and Wait, No Preemption, और Circular Wait), इसलिए इनमें से किसी एक या अधिक शर्तों को तोड़कर डेडलॉक को रोका जा सकता है।

(i) म्यूचुअल एक्सक्लूज़न (Mutual Exclusion) को समाप्त करना

  • म्यूचुअल एक्सक्लूज़न की शर्त कहती है कि कुछ संसाधन केवल एक ही प्रक्रिया द्वारा उपयोग किए जा सकते हैं।
  • यदि संसाधनों को साझा (shared) किया जा सके, तो डेडलॉक की संभावना कम हो जाती है।
  • उदाहरण: Read-only फाइलों को कई प्रक्रियाएँ एक साथ पढ़ सकती हैं, जिससे डेडलॉक नहीं होगा।

(ii) होल्ड एंड वेट (Hold and Wait) को समाप्त करना

  • होल्ड एंड वेट को समाप्त करने के लिए एक प्रक्रिया को संसाधन तभी दिया जाता है जब उसे एक साथ सभी आवश्यक संसाधन मिल जाएँ।
  • इससे डेडलॉक की संभावना कम हो जाती है लेकिन संसाधनों का उपयोग सही से नहीं हो पाता क्योंकि कुछ प्रक्रियाएँ अनावश्यक रूप से संसाधनों को ब्लॉक कर सकती हैं।

(iii) नो प्रीएम्पशन (No Preemption) को समाप्त करना

  • यदि कोई प्रक्रिया किसी संसाधन को धारण (hold) कर रही है और किसी अन्य संसाधन के लिए प्रतीक्षा कर रही है, तो उससे उसका पहले से आवंटित संसाधन वापस ले लिया जाए।
  • इससे संसाधन मुक्त हो जाता है और डेडलॉक की संभावना कम हो जाती है।
  • उदाहरण: यदि कोई प्रक्रिया प्रिंटर और हार्ड डिस्क दोनों चाहती है और हार्ड डिस्क उपलब्ध नहीं है, तो उसे प्रिंटर भी छोड़ना होगा ताकि अन्य प्रक्रियाएँ उसका उपयोग कर सकें।

(iv) सर्कुलर वेट (Circular Wait) को समाप्त करना

  • संसाधनों को एक क्रम में व्यवस्थित किया जाए और प्रक्रियाओं को एक निश्चित क्रम में संसाधन आवंटित किए जाएँ।
  • यदि किसी प्रक्रिया को एक संसाधन की आवश्यकता है, तो उसे तभी दिया जाए जब उसने उससे छोटे क्रमांक वाले संसाधन पहले ही ले लिए हों।
  • इससे डेडलॉक की संभावना समाप्त हो जाती है क्योंकि संसाधनों का चक्र (cycle) नहीं बनता।

2. डेडलॉक परिहार (Deadlock Avoidance)

डेडलॉक परिहार का अर्थ है कि सिस्टम को इस प्रकार डिज़ाइन किया जाए कि वह डेडलॉक उत्पन्न होने से पहले ही उसकी संभावना को पहचानकर संसाधन आवंटन (resource allocation) को नियंत्रित करे।

डेडलॉक परिहार के लिए सबसे प्रसिद्ध एल्गोरिदम बैंकर्स एल्गोरिदम (Banker’s Algorithm) है।

बैंकर्स एल्गोरिदम (Banker’s Algorithm)

  • इस एल्गोरिदम में प्रत्येक प्रक्रिया को यह बताना होता है कि उसे अधिकतम कितने संसाधनों की आवश्यकता होगी।
  • सिस्टम यह जाँचता है कि क्या संसाधन आवंटित करने के बाद भी वह एक सुरक्षित अवस्था (safe state) में रहेगा।
  • यदि संसाधन आवंटन के बाद डेडलॉक की संभावना है, तो सिस्टम संसाधन नहीं देगा।
  • यह तरीका डेडलॉक को पूरी तरह से रोक सकता है, लेकिन इसमें अधिक गणनात्मक समय (computational overhead) लगता है।

3. डेडलॉक डिटेक्शन और रिकवरी (Deadlock Detection and Recovery)

यदि डेडलॉक की संभावना को पूरी तरह समाप्त करना संभव न हो, तो ऑपरेटिंग सिस्टम को इसे पहचानने और हल करने के तरीके अपनाने होते हैं।

(i) डेडलॉक डिटेक्शन (Deadlock Detection)

  • सिस्टम एक डेडलॉक डिटेक्शन एल्गोरिदम का उपयोग करता है जो यह जाँचता है कि क्या कोई संसाधन चक्र (resource cycle) बना है।
  • यदि कोई चक्र (cycle) पाया जाता है, तो सिस्टम इसे एक डेडलॉक के रूप में पहचानता है।
  • इसका सबसे प्रसिद्ध तरीका वेट-फॉर ग्राफ (Wait-for Graph) एल्गोरिदम है।

(ii) डेडलॉक रिकवरी (Deadlock Recovery)

डेडलॉक की पहचान होने के बाद, सिस्टम निम्नलिखित तरीकों से इसे हल कर सकता है:

  1. प्रक्रियाओं को समाप्त करना (Process Termination):
    • कुछ प्रक्रियाओं को समाप्त (terminate) कर दिया जाता है ताकि संसाधन मुक्त हो जाएँ।
    • यह दो प्रकार से किया जा सकता है:
      • सभी डेडलॉक प्रक्रियाओं को समाप्त करना: यह सरल लेकिन कठोर तरीका है।
      • एक-एक कर प्रक्रियाओं को समाप्त करना: जब तक डेडलॉक समाप्त न हो जाए, तब तक प्रक्रियाएँ समाप्त की जाती हैं।
  2. संसाधन प्रीएम्पशन (Resource Preemption):
    • किसी प्रक्रिया से संसाधन छीनकर दूसरी प्रक्रिया को दिया जाता है, जिससे डेडलॉक टूट सकता है।
    • इसमें यह निर्णय लेना होता है कि किन संसाधनों को प्रीएम्प्ट किया जाए और किन प्रक्रियाओं को प्राथमिकता दी जाए।

4. संसाधन आवंटन नीतियाँ (Resource Allocation Policies)

डेडलॉक को रोकने के लिए संसाधनों के आवंटन के दौरान कुछ नीतियों का पालन किया जा सकता है:

  • प्राथमिकता-आधारित संसाधन आवंटन (Priority-Based Resource Allocation): उच्च प्राथमिकता वाली प्रक्रियाओं को पहले संसाधन दिए जाते हैं।
  • अधिकतम समय सीमा (Maximum Time Limit): किसी प्रक्रिया को सीमित समय के लिए संसाधन दिए जाते हैं। यदि वह समय सीमा पार कर जाती है, तो संसाधन वापस ले लिया जाता है।
  • संसाधन अनुरोध अनुक्रम (Resource Request Order): संसाधनों को एक निश्चित क्रम में आवंटित किया जाता है, जिससे सर्कुलर वेट की संभावना कम हो जाती है।

और भी पढ़े
process management

Example of Deadlock in hindi:

डेडलॉक का उदाहरण


1. रेलवे क्रॉसिंग का उदाहरण (Real-Life Example: Traffic Deadlock in hindi)

मान लीजिए कि चार रास्तों से चार गाड़ियाँ एक चौराहे पर पहुँचती हैं, और प्रत्येक गाड़ी अगले रास्ते की ओर मुड़ने के लिए इंतजार कर रही है। अब स्थिति कुछ इस प्रकार हो जाती है:

  • कार A को आगे बढ़ने के लिए कार B को रास्ता देना होगा।
  • कार B को आगे बढ़ने के लिए कार C को रास्ता देना होगा।
  • कार C को आगे बढ़ने के लिए कार D को रास्ता देना होगा।
  • कार D को आगे बढ़ने के लिए कार A को रास्ता देना होगा।

इस स्थिति में कोई भी कार आगे नहीं बढ़ सकती, क्योंकि हर कार किसी और के रास्ता देने का इंतजार कर रही है। यह एक डेडलॉक स्थिति है।

समाधान (Solution):

  • सिग्नल सिस्टम लगाकर यातायात को नियंत्रित किया जा सकता है, जिससे यह स्थिति न बने।
  • डायवर्जन पथ (Diversion Path) बनाया जा सकता है, ताकि गाड़ियाँ किसी अन्य रास्ते से आगे बढ़ सकें।

2. दो प्रक्रियाओं में संसाधन अनुरोध का उदाहरण (Two Process Resource Request Deadlock in hindi)

मान लीजिए कि हमारे पास दो प्रक्रियाएँ हैं: P1 और P2, और दो संसाधन हैं: R1 और R2

अब मान लीजिए कि:

  • P1 को संसाधन R1 आवंटित कर दिया गया है, लेकिन उसे आगे बढ़ने के लिए R2 की भी जरूरत है।
  • P2 को संसाधन R2 आवंटित कर दिया गया है, लेकिन उसे आगे बढ़ने के लिए R1 की भी जरूरत है।

अब स्थिति यह हो जाती है कि:

  • P1 संसाधन R2 की प्रतीक्षा कर रही है, जो पहले से ही P2 के पास है।
  • P2 संसाधन R1 की प्रतीक्षा कर रही है, जो पहले से ही P1 के पास है।

इस स्थिति में कोई भी प्रक्रिया आगे नहीं बढ़ सकती और सिस्टम डेडलॉक में फंस जाता है

समाधान (Solution)

  1. संसाधनों को एक निश्चित क्रम में आवंटित करें – यदि कोई प्रक्रिया R1 प्राप्त करती है, तो उसे R2 की भी अनुमति दी जाए, या उसे R1 को छोड़ना होगा।
  2. संसाधन प्रीएम्प्शन (Resource Preemption) – यदि कोई प्रक्रिया संसाधन के बिना आगे नहीं बढ़ सकती, तो सिस्टम उसे संसाधन वापस लेने के लिए बाध्य कर सकता है।
  3. डेडलॉक डिटेक्शन एल्गोरिदम (Deadlock Detection Algorithm) – सिस्टम को यह पता लगाना चाहिए कि क्या डेडलॉक हो गया है और इसे हल करने के लिए प्रक्रिया समाप्त करनी होगी।

3. बैंकिंग सिस्टम में डेडलॉक (Banking Deadlock in hindi )

बैंकिंग सिस्टम में भी डेडलॉक हो सकता है। मान लीजिए कि दो ग्राहक (C1 और C2) और दो खाते (A और B) हैं।

  • C1 ने खाते A से कुछ पैसे निकाले और खाते B से पैसे निकालने की कोशिश कर रहा है।
  • C2 ने खाते B से पैसे निकाले और खाते A से पैसे निकालने की कोशिश कर रहा है।

अब C1 खाते B की प्रतीक्षा कर रहा है और C2 खाते A की प्रतीक्षा कर रहा है। इस कारण, दोनों ग्राहक फंस जाते हैं और कोई भी लेनदेन पूरा नहीं हो सकता। यह डेडलॉक स्थिति है।

समाधान (Solution)

  • सभी संसाधनों को एक साथ आवंटित करें – जब कोई ग्राहक पैसे निकालने का अनुरोध करे, तो उसे दोनों खातों से पैसे निकालने की अनुमति दी जाए या फिर कोई भी ट्रांजेक्शन न हो।
  • समय सीमा (Timeout) निर्धारित करें – यदि कोई लेनदेन एक निश्चित समय तक पूरा नहीं होता है, तो उसे रद्द कर दिया जाए।

4. प्रिंटर और स्कैनर का उदाहरण (Printer and Scanner Deadlock in hindi)

मान लीजिए कि दो प्रक्रियाएँ P1 और P2 हैं:

  • P1 को प्रिंटर (Printer) की जरूरत है और उसके पास स्कैनर (Scanner) है।
  • P2 को स्कैनर की जरूरत है और उसके पास प्रिंटर है।

अब, P1 प्रिंटर की प्रतीक्षा कर रहा है, जो P2 के पास है, और P2 स्कैनर की प्रतीक्षा कर रहा है, जो P1 के पास है। इस स्थिति में दोनों प्रक्रियाएँ रुकी रहेंगी और कोई भी काम नहीं कर पाएगी। यह डेडलॉक स्थिति है।

समाधान (Solution)

  • सभी संसाधनों को एक निश्चित क्रम में आवंटित किया जाए।
  • यदि किसी प्रक्रिया को सभी संसाधन नहीं मिलते हैं, तो उसे कोई भी संसाधन आवंटित न किया जाए।

5. डेटाबेस डेडलॉक (Database Deadlock in hindi Example)

मान लीजिए कि दो ट्रांजेक्शन (T1 और T2) हैं:

  • T1 डेटा X को लॉक करता है और डेटा Y को लॉक करने की कोशिश करता है।
  • T2 डेटा Y को लॉक करता है और डेटा X को लॉक करने की कोशिश करता है।

अब,

  • T1 को Y चाहिए, लेकिन वह पहले से T2 के पास है।
  • T2 को X चाहिए, लेकिन वह पहले से T1 के पास है।

इस कारण, कोई भी ट्रांजेक्शन आगे नहीं बढ़ सकता और सिस्टम डेडलॉक में फंस जाता है

समाधान (Solution)

  • डेटाबेस लॉकिंग रणनीति (Database Locking Strategy) का उपयोग करें।
  • समय समाप्ति (Timeout) निर्धारित करें, ताकि यदि एक ट्रांजेक्शन बहुत लंबे समय तक इंतजार कर रहा है, तो वह समाप्त हो जाए।

आज का अपना टॉपिक है what is deadlock in hindi और इसके साथ इसके necessary conditions for Deadloack in hindi, Methods to Prevent Deadlock in hindi, Example of Deadlock in hindi and solution of deadlock in hindi के बारे में पढ़ा अगर आप को लेख अच्छा लगा हो तो अपने दोस्तों को शेयर जरूर करे

Reference:https://www.geeksforgeeks.org/introduction-of-deadlock-in-operating-system/

Leave a Comment