Deadlock in OS in Hindi - पूरी जानकारी


डेडलॉक (Deadlock) क्या है?

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

डेडलॉक कैसे होता है?

डेडलॉक तब होता है जब:

  • प्रोसेस A को संसाधन R1 की आवश्यकता है, लेकिन यह R2 पर निर्भर है।
  • प्रोसेस B को संसाधन R2 की आवश्यकता है, लेकिन यह R1 पर निर्भर है।
  • अब दोनों प्रोसेसेज़ एक-दूसरे के संसाधनों के लिए प्रतीक्षा कर रही हैं और कोई भी आगे नहीं बढ़ सकती।

डेडलॉक के चार आवश्यक शर्तें (Coffman Conditions)

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

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

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

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

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

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

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

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

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

डेडलॉक को समझने के लिए उदाहरण

प्रोसेस आवश्यक संसाधन अनुरोधित संसाधन
Process A R1 R2
Process B R2 R1

यहाँ, Process A संसाधन R1 को होल्ड कर रही है और R2 की प्रतीक्षा कर रही है, जबकि Process B संसाधन R2 को होल्ड कर रही है और R1 की प्रतीक्षा कर रही है। यह एक Circular Wait की स्थिति बनाता है और डेडलॉक उत्पन्न करता है।

डेडलॉक को रोकने और हल करने के तरीके

डेडलॉक को रोकने, टालने और हल करने के लिए विभिन्न तकनीकों का उपयोग किया जाता है:

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

  • Mutual Exclusion को हटाना (यदि संभव हो)।
  • Hold and Wait को रोकना (प्रोसेस को सभी आवश्यक संसाधन एक साथ देना)।
  • No Preemption को सक्षम करना (संसाधन को जबरन छीनने की अनुमति देना)।
  • Circular Wait को तोड़ना (संसाधन अनुरोध को एक विशेष क्रम में व्यवस्थित करना)।

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

  • प्रत्येक संसाधन अनुरोध की पहले से जाँच करना।
  • बैंकर्स एल्गोरिदम (Banker’s Algorithm) का उपयोग करना।
  • सुरक्षित (Safe) और असुरक्षित (Unsafe) राज्यों की पहचान करना।

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

  • सिस्टम में एक Deadlock Detection Algorithm का उपयोग करना।
  • Resource Allocation Graph (RAG) का विश्लेषण करना।
  • प्रोसेसेज़ की Circular Dependency की जाँच करना।

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

  • प्रोसेसेज़ को समाप्त करना (Terminate Processes)।
  • संसाधनों को पुनः आवंटित करना (Resource Preemption)।
  • प्रभावित प्रोसेसेज़ को Restart करना।

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

डेडलॉक को टालने के लिए Banker’s Algorithm का उपयोग किया जाता है। यह एल्गोरिदम संसाधन आवंटन की जाँच करता है और यह सुनिश्चित करता है कि सिस्टम एक Safe State में रहे।

Banker’s Algorithm के चरण

  1. प्रत्येक प्रोसेस को आवश्यक संसाधनों की अधिकतम संख्या निर्दिष्ट करें।
  2. यदि किसी प्रोसेस का अनुरोध सुरक्षित है, तो उसे संसाधन आवंटित करें।
  3. यदि आवंटन के बाद सिस्टम Unsafe State में चला जाता है, तो अनुरोध अस्वीकार करें।

डेडलॉक बनाम लाइवलॉक

विशेषता Deadlock Livelock
परिभाषा प्रोसेसेज़ स्थायी रूप से रुकी रहती हैं और आगे नहीं बढ़ सकतीं। प्रोसेसेज़ लगातार अपनी स्थिति बदलती हैं लेकिन कोई प्रगति नहीं होती।
समाधान Deadlock Detection और Recovery तकनीकों का उपयोग। प्रोसेसेज़ की प्राथमिकताओं को बदलना।

डेडलॉक का वास्तविक जीवन में उपयोग

  • डेटाबेस सिस्टम: एक ही डेटा को दो या अधिक उपयोगकर्ताओं द्वारा एक्सेस करने पर Deadlock हो सकता है।
  • प्रिंटर संसाधन: यदि कई उपयोगकर्ता एक ही प्रिंटर को एक्सेस करने का प्रयास करते हैं।
  • ऑपरेटिंग सिस्टम: मल्टी-प्रोसेसिंग और थ्रेड शेड्यूलिंग में।
  • नेविगेशन सिस्टम: ट्रैफिक जाम की स्थिति एक Deadlock का उदाहरण हो सकता है।

निष्कर्ष

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

Related Post

Comments

Comments