Deadlock in os in hindi | डेडलॉक क्या है?

चलिए दोस्तों आज हम इस पोस्ट के जरिये देखेंगे डेडलॉक के बारे में. और (deadlock meaning in hindi) उसका मीनिंग क्या हैं वो हिंदी में देखेंगे।

पहले हम डेडलॉक का परिचय देखेंगे।

Introduction of deadlock | डेडलॉक का परिचय

deadlock in os in hindi मल्टीप्रोग्रामिंग वातावरण में, सीमित संख्या में संसाधनों के लिए कई प्रक्रियाएँ (processes) पूरी हो सकती हैं। प्रक्रिया अनुरोध का सहारा लेती है, यदि उस समय संसाधन (recourses) उपलब्ध नहीं हैं, तो प्रक्रिया प्रतीक्षा स्थिति में प्रवेश करती है, क्योंकि जिन संसाधनों का उन्होंने अनुरोध किया है वे किसी अन्य प्रतीक्षा प्रक्रिया द्वारा रखे जाते हैं। इस स्थिति को डेडलॉक (deadlock) के नाम से जाना जाता है।

What is Deadlock? | डेडलॉक क्या है?

डेडलॉक एक ऐसी स्थिति है जहां प्रक्रियाओं का एक सेट अवरुद्ध हो जाता है क्योंकि प्रत्येक प्रक्रिया एक संसाधन रखती है और किसी अन्य प्रक्रिया द्वारा प्राप्त दूसरे संसाधन (resource) की प्रतीक्षा कर रही है।

Realtime-Example of Deadlock | डेडलॉक का उदाहरण

दो ट्रेनें अलग-अलग ट्रैक पर यात्रा कर रही हैं। यदि कोई क्रॉसिंग आती है, तो यात्रा जारी रखने के लिए ट्रेन को रुकना चाहिए या कुछ देर इंतजार करना चाहिए। उस प्रतीक्षा स्थिति को डेडलॉक स्थिति कहा जाता है।

Conditions of Deadlock in Hindi

Deadlock की चार कंडीशन होती है जो निचे दिए गए है –

  1. Mutual Exclusion condition
  2. Hold & wait condition
  3. No preemption condition
  4. Circular wait condition

1) Mutual Exclusion condition

प्रत्येक संसाधन या तो वर्तमान में बिल्कुल एक प्रक्रिया को सौंपा गया है या उपलब्ध है। एक समय में केवल एक ही प्रक्रिया संसाधन का उपयोग कर सकती है। यदि कोई अन्य प्रक्रिया उस संसाधन का अनुरोध करती है, तो संसाधन जारी होने तक अनुरोध प्रक्रिया में देरी होनी चाहिए।

2) Hold & wait condition

कम से कम एक प्रक्रिया ऐसी होनी चाहिए जिसमें कम से कम एक संसाधन हो और वह उन संसाधनों को प्राप्त करने की प्रतीक्षा कर रही हो जो वर्तमान में किसी अन्य प्रक्रिया के पास हैं।

3) No preemption condition

पहले से दिए गए संसाधनों को किसी भी प्रक्रिया के तहत जबरन नहीं छीना जा सकता। उन्हें धारण करने वाली प्रक्रिया द्वारा स्पष्ट रूप से मुक्त किया जाना चाहिए।

4) Circular wait condition

प्रतीक्षा प्रक्रियाओं का एक सेट होना चाहिए (Po, P1,……Pn) इस प्रकार कि Po उस संसाधन की waiting कर रहा है जो P1 के पास है, P2 उस संसाधन की प्रतीक्षा कर रहा है जो P₂ के पास है। और इसी तरह, जैसा कि समझाया गया है। circular waiting स्थिति का तात्पर्य होल्ड-वेट स्थिति से है, इसलिए चार states पूरी तरह से स्वतंत्र नहीं हैं।

Deadlock Prevention | डेडलॉक को रोकना

deadlock in os in hindi

deadlock उत्पन्न होने के लिए यह आवश्यक है कि सभी चार स्थितियाँ बनी रहें। यदि इनमें से कोई भी शर्त पूरी नहीं होती तो हम deadlock को रोक सकते हैं।

Elimination of mutual exclusion

यहां यह महत्वपूर्ण है कि प्रिंटर, टेप ड्राइवर आदि जैसे गैर साझा करने योग्य उपकरणों के लिए पारस्परिक mutual exclusion कायम रहना चाहिए। ये उपकरण गैर साझा करने योग्य हैं क्योंकि वे एक समय में एक ही प्रक्रिया चला सकते हैं।

साझा करने योग्य उपकरणों का सबसे अच्छा उदाहरण केवल पढ़ने योग्य फ़ाइलें हैं। यदि कई प्रक्रियाएँ इन फ़ाइलों को एक साथ खोलने का प्रयास करती हैं तो इन फ़ाइलों को खोलने और उन तक पहुँचने की अनुमति दी जाती है।

सामान्य तौर पर हम mutual exclusion की स्थिति को नकार कर deadlock को नहीं रोक सकते क्योंकि कुछ संसाधन आंतरिक रूप से गैर साझा करने योग्य होते हैं।

Elimination of hold and wait condition

होल्ड और प्रतीक्षा की स्थिति को हटाने के लिए, हमें यह सुनिश्चित करना चाहिए कि जब भी प्रक्रिया संसाधनों का अनुरोध करती है, तो उसे कोई अन्य संसाधन नहीं रखना चाहिए।

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

इस प्रोटोकॉल का पालन करने के लिए यह आवश्यक है कि किसी प्रक्रिया के लिए संसाधनों के लिए अनुरोध करने वाली सिस्टम कॉल अन्य सभी सिस्टम कॉल से पहले होनी चाहिए।

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

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

दूसरे प्रोटोकॉल के मामले में, प्रक्रिया केवल डीवीडी ड्राइव डिस्क का ही अनुरोध करेगी। यह इन दोनों संसाधनों के साथ काम करना समाप्त कर देगा और फिर प्रिंटर और डीवीडी ड्राइव और डिस्क दोनों के लिए अनुरोध करेगा। डेटा प्रिंट करने के बाद प्रिंटर भी जारी कर दिया जाएगा।

Both these protocols have disadvantages as below | इन दोनों प्रोटोकॉल के निम्नलिखित नुकसान हैं.

  1. Resource utilization संसाधनों का उपयोग कम हो सकता है क्योंकि संसाधनों का उपयोग लंबे समय तक नहीं किया जा सकता है।
  2. Starvation (भुखमरी) संभव है क्योंकि प्रक्रिया को कई सामान्य या लोकप्रिय संसाधनों की आवश्यकता हो सकती है जिसके लिए उसे अनिश्चित काल तक इंतजार करना पड़ सकता है।

Removal of No preemption condition

deadlock के लिए तीसरी महत्वपूर्ण शर्त उन संसाधनों की छूट नहीं है जो पहले ही आवंटित किए जा चुके हैं। यह सुनिश्चित करने के लिए कि यह स्थिति उत्पन्न न हो, हम निम्नलिखित प्रोटोकॉल का उपयोग कर सकते हैं।

प्रोटोकॉल में कहा गया है कि यदि प्रक्रिया में कुछ संसाधन हैं और अन्य संसाधनों का अनुरोध किया जा रहा है जो उसे तुरंत दिया जा सकता है तो वर्तमान में रखे गए सभी संसाधनों को खाली कर दिया जाता है।

यदि प्रक्रिया कुछ संसाधनों के लिए अनुरोध करती है तो यह जांचा जाता है कि वे उपलब्ध हैं या नहीं। यह उपलब्ध है, फिर उन्हें इसका आवंटन किया जाता है। यदि नहीं तो प्रतीक्षा प्रक्रिया से जाँच करें जो अतिरिक्त संसाधनों की प्रतीक्षा कर रही है। इस मामले में हम प्रतीक्षा प्रक्रिया के लिए आवश्यक संसाधनों को पहले ही खाली कर देते हैं। संसाधनों को केवल तभी खाली किया जाएगा जब अनुरोध करने वाली प्रक्रिया इसका अनुरोध करेगी। और प्रक्रिया तभी पुनः आरंभ होगी जब उसे अनुरोधित संसाधन और उसके पूर्वनिर्धारित संसाधन प्राप्त होंगे।

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

Elimination of Circular wait

सर्कुलर प्रतीक्षा को समाप्त करने के मामले में, संसाधनों को इस तरह से ऑर्डर करना आवश्यक है कि सर्कुलर प्रतीक्षा कभी न हो। इसे सुनिश्चित करते समय विभिन्न संसाधनों का क्रम बनाया जाता है जैसे R1, R2,.. Rn. प्रत्येक संसाधन सेट को पिछले वाले की तुलना में अधिक संख्या दी जाएगी। आदेश देने के बाद भी समस्या का समाधान नहीं हो रहा है.

एप्लिकेशन डेवलपर्स का काम सॉफ्टवेयर विकसित करना है जो संसाधनों को दिए गए पदानुक्रमित क्रम का पालन करेगा। सॉफ़्टवेयर को ताले का निरीक्षण करना चाहिए, देना चाहिए चेतावनियाँ और हैंडल लॉक सत्यापनकर्ता आदि। UNIX BSD संस्करण में FreeBSD प्रोग्राम है जो एक गवाह या सत्यापनकर्ता की तरह काम करता है।

Deadlock Avoidance | डेडलॉक को अवॉयड करना

यह सुनिश्चित करने की तकनीक कि गतिरोध उत्पन्न न हो, Deadlock परिहार तकनीक है। इस तकनीक में अतिरिक्त जानकारी की आवश्यकता होती है जैसे निष्पादन की प्रक्रिया के लिए किन संसाधनों की आवश्यकता होगी।

जैसे प्रक्रिया P और Q हैं, तो P को निष्पादन के लिए टेप ड्राइव और प्रिंटर की आवश्यकता हो सकती है। इसी प्रकार उसी समय Q को अपने निष्पादन के लिए प्रिंटर और टेप ड्राइव की आवश्यकता होती है। यदि सिस्टम को संसाधन आवंटन से पहले यह डेटा प्राप्त होता है तो यह उपलब्ध संसाधनों को आवंटित करने के लिए विभिन्न तरीकों या एल्गोरिदम का उपयोग कर सकता है ताकि सर्कुलर प्रतीक्षा कभी न हो।

Deadlock निवारण एल्गोरिदम गतिशील रूप से संसाधन आवंटन की स्थिति की जांच करते हैं। state सुरक्षित या असुरक्षित हो सकता है।

एक state सुरक्षित है यदि सिस्टम प्रत्येक प्रक्रिया के लिए उसके अधिकतम मूल्य तक संसाधन आवंटित कर सकता है। एक सुरक्षित state एक Deadlock deadlock state नहीं हो सकता. दूसरी ओर Deadlock की स्थिति को असुरक्षित स्थिति के रूप में जाना जाता है। असुरक्षित स्थिति में सिस्टम प्रक्रियाओं के लिए आवश्यक विभिन्न संसाधनों को Allocation करने में सक्षम नहीं है।

Banker’s Algorithm | बैंकर एल्गोरिथ्म क्या है?

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

नई प्रक्रिया के प्रवेश पर, उस प्रक्रिया को प्रत्येक संसाधन के उदाहरणों की संख्या के साथ आवश्यक अधिकतम संसाधनों की घोषणा करनी चाहिए। यह संख्या उपलब्ध अधिकतम संसाधनों से अधिक नहीं होनी चाहिए

प्रणाली। जब उपयोगकर्ता द्वारा संसाधनों के लिए अनुरोध किया जाता है, तो सिस्टम जाँच करता है कि क्या यह अनुरोध सिस्टम को सुरक्षित स्थिति में रखेगा। यदि हाँ, तो संसाधन आवंटित कर दिए गए हैं अन्यथा प्रक्रियाएँ अन्य प्रक्रियाओं द्वारा संसाधन जारी होने तक प्रतीक्षा करती रहेंगी।

यहां हमें संसाधन आवंटन स्थिति को संग्रहीत करने के लिए कुछ डेटा संरचना की आवश्यकता है। आइए मान लें कि n प्रक्रियाओं की संख्या है और m प्रक्रियाओं के लिए आवश्यक संसाधनों की संख्या है। निम्नलिखित डेटा संरचना का उपयोग किया जा सकता है:

1) (Available) उपलब्ध: लंबाई एम का एक वेक्टर जो प्रत्येक प्रकार के उपलब्ध संसाधनों को इंगित करता है।

2) (Max) अधिकतम: यह nXm मैट्रिक्स है जो अधिकतम मांग को परिभाषित करता है।

3) Allocation (आवंटन): फिर एक्स एम मैट्रिक्स दिए गए उदाहरण पर प्रत्येक प्रक्रिया के लिए आवंटित प्रत्येक प्रकार के संसाधनों की संख्या को परिभाषित करता है।

4) Need (आवश्यकता): एन एक्स एम मैट्रिक्स प्रत्येक प्रक्रिया की शेष संसाधन आवश्यकता को इंगित करता है।

Safety Algorithm (सुरक्षा एल्गोरिथम)

सुरक्षा एल्गोरिदम बताता है कि सिस्टम सुरक्षित स्थिति में है या नहीं। एल्गोरिथ्म इस प्रकार है –

स्टेप 1

मान लीजिए कार्य और समाप्ति लंबाई m और n के सदिश हैं। हम निम्नानुसार आरंभ करते हैं:

Work=Available and Finish[i] = false for i=0,1,…..n-1

स्टेप 2

निम्नलिखित स्थितियों में i का पता लगाएं:

(i) Finish[i]==false (समाप्त[i]==झूठा)

(ii) Need<=work (आवश्यकता<=कार्य)

यदि नहीं, i इस प्रकार अस्तित्व में है तो स्टेप -4 पर जाएँ

स्टेप 3

Work Work + Allocationi (कार्य कार्य + आवंटनi)

Finish[i] =true (समाप्त[i] =सत्य)

स्टेप – 2 पर जाएँ

स्टेप 4

If Finish[i]==true for all i, then system is in the safe state. (यदि सभी i के लिए ख़त्म[i]==सही है, तो सिस्टम सुरक्षित स्थिति में है।)

Note | नोट : इस एल्गोरिथम को यह पता लगाने के लिए m X n² के क्रम की आवश्यकता हो सकती है

सिस्टम सुरक्षित स्थिति में है.

Advantage of Banker’s Algorithm

1) जब कोई रोकथाम एल्गोरिदम समस्याएँ उत्पन्न नहीं करता है तो कार्यों को आगे बढ़ने की अनुमति देता है।

2) संसाधनों को बांटने से पहले, बैंकर्स एल्गोरिदम यह जांचता है कि यह सुरक्षित है, इससे यह सुनिश्चित होता है कि आपका सिस्टम अप्रत्याशित रूप से क्रैश या फ्रीज नहीं होगा।

Problems

  • इसके लिए निश्चित संख्या में संसाधनों की आवश्यकता होती है
  • यदि कोई संसाधन कम हो जाए तो क्या होगा?
  • प्रसंस्करण के दौरान प्रक्रिया को इसकी अधिकतम आवश्यकता को बदलने की अनुमति नहीं देता है.

Drawbacks of Banker’s Algorithm | बैंकर एल्गोरिथम की कमियाँ

  • Processes को शायद ही पहले से पता होता है कि उन्हें कितने संसाधनों की आवश्यकता होगी.
  • एल्गोरिदम मानता है कि processes उचित समय के भीतर अपने संसाधन वापस कर देंगी.
  • Processes को अपने संसाधन मनमाने ढंग से लंबे विलंब के बाद ही मिल सकते हैं.
  • एक बार उपलब्ध संसाधन गायब हो सकते हैं.
  • समय बढ़ने के साथ Processes की संख्या बदलती रहती है.
  • इसलिए व्यावहारिक उपयोग दुर्लभ है!

Safety Algorithm

1) Let Work and Finish be vectors of length m and n, respectively. Initialize –

Work = Available

Finish [i] = false for i = 0, 1, …, n-1

2) Find and i such that both –

(a) Finish [i] = false

(b) Need ≤ Work

If no such i exists, go to step 4

3) Work = Work + Allocation

Finish[i] = true

go to step 2

4) If Finish [i] == true for all i, then the system is in a safe state.

Resource Allocation Graph in OS

यदि हमारे पास प्रत्येक प्रक्रिया के केवल एक उदाहरण के साथ एक संसाधन आवंटन (resource allocation) प्रणाली है, तो गतिरोध से बचने के लिए संसाधन आवंटन ग्राफ के एक प्रकार का उपयोग किया जा सकता है।

Resource Allocation

Disadvantage of Deadlock in Hindi | डेडलॉक के नुकसान

  1. सिस्टम ठप्प: डेडलॉक के कारण, सिस्टम ठप्प हो सकता है और कोई भी कार्य पूरा नहीं हो सकता, जिससे सभी को परेशानी होती है।
  2. समय और उपयोग की असमर्थता: डेडलॉक के समय और उपयोग की असमर्थता से सिस्टम को नुकसान होता है, क्योंकि सब कुछ रुक जाता है और कोई कार्य प्रारंभ नहीं हो पाता।
  3. सार्वजनिक समस्या: डेडलॉक उपयोगकर्ताओं को परेशान कर सकता है और सिस्टम को अविकसित बना सकता है, जिससे सभी को परेशानी होती है।
  4. रिस्क और सुरक्षा समस्याएं: डेडलॉक सुरक्षा और रिस्क से संबंधित समस्याएं उत्पन्न कर सकता है, क्योंकि एक प्रक्रिया या कार्य रिसोर्सेस को धारित कर सकता है और उन्हें अनुपयुक्त रूप से उपयोग कर सकता है, जिससे सुरक्षा का खतरा बढ़ सकता है।

How to Handle Deadlock in Hindi

डेडलॉक को संभालने के लिए यहां कुछ आसान सुझाव हैं:

  1. प्लान बनाओ: अपने कंप्यूटर को डेडलॉक से बचाने के लिए एक छोटा सा प्लान बनाओ। इससे तुम बड़ी समस्याओं को पहले ही रोक सकते हो।
  2. रिसोर्सेस को सही से मैनेज करो: सुनिश्चित करो कि तुम्हारे सिस्टम के रिसोर्सेस सही तरीके से बाँटे जा रहे हैं और सही तरीके से उपयोग हो रहा है।
  3. स्पेशल सॉफ़्टवेयर का इस्तेमाल करो: अगर तुम्हारे पास कोई स्पेशल सॉफ़्टवेयर है, जैसे “बैंकर्स एल्गोरिदम,” तो उसका इस्तेमाल करो। यह तुम्हें बेहतर सुरक्षित करने में मदद कर सकता है।
  4. रिसोर्स एलोकेशन ग्राफ का इस्तेमाल करो: रिसोर्स एलोकेशन ग्राफ का इस्तेमाल करके तुम रिसोर्सेस की स्थिति को सही तरीके से समझ सकते हो और डेडलॉक को रोक सकते हो।
  5. अगर कोई प्रक्रिया या कार्य किसी रिसोर्स की आवश्यकता नहीं है, तो उसे आज़ादी दो ताकि वह रिसोर्सेस को बाँट सके।

आपने क्या सीखा | Summary

मुझे आशा है कि मैंने आप लोगों को Deadlock in Hindi (Deadlock in os in hindi) उसके बारे में पूरी जानकारी दी और मुझे आशा है कि आप लोगों को Deadlock in OS उसके बारे में समझ आ गया होगा। यदि आपके मन में इस आर्टिकल को लेकर कोई भी संदेह है या आप चाहते हैं कि इसमें कुछ सुधार होनी चाहिए तो इसके लिए आप नीचे comments लिख सकते हैं।

आपके ये विचार हमें कुछ सीखने और कुछ सुधारने का मौका देंगे। अगर आपको मेरी यह पोस्ट Deadlock in os in hindi में पसंद आई या आपने इससे कुछ सीखा है तो कृपया अपनी खुशी और जिज्ञासा दिखाने के लिए इस पोस्ट को सोशल नेटवर्क जैसे फेसबुक, ट्विटर आदि पर शेयर करें।

Leave a Comment