डेडलॉक की स्थिति और समाधान

Sep 11, 2024

डेडलॉक

डेडलॉक क्या है?

  • डेडलॉक वह स्थिति है जब दो या दो से अधिक प्रक्रियाएँ किसी घटना के होने की प्रतीक्षा कर रही होती हैं, लेकिन वह घटना कभी नहीं होती।

उदाहरण 1: बैंक खाता खुलवाना

  • ग्राहक बैंक में जाता है और कहता है कि उसे खाता खोलना है।
  • बैंक कर्मचारी कहता है कि पहले न्यूनतम राशि जमा कराएं, फिर खाता खोला जाएगा।
  • ग्राहक कहता है कि पहले खाता खोलें, फिर वह राशि जमा करेगा।
  • यहाँ दोनों एक-दूसरे की प्रतीक्षा कर रहे हैं, जिससे डेडलॉक की स्थिति बनती है।

उदाहरण 2: दो गाड़ियाँ (A और B)

  • ड्राइवर A का कहना है कि वह सही दिशा में जा रहा है।
  • ड्राइवर B भी यही सोचता है और गलत दिशा में आ रहा है।
  • दोनों गाड़ियों में कोई भी पीछे नहीं हटता, जिससे डेडलॉक की स्थिति बनती है।

तकनीकी दृष्टिकोण से डेडलॉक

  • सेमाफोर का उपयोग: दो प्रक्रियाएँ P1 और P2, जो सेमाफोर S1 और S2 का उपयोग कर रही हैं।
  • P1 S1 का उपयोग कर रहा है और S2 की प्रतीक्षा कर रहा है।
  • P2 S2 का उपयोग कर रहा है और S1 की प्रतीक्षा कर रहा है।
  • दोनों प्रक्रियाएँ एक-दूसरे की प्रतीक्षा कर रही हैं, जिससे डेडलॉक स्थिति बनती है।

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

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

    • संसाधन का उपयोग एक समय में केवल एक प्रक्रिया द्वारा किया जाना चाहिए।
    • उदाहरण: एक प्रिंटर का उपयोग एक समय में केवल एक प्रक्रिया कर सकती है।
  2. नो प्रीएंप्शन (No Preemption)

    • यदि एक प्रक्रिया किसी संसाधन को पकड़े हुए है, तो उसे जबरन नहीं लिया जा सकता।
    • उच्च प्राथमिकता की प्रक्रिया को निम्न प्राथमिकता की प्रक्रिया से संसाधन नहीं लेना चाहिए।
  3. होल्ड और वेट (Hold and Wait)

    • एक प्रक्रिया एक संसाधन को पकड़े हुए होने के साथ-साथ अन्य संसाधनों की प्रतीक्षा कर रही होती है।
    • उदाहरण: P1 एक संसाधन R1 को पकड़े हुए है, और R2 की प्रतीक्षा कर रहा है।
  4. सर्कुलर वेट (Circular Wait)

    • एक सर्कल की स्थिति जहाँ प्रक्रियाएँ एक-दूसरे के संसाधनों की प्रतीक्षा कर रही होती हैं।
    • उदाहरण: P1 R1 के लिए P2 की प्रतीक्षा कर रहा है, P2 R2 के लिए P3 की प्रतीक्षा कर रहा है, और P3 R3 के लिए P1 की प्रतीक्षा कर रहा है।

निष्कर्ष

  • उपरोक्त चार शर्तें मिलकर डेडलॉक की स्थिति को जन्म देती हैं।
  • यदि इनमें से कोई भी शर्तें पूरी नहीं होती, तो डेडलॉक की संभावना नहीं होती।
  • डेडलॉक का समाधान खोजने के लिए इन शर्तों को समझना महत्वपूर्ण है।

धन्यवाद!