Deadlocks - Characterization, Prevention, Avoidance, Recovery in OS in Hindi


Deadlocks in Operating System क्या है?

Operating System (OS) में Deadlock एक ऐसी स्थिति है जिसमें दो या अधिक प्रोसेसेज़ (Processes) एक-दूसरे के संसाधनों (Resources) के लिए प्रतीक्षा कर रही होती हैं, लेकिन कोई भी प्रोसेस आगे नहीं बढ़ पाती। यह स्थिति तब उत्पन्न होती है जब प्रोसेसेज़ एक-दूसरे पर निर्भर होती हैं और Circular Wait की स्थिति बन जाती है।

Deadlock Characterization (डेडलॉक के लक्षण)

डेडलॉक होने के लिए चार आवश्यक शर्तों (Coffman Conditions) का पूरा होना आवश्यक होता है:

1. Mutual Exclusion (परस्पर बहिष्करण)

  • प्रत्येक संसाधन एक समय में केवल एक ही प्रोसेस द्वारा उपयोग किया जा सकता है।

2. Hold and Wait (रोककर प्रतीक्षा करना)

  • एक प्रोसेस जो पहले से संसाधन होल्ड कर रही है, वह अन्य संसाधनों के लिए प्रतीक्षा कर रही होती है।

3. No Preemption (पूर्व-वंचना न होना)

  • प्रोसेस किसी संसाधन को जबरन छोड़ नहीं सकती, इसे स्वेच्छा से छोड़ना होगा।

4. Circular Wait (वृत्तीय प्रतीक्षा)

  • एक चक्र (Cycle) बन जाता है, जहाँ प्रत्येक प्रोसेस अगले प्रोसेस के संसाधन की प्रतीक्षा कर रही होती है।

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

Deadlock को रोकने के लिए, Coffman Conditions में से किसी एक को हटाया जाता है:

1. Mutual Exclusion को हटाना

  • कुछ संसाधनों को एक साथ कई प्रोसेसेज़ द्वारा उपयोग करने की अनुमति दी जा सकती है।
  • हालांकि, कुछ संसाधन जैसे कि प्रिंटर को साझा नहीं किया जा सकता, इसलिए यह समाधान सभी मामलों में संभव नहीं है।

2. Hold and Wait को रोकना

  • प्रत्येक प्रोसेस को सभी आवश्यक संसाधन एक साथ आवंटित कर दिए जाते हैं।
  • हालांकि, इससे संसाधनों की बर्बादी (Resource Wastage) बढ़ सकती है।

3. No Preemption लागू करना

  • यदि कोई प्रोसेस पहले से होल्ड किए गए संसाधनों के साथ नया संसाधन अनुरोध करती है और उपलब्ध नहीं होता, तो उसे अपने सभी संसाधन छोड़ने होते हैं।
  • यह तरीका प्रैक्टिकल नहीं होता क्योंकि प्रोसेसेज़ को फिर से शुरू करना जटिल हो सकता है।

4. Circular Wait को तोड़ना

  • सभी संसाधनों को एक अनुशासित क्रम में अनुरोधित किया जाता है।
  • हर प्रोसेस को संसाधन एक विशेष क्रम में ही दिया जाता है, जिससे Circular Wait नहीं बनता।

Deadlock Avoidance (डेडलॉक से बचाव)

डेडलॉक से बचने के लिए प्रोसेसेज़ को केवल उन्हीं संसाधनों तक पहुँचने की अनुमति दी जाती है, जो डेडलॉक की स्थिति उत्पन्न नहीं करते। इसके लिए दो मुख्य विधियाँ हैं:

1. Safe State और Unsafe State

  • Safe State: यदि कोई Deadlock नहीं हो सकता, तो सिस्टम Safe State में है।
  • Unsafe State: यदि प्रोसेस निष्पादन के दौरान डेडलॉक उत्पन्न कर सकती है, तो सिस्टम Unsafe State में है।

2. Banker’s Algorithm

  • Banker’s Algorithm यह तय करता है कि किसी प्रोसेस को संसाधन दिया जाए या नहीं।
  • यह एल्गोरिदम प्रोसेसेज़ की अधिकतम आवश्यकताओं को ध्यान में रखकर संसाधन आवंटित करता है।
  • यदि किसी संसाधन आवंटन से सिस्टम Unsafe State में जाता है, तो अनुरोध को अस्वीकार कर दिया जाता है।

Deadlock Detection (डेडलॉक का पता लगाना)

यदि Deadlock हो चुका है, तो इसे पहचानने के लिए निम्नलिखित विधियाँ उपयोग की जाती हैं:

1. Resource Allocation Graph (RAG)

  • यदि ग्राफ़ में कोई Circular Wait (साइकिल) पाई जाती है, तो सिस्टम Deadlock की स्थिति में है।

2. Wait-For Graph

  • यह केवल संसाधन अनुरोधों के आधार पर एक Directed Graph बनाता है।
  • यदि किसी प्रोसेस को हमेशा किसी अन्य प्रोसेस की प्रतीक्षा करनी पड़ रही है, तो Deadlock हो सकता है।

Deadlock Recovery (डेडलॉक से पुनर्प्राप्ति)

Deadlock की पहचान के बाद, सिस्टम को पुनः कार्यशील बनाने के लिए कुछ तरीकों का उपयोग किया जाता है:

1. Process Termination

  • Deadlock को समाप्त करने के लिए प्रोसेसेज़ को समाप्त किया जाता है।
  • दो तरीके हो सकते हैं:
    • Abort All: सभी Deadlock वाली प्रोसेसेज़ को समाप्त कर दिया जाता है।
    • Abort One by One: एक-एक करके प्रोसेसेज़ को समाप्त किया जाता है जब तक Deadlock समाप्त न हो जाए।

2. Resource Preemption

  • कुछ संसाधन एक प्रोसेस से छीनकर किसी अन्य प्रोसेस को दिए जाते हैं।
  • यह सुनिश्चित किया जाता है कि यह प्रक्रिया Fair और Balanced हो।

Deadlock बनाम Starvation

विशेषता Deadlock Starvation
परिभाषा प्रोसेसेज़ स्थायी रूप से रुकी रहती हैं और आगे नहीं बढ़ सकतीं। एक प्रोसेस को संसाधन कभी भी प्राप्त नहीं होता क्योंकि उच्च प्राथमिकता वाली प्रोसेसेज़ उसे हटा देती हैं।
समाधान Deadlock Detection और Recovery तकनीकों का उपयोग। Priority Adjustment और Aging तकनीकों का उपयोग।

निष्कर्ष

Deadlock एक गंभीर समस्या है, जो सिस्टम की कार्यक्षमता को प्रभावित कर सकती है। इसे रोकने के लिए Deadlock Prevention, Avoidance, Detection और Recovery जैसी तकनीकों का उपयोग किया जाता है। बैंकर्स एल्गोरिदम जैसी रणनीतियाँ सिस्टम को सुरक्षित स्थिति में रखने में मदद करती हैं।

Related Post

Comments

Comments