एक ऑपरेटिंग सिस्टम का मुख्य उद्देश्य हार्डवेयर और सॉफ्टवेयर संसाधनों के बीच उचित संचार प्रदान करना और कार्यक्रमों के लिए सामान्य सेवाएं देना है। जब एक ऑपरेटिंग सिस्टम प्रक्रिया किसी भी संसाधन तक पहुँच प्राप्त करना चाहती है, तो यह सबसे पहले उस विशेष संसाधन के लिए अनुरोध भेजती है जिसे वह एक्सेस करना चाहता है, फिर वह संसाधन का उपयोग करता है और अंत में उपयोग करने के बाद संसाधन को रिलीज़ करता है। मान लें कि कई प्रक्रियाएं एक ही समय में एक संसाधन तक पहुंचने की कोशिश कर रही हैं, तो एक समय में सभी प्रक्रियाओं को एक संसाधन प्रदान करना मुश्किल हो जाता है, ऐसी स्थिति में गतिरोध नाम की अवधारणा उत्पन्न होती है। इसलिए यह लेख बताता है कि गतिरोध कैसे होता है और इस गतिरोध की स्थिति को कैसे दूर किया जाए।
ऑपरेटिंग सिस्टम में गतिरोध क्या है?
परिभाषा: डेड-लॉक एक ऐसी स्थिति है जहां दो या अधिक प्रोसेसर किसी घटना के होने की प्रतीक्षा कर रहे हैं, लेकिन ऐसी घटनाएँ जो नहीं होती हैं, एक गतिरोध की स्थिति होती है, और प्रोसेसर को गतिरोध की स्थिति में कहा जाता है। उदाहरण के लिए, आइए हम एक वास्तविक समय के परिदृश्य को मानें, जहां दो कारें A & B हैं, जो दो व्यक्तिगत चालकों द्वारा एक-तरफ़ा सड़क पर चलती हैं। अब स्थिति यह है कि कार ए ड्राइवर कहता है कि वह उत्तर की ओर बढ़ रहा है, एक सही दिशा है, जबकि कार बी ड्राइवर का कहना है कि वह दक्षिण दिशा की ओर बढ़ रहा है। लेकिन कोई भी दूसरी कार को आगे बढ़ने की अनुमति देने के लिए पीछे नहीं हटता है, इस स्थिति को गतिरोध की स्थिति कहा जाता है।
कार-उदाहरण
बेहतर समझ के लिए हम एक और उदाहरण पर विचार करें जहां दो संसाधन R1, R2 और दो प्रक्रिया P1 और P2 हैं, जहां R1 को P1 को सौंपा गया है और R2 को P2 को सौंपा गया है। अब यदि P1 R2 तक पहुंचना चाहता है, जैसा कि हम पहले से ही जानते हैं कि R2 P2 द्वारा आयोजित किया गया है, और अब P2 R1 तक पहुंचना चाहता है, जो कि P1 केवल तभी निष्पादित होता है जब यह R2 तक पहुंच जाता है, तो P2 भी केवल तभी निष्पादित होता है जब यह R1 तक पहुँच जाता है एक गतिरोध की स्थिति है।
प्रोसेसर-उदाहरण
मृत-लॉक स्थितियां
निम्नलिखित चार महत्वपूर्ण गतिरोध स्थितियाँ हैं यदि सभी स्थितियाँ एक साथ होती हैं तो गतिरोध के घटित होने की कुछ निश्चित संभावनाएँ हैं।
आपसी बहिष्कार
इसका अर्थ है कि हम जो भी संसाधन उपयोग कर रहे हैं उसका उपयोग पारस्परिक रूप से अनन्य रूप से किया जाना चाहिए। जहां एक समय में केवल एक प्रक्रिया एक संसाधन का उपयोग करती है। उदाहरण के लिए, मुद्रण प्रक्रिया चल रही है और अचानक एक अन्य प्रक्रिया मुद्रण प्रक्रिया को बाधित करने की कोशिश करती है। तो यहाँ आपसी बहिष्करण स्थिति में, मुद्रण कार्य पूरा होने के बाद ही अगले कार्य को संसाधित किया जाता है। पारस्परिक आदान-प्रदान को संसाधनों को एक साथ साझा करके समाप्त किया जा सकता है, जो व्यावहारिक रूप से संभव नहीं है।
आपसी बहिष्कार
कोई पूर्व-उत्सर्जन नहीं
के अनुसार पूर्व रिक्तिपूर्व आधारित एल्गोरिदम, यदि वर्तमान कार्य को बाधित करने के लिए एक प्राथमिकता कार्य है। पूर्व-खाली एल्गोरिथ्म यह वर्तमान कार्य को धारण करता है और सबसे पहले प्राथमिकता वाले कार्य को निष्पादित करता है और अपने पहले कार्य पर वापस जाता है। एक स्थिति उपरोक्त उदाहरण के अनुसार समझाया गया है जहां एक प्रक्रिया संसाधन को तब तक रखती है जब तक वह निष्पादित हो जाता है, अर्थात पी 1 आर 1 निष्पादित करने के बाद ही जारी कर सकता है, इसी तरह पी 2 रिलीज आर 2 केवल निष्पादन के बाद। यदि कोई पूर्व-उत्सर्जन नहीं है तो गतिरोध हो सकता है।
कोई पूर्व-उदाहरण नहीं
रुको और रुको
एक प्रक्रिया कुछ संसाधनों को पकड़ रही है और अतिरिक्त संसाधनों की प्रतीक्षा कर रही है लेकिन उन संसाधनों को किसी अन्य प्रक्रिया द्वारा अधिग्रहित किया जाता है। उपरोक्त उदाहरण से, P1 R1 को पकड़े हुए है और R2 के लिए प्रतीक्षा कर रहा है, जहाँ R2 द्वारा P2 का अधिग्रहण किया गया है, और P2 R2 पकड़ रहा है और R1 की प्रतीक्षा कर रहा है, जहाँ R1 को P1 द्वारा अधिग्रहित किया जाता है, एक पकड़ है और सिस्टम में प्रतीक्षा स्थिति गतिरोध हो सकता है।
रुको-और-उदाहरण
परिपत्र प्रतीक्षा करें
प्रक्रियाओं के एक सेट को गतिरोध में कहा जाता है यदि एक प्रक्रिया एक संसाधन की प्रतीक्षा कर रही है जो किसी अन्य प्रक्रिया को आवंटित की गई है और वह प्रक्रिया किसी संसाधन के लिए प्रतीक्षा कर रही है, तो यह उपर्युक्त उदाहरण के समान है जहां यह लूप के रूप में है। जहां P1 R2 के लिए प्रतीक्षा कर रहा है और R2 को P2 के लिए आवंटित किया गया है और P2 को R1 की प्रतीक्षा है और R1 को P1 के लिए आवंटित किया गया है जो एक परिपत्र प्रतीक्षा रूप है यदि यह स्थिति संतुष्ट करती है तो गतिरोध होता है।
परिपत्र-प्रतीक्षा-उदाहरण
डेड-लॉक डिटेक्शन एल्गोरिथम
वे मामले जहां हम संसाधनों को प्रक्रियाओं के लिए आवंटित करते हैं, और ऑपरेटिंग सिस्टम रीचेक करता है यदि सिस्टम में गतिरोध उत्पन्न हो गया है या 2 मुख्य गतिरोध का पता लगाने वाले एल्गोरिदम का उपयोग नहीं कर रहे हैं, तो वे हैं
- एक घटना
- संसाधन प्रकार के कई उदाहरण
एक घटना
एक एकल उदाहरण एक ऐसी स्थिति है जहां एक प्रणाली सभी संसाधनों के एकल उदाहरण हैं। इसे ग्राफ एल्गोरिदम या संसाधन आवंटन ग्राफ के लिए प्रतीक्षा के रूप में भी जाना जाता है। संसाधन आवंटन ग्राफ में प्रक्रियाओं का एक सेट और संसाधनों का एक सेट शामिल होता है, जिन्हें दो अलग-अलग रेखाओं के रूप में दर्शाया जाता है। संसाधन आवंटन ग्राफ में संसाधनों को संशोधित किया जाता है और ग्राफ रूप में प्रतीक्षा के रूप में दर्शाया जाता है। जहां ग्राफ फॉर्म के लिए प्रतीक्षा में केवल प्रक्रियाएं होती हैं, जिन्हें नीचे दिखाए गए अनुसार वर्टिकल के रूप में दर्शाया जाता है,
- संसाधन आवंटन ग्राफ: संसाधन आवंटन ग्राफ में P1, P2, P3 और संसाधन R1, R2, R3 को संसाधित किया जाता है।
- ग्राफ़ के लिए प्रतीक्षा करें: केवल प्रक्रियाएँ P1, P2, P3 ग्राफ़ के इंतजार में बताई गई हैं।
- यदि एक चक्र की स्थिति है, कि अगर एक दिशा में एक प्रक्रिया का निरंतर प्रवाह होता है तो इसका मतलब है कि चक्र की स्थिति से बाहर निकलता है और ग्राफ़ के लिए प्रतीक्षा करना एक गतिरोध की स्थिति में है।
उदाहरण 1: नीचे दिए गए उदाहरण से पता चलता है कि कोई गतिरोध स्थिति नहीं है क्योंकि ग्राफ के इंतजार में कोई निरंतर प्रवाह नहीं देखा गया है।
एकल-उदाहरण -१
उदाहरण 2: गतिरोध की स्थिति उत्पन्न हुई है क्योंकि पी 1 से पी 4 तक चक्र का निरंतर प्रवाह है।
एकल-उदाहरण-उदाहरण २
यदि सिस्टम में गतिरोध बहुत बार होता है तो डिटेक्शन एल्गोरिथ्म का अक्सर उपयोग किया जाता है। यदि डिटेक्शन एल्गोरिदम का अधिक उपयोग होता है तो अधिक ओवरहेड और अधिक गणना समय होगा। इसलिए इसे दूर करने के लिए, हम एल्गोरिथ्म का आह्वान करते हैं, एक समान समय देते हुए, यह इसी तरह से है कि ग्राफ़ के लिए वजन का उपयोग झुंड का पता लगाने के लिए किया जाता है।
संसाधन प्रकार के कई उदाहरण
संसाधन प्रकार के कई उदाहरण एक ऐसी स्थिति है जहां एक प्रणाली सभी संसाधनों के कई उदाहरण हैं, इसे बैंकर्स एल्गोरिदम के रूप में भी जाना जाता है। बैंकर्स एल्गोरिदम के अनुसार, जैसे ही प्रक्रिया को इसके सभी आवश्यक संसाधन मिलते हैं, तब यह अपने संसाधनों को जारी करता है।
आइए निम्नलिखित उदाहरण पर विचार करें, मान लें कि 3 प्रक्रियाएं P0, P1, P2, और संसाधन प्रकार A, B, C हैं जहां A हो सकता है सी पी यू , बी प्रिंटर हो सकता है और सी कीबोर्ड हो सकता है। कॉलम में अंक '0' संसाधनों की उपलब्धता को दर्शाता है।
केस (i): मान लें कि यदि हम स्थिति का अनुरोध करते हैं तो '000' स्थिति जो P0 और P2 में मौजूद है, हमें जांच करनी चाहिए कि कौन सा अनुरोध पूरा हो गया है, प्रक्रिया P0 आवंटित होने के बाद प्रक्रियाओं को जारी करती है, फिर अगली P2 प्रक्रियाएं आवंटित होने के बाद जारी होती हैं। इस तरह, एक क्रम में, एक प्रक्रिया द्वारा एक क्रम में P0, P2, P3, P1, P4 को जारी किया जाता है। अंत में, हमें P7, P2, P6 के रूप में उपलब्ध संसाधन मिलते हैं। उपलब्ध अनुक्रम एक ऐसी स्थिति है जहां कोई गतिरोध नहीं है।
बैंकरों-एल्गोरिथ्म-उदाहरण 1
मकान (ii): मान लीजिए कि यदि 000 के बजाय P2 00 है, तो अब बैंकर के एल्गोरिदम को गतिरोध की स्थिति के लिए जांचने के लिए लागू करें, जहां सभी 5 प्रक्रियाओं के बीच एकमात्र P0 निष्पादित होता है। इसलिए P1 को छोड़कर P1, P2, P3, P4 गतिरोध की स्थिति में हैं।
बैंकर-उदाहरण २
गतिरोध के अनुप्रयोग
गतिरोध के अनुप्रयोगों को परीक्षा के ऑनलाइन परिणाम के वास्तविक समय के उदाहरण के साथ समझाया जा सकता है, जहां कई छात्र रिलीज के समय अपने विश्वविद्यालय की वेबसाइट तक पहुंचने का प्रयास करते हैं। कोई यह देख सकता है कि कई बार वेब पेज कई उपयोगकर्ताओं के लिए लोड नहीं होता है, यह एक गतिरोध की स्थिति है। यह किसी भी एल्गोरिदम का उपयोग करके दूर किया जा सकता है।
लाभ
गतिरोध के फायदे हैं
- गतिरोध से बचने में कोई पूर्व-उत्सर्जन नहीं देखा जाता है
- प्रक्रिया में कोई देरी नहीं
नुकसान
गतिरोध का नुकसान है
- उपयोग किए जाने वाले संसाधन को पहले से ज्ञात होना चाहिए
- लंबे समय तक प्रक्रिया में रुकावट
- पूर्व-उत्सर्जन नुकसान विरासत में मिला है।
यह लेख इस बात के बारे में साक्षात्कार करता है कि दो या दो से अधिक प्रक्रियाओं के होने पर गतिरोध कैसे होता है और तीन स्थितियां जो एक गतिरोध का कारण बनती हैं, और दो प्रकार के एल्गोरिदम अर्थात् संसाधन साझाकरण एल्गोरिदम जो वहां मौजूद है का पता लगाता है गतिरोध की स्थिति और बैंकरों का एल्गोरिथ्म जो गतिरोध परिहार एल्गोरिथ्म है। यहाँ सवाल है कि 'गतिरोध की अनदेखी होने पर क्या होता है?'