BCA / B.Tech 10 min read

Methods for Handling Deadlocks in Hindi

Methods for Handling Deadlocks in Operating System in Hindi | डेडलॉक से निपटने के तरीके : 


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

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


Methods for Handling Deadlocks in Operating System in Hindi | डेडलॉक से निपटने के तरीके : 

डेडलॉक से निपटने के लिए मुख्यतः चार प्रमुख दृष्टिकोण अपनाए जाते हैं:

  • डेडलॉक रोकथाम (Deadlock Prevention)
  • डेडलॉक से बचाव (Deadlock Avoidance)
  • डेडलॉक डिटेक्शन और रिकवरी (Deadlock Detection and Recovery)
  • डेडलॉक की अनदेखी (Ignoring Deadlock)
इन तरीकों को विस्तार से समझते हैं:

Deadlock Prevention in Operating System in Hindi | डेडलॉक रोकथाम : 

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

डेडलॉक रोकथाम की रणनीतियाँ निम्नलिखित हैं:

  •  म्यूचुअल एक्ज़क्लूज़न की रोकथाम (Preventing Mutual Exclusion): इस स्थिति को रोकने के लिए कोशिश की जाती है कि जितने भी संसाधन होते हैं, वे अधिकतम प्रक्रिया द्वारा साझा किए जा सकें। अगर कोई संसाधन म्यूचुअल एक्ज़क्लूज़न के बिना उपलब्ध हो सकता है, तो उसे सभी प्रक्रियाओं द्वारा एक साथ उपयोग किया जा सकता है। हालांकि, यह संभव नहीं होता क्योंकि कुछ संसाधन, जैसे प्रिंटर, अनन्य होते हैं और इन्हें एक समय में केवल एक प्रक्रिया द्वारा ही उपयोग किया जा सकता है।

  •  होल्ड एंड वेट की रोकथाम (Preventing Hold and Wait): यह रणनीति उन प्रक्रियाओं को मजबूर करती है कि वे सभी आवश्यक संसाधन एक साथ प्राप्त करें या फिर सभी संसाधनों को छोड़ दें। इसका मतलब है कि प्रक्रियाएँ पहले सभी आवश्यक संसाधन एक साथ प्राप्त करेंगी और फिर उन्हें इस्तेमाल करेंगी। अगर कोई प्रक्रिया आवश्यक संसाधन प्राप्त नहीं कर पाती, तो उसे बाकी संसाधन छोड़ने होंगे और फिर से कोशिश करनी होगी।
  • यह डेडलॉक की स्थिति को रोकने में कारगर है, लेकिन इससे संसाधनों की बर्बादी हो सकती है क्योंकि सभी संसाधन एक साथ हासिल किए जाते हैं, चाहे वे उसी समय आवश्यक हों या नहीं।

  • नो प्रीएम्प्शन की रोकथाम (Preventing No Preemption): इस रणनीति के तहत, यदि किसी प्रक्रिया को कोई संसाधन नहीं मिल पाता है, तो सिस्टम उस प्रक्रिया से जबरन सभी संसाधन ले सकता है और उन संसाधनों को दूसरी प्रक्रियाओं को आवंटित कर सकता है। इस तरह, संसाधन को जबरन छीना जा सकता है और प्रक्रिया को दोबारा शुरू करने के लिए कहा जा सकता है।
  • यह तरीका कुछ विशेष परिस्थितियों में काम कर सकता है, लेकिन यह सभी प्रकार के संसाधनों पर लागू नहीं होता, विशेष रूप से उन संसाधनों पर जो प्रीएम्प्शन की अनुमति नहीं देते (जैसे प्रिंटर)।
  •  सर्कुलर वेट की रोकथाम (Preventing Circular Wait): सर्कुलर वेट को रोकने के लिए संसाधनों को कुछ निश्चित क्रम में आवंटित किया जा सकता है। सभी संसाधनों को क्रमांक (number) दिया जाता है, और प्रत्येक प्रक्रिया को संसाधन उसी क्रम में आवंटित किया जाता है। इसका मतलब है कि प्रक्रिया को कम से कम क्रमांक वाला संसाधन पहले मिलेगा और फिर अगले संसाधन के लिए उसे प्रतीक्षा करनी होगी। इससे सर्कुलर वेट की स्थिति उत्पन्न नहीं होती।
  • यह तरीका सरल है और डेडलॉक को रोकने में कारगर है, लेकिन संसाधनों के क्रम निर्धारण में लचीलापन नहीं होता।

Deadlock Avoidance in Operating System in Hindi | डेडलॉक से बचाव : 

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

बैंकर एल्गोरिथ्म (Banker's Algorithm):

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

Deadlock Detection and Recovery in Operating System in Hindi |  डेडलॉक डिटेक्शन और रिकवरी : 

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

  •  डेडलॉक डिटेक्शन (Deadlock Detection): डेडलॉक डिटेक्शन के लिए सिस्टम में समय-समय पर यह जाँच की जाती है कि कोई प्रक्रिया डेडलॉक में फँसी है या नहीं। इसके लिए ग्राफ-आधारित एल्गोरिदम का उपयोग किया जा सकता है, जिसमें प्रक्रियाओं और संसाधनों के बीच के संबंधों का एक ग्राफ तैयार किया जाता है। यदि इस ग्राफ में कोई साइकिल (cycle) बनती है, तो इसका मतलब है कि डेडलॉक उत्पन्न हो गया है।
  • डेडलॉक रिकवरी (Deadlock Recovery): एक बार डेडलॉक का पता लगने के बाद, इसे ठीक करने के लिए कुछ प्रक्रियाओं को समाप्त किया जा सकता है या उनसे संसाधन छीने जा सकते हैं।
  • प्रक्रिया समाप्ति (Process Termination): डेडलॉक समाप्त करने के लिए एक या अधिक प्रक्रियाओं को समाप्त किया जा सकता है, जिससे वे संसाधन मुक्त हो जाएँ और अन्य प्रक्रियाएँ अपने कार्य को पूरा कर सकें। इस प्रक्रिया में या तो सभी प्रक्रियाओं को एक साथ समाप्त किया जाता है (Abort All) या एक-एक करके प्रक्रियाओं को समाप्त किया जाता है (Abort One by One), जब तक कि डेडलॉक समाप्त नहीं हो जाता।
  • संसाधन प्रीएम्प्शन (Resource Preemption): इसमें किसी प्रक्रिया से संसाधन जबरन छीने जाते हैं और उन्हें अन्य प्रक्रियाओं को दिया जाता है, ताकि डेडलॉक की स्थिति को समाप्त किया जा सके। इस स्थिति में यह भी देखा जाता है कि किस संसाधन को कम से कम नुकसान होने पर छीना जा सकता है।
यह तरीका प्रभावी है, लेकिन इससे सिस्टम में प्रदर्शन गिर सकता है और कुछ प्रक्रियाओं को निष्क्रिय करना पड़ सकता है।

Ignoring Deadlock in Operating System in Hindi |  डेडलॉक की अनदेखी : 

  • डेडलॉक की अनदेखी उन सिस्टम में अपनाई जाती है, जहाँ डेडलॉक की संभावना बहुत कम होती है या इसका प्रभाव नगण्य होता है। इस दृष्टिकोण को "ऑस्ट्रिच एल्गोरिदम" (Ostrich Algorithm) कहा जाता है, क्योंकि इसमें सिस्टम डेडलॉक की स्थिति से निपटने का प्रयास नहीं करता और उसे अनदेखा करता है।

इस दृष्टिकोण के लाभ:

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

इस दृष्टिकोण की हानि:

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

In this Chapter

Methods for Handling Deadlocks in Hindi
Distributed System in Hindi
Real Time System in Hindi
System Calls in Hindi
System Program in Hindi
Structure of Operating System in Hindi
Layers Design of Structure in Hindi
Unix in Hindi
Virtual Machine in Hindi
Kernel-Based Operating System in Hindi
Process Concept in Hindi
Interacting Processes in Hindi
Threads in Hindi
Fundamental of Schedulling in Hindi
Scheduling Criteria in Hindi
Long Medium Short Term Scheduling in Hindi
Scheduling Algorithms in Hindi
Structure of Concurrent System in Hindi
Critical Region in Hindi
Critical Section in Hindi
Inter process Communication in Hindi
Monitor in Hindi
Semaphores in Hindi
Semaphores Implementation & Uses in Hindi
Logical and Physical Address in Hindi
Swapping in Hindi
Contiguous Allocation in Hindi
Segmentation in Hindi
Paging in Hindi
Paging with Segmentation in Hindi
kernel Memory Allocation in Hindi
Page Replacement Algorithms in Hindi
Virtual Memory in Hindi
Virtual Memory with demand Paging in Hindi
Deadlock & Characterization in Hindi
Deadlock Thrashing in Hindi
Allocation of Frames in Hindi
Virtual Memory using Segmentation in Hindi
Interprocess Communication protocol in Hindi
Network Operating System in Hindi
Design Issues in Distributed File System in Hindi
Network Structure in Hindi
Structure Distributed System in Hindi
File System and Coordination in Hindi
Linux in Hindi
Commands of Linux in Hindi | लिनक्स के कमांड्स हिंदी में
Programmer Interface & File manipulation in Hindi
Process control in Linux in Hindi
Linux Kernel & Signals in Hindi
File System in Linux in Hindi
block & inodes in Hindi
System Editor in Hindi
Character Transliteration in Hindi
ED in Hindi
Vi Editor & There Commands in Hindi
Shell Script in Hindi
Looping & Decision Making in Hindi
Variables & File name Expansion in Hindi
Array in Hindi OS
Sub Program in Hindi
C interface with Linux in Hindi
Simpel Shell Programs in Hindi
BCA Part-1 | Operating Systems | Semester-I | MDSU Exam Paper 2023 (Held in 2024)
What is Operating System (OS) in Hindi
Operating System (OS) All Important Questions and Answers in Hindi (MDSU)
BCA || Operating System 2025 Paper || MDSU Exam Paper
BCA | OS(Operating System) 2023 Paper | MDSU Exam Paper
Type of Operating System in Hindi
Goals of Operating System in Hindi
Operation of Operating system in Hindi
Resource Allocation & Functions in Hindi
class of Operating system in Hindi
Batch Processing in Hindi
Multi Processing in Hindi
Time Sharing in Hindi