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

लाइवलॉक क्या है?
A livelock यह एक ऐसी स्थिति है जहां एक्सक्लूसिव लॉक के लिए अनुरोध बार-बार अस्वीकार कर दिया जाता है, क्योंकि कई ओवरलैप होते हैं।ping साझा लॉक एक दूसरे के काम में बाधा डालते रहते हैं। प्रक्रियाएं लगातार अपनी स्थिति बदलती रहती हैं, जिससे वे कार्य पूरा करने में असमर्थ हो जाती हैं।
लाइवलॉक के उदाहरण
उदाहरण 1:
लिवेलॉक का सबसे सरल उदाहरण दो व्यक्तियों का है जो एक गलियारे में आमने-सामने मिलते हैं और एक-दूसरे को रास्ता देने के लिए एक तरफ हट जाते हैं। वे एक ही दिशा में एक ही समय पर चलने के कारण बिना आगे बढ़े लगातार इधर-उधर हिलते रहते हैं। यहाँ, वे कभी एक-दूसरे को पार नहीं करते।
उदाहरण 2:
ऊपर दिए गए चित्र में, दोनों प्रक्रियाओं को दो-दो संसाधनों की आवश्यकता होती है, और वे आवश्यक लॉक प्राप्त करने के लिए प्रिमिटिव पोलिंग का उपयोग करते हैं। यदि कोई प्रयास विफल हो जाता है, तो विधि पुनः प्रयास करती है।
- प्रक्रिया A के पास संसाधन Y है
- प्रक्रिया B संसाधन X रखती है
- प्रक्रिया A के लिए संसाधन X की आवश्यकता है
- प्रक्रिया B के लिए संसाधन Y की आवश्यकता है
मान लीजिए कि प्रक्रिया A पहले चलती है और संसाधन X प्राप्त करती है, और फिर प्रक्रिया B चलती है और संसाधन Y प्राप्त करती है। चाहे कोई भी प्रक्रिया पहले चले, उनमें से कोई भी आगे प्रगति नहीं करती है।
हालांकि, इन दोनों प्रक्रियाओं में से कोई भी अवरुद्ध नहीं है। वे बिना कोई प्रगति किए बार-बार सीपीयू संसाधनों का उपयोग करती हैं, फिर भी वे प्रोसेसिंग ब्लॉक के लिए कभी नहीं रुकतीं।
इसलिए, यह स्थिति ऐसी नहीं है गतिरोधक्योंकि एक भी प्रक्रिया अवरुद्ध नहीं है; इसके बजाय, हम गतिरोध के समतुल्य स्थिति का सामना कर रहे हैं, जिसे लाइवलॉक कहा जाता है।
लाइवलॉक का कारण क्या है?
लाइवलॉक सिस्टम द्वारा अनुमत प्रक्रियाओं की संख्या से जुड़ा होता है, जिसे प्रोसेस टेबल में कुल प्रविष्टियों की संख्या द्वारा परिभाषित किया जाता है। इसलिए, इन प्रोसेस-टेबल स्लॉट को सीमित संसाधनों के रूप में माना जाता है। जब प्रक्रियाएं लगातार एक-दूसरे को जगह देते हुए इन सीमित संसाधनों के लिए बार-बार प्रयास करती हैं, तो उनमें से कोई भी प्रगति नहीं कर पाती है, और सिस्टम लाइवलॉक की स्थिति में आ जाता है।
गतिरोध (डेडलॉक) क्या है?
A गतिरोध डेडलॉक एक ऐसी स्थिति है जो ऑपरेटिंग सिस्टम में तब उत्पन्न होती है जब कोई प्रक्रिया प्रतीक्षा अवस्था में चली जाती है क्योंकि कोई अन्य प्रतीक्षारत प्रक्रिया आवश्यक संसाधन को रोके रखती है। डेडलॉक मल्टीप्रोसेसिंग में एक आम समस्या है, जहां कई प्रक्रियाएं एक विशिष्ट प्रकार के परस्पर अनन्य संसाधन को साझा करती हैं, जिसे सॉफ्ट लॉक या सॉफ्टवेयर लॉक के रूप में जाना जाता है।
गतिरोध का उदाहरण
- इसका एक वास्तविक उदाहरण वह यातायात है जो केवल एक ही दिशा में जा रहा हो।
- यहां पुल को एक संसाधन माना जाता है।
- जब गतिरोध उत्पन्न होता है, तो इसे आसानी से हल किया जा सकता है यदि एक कार पीछे हट जाए (संसाधनों को पूर्व-अधिकृत कर ले और रोल बैक कर दे)।
- यदि गतिरोध की स्थिति उत्पन्न हो तो कई कारों को पीछे ले जाना पड़ सकता है।
- इसलिए, भुखमरी संभव है।
गतिरोध का उदाहरण
भुखमरी क्या है?
भुखमरी एक ऐसी स्थिति है जहाँ कम प्राथमिकता वाली प्रक्रियाएँ अवरुद्ध हो जाती हैं जबकि उच्च प्राथमिकता वाली प्रक्रियाएँ चलती रहती हैं। किसी भी प्रणाली में, उच्च और निम्न प्राथमिकता वाले संसाधनों के लिए अनुरोध गतिशील रूप से आते रहते हैं। इसलिए, यह तय करने के लिए किसी नीति की आवश्यकता होती है कि किसे कब सेवा दी जाएगी।
कुछ एल्गोरिदम के साथ, कुछ प्रक्रियाओं को वांछित सेवा नहीं मिल पाती है, भले ही वे डेडलॉक में न हों। स्टार्वेशन तब होता है जब कुछ थ्रेड्स लंबे समय तक साझा संसाधनों को अनुपलब्ध कर देते हैं।
भुखमरी का उदाहरण
उदाहरण के लिए, एक ऑब्जेक्ट एक सिंक्रोनाइज़्ड मेथड प्रदान करता है जिसके परिणाम आने में लंबा समय लग सकता है। यदि कोई एक थ्रेड इस मेथड का बार-बार उपयोग करता है, तो अन्य थ्रेड जिन्हें उसी ऑब्जेक्ट तक बार-बार सिंक्रोनाइज़्ड एक्सेस की आवश्यकता होती है, अक्सर अवरुद्ध हो जाते हैं।
डेडलॉक, स्टार्वेशन और लाइवलॉक के बीच अंतर
- डेडलॉक एक ऐसी स्थिति है जो ऑपरेटिंग सिस्टम में तब उत्पन्न होती है जब कोई प्रक्रिया प्रतीक्षा अवस्था में चली जाती है क्योंकि अनुरोधित संसाधन किसी अन्य प्रतीक्षारत प्रक्रिया द्वारा उपयोग में लाया जा रहा होता है।
- दूसरी ओर, लाइवलॉक लगभग डेडलॉक के समान ही होता है, सिवाय इसके कि लाइवलॉक में शामिल प्रक्रियाओं की स्थिति एक-दूसरे के जवाब में लगातार बदलती रहती है, और कोई भी प्रक्रिया आगे नहीं बढ़ती है।
- इसलिए, लाइवलॉक संसाधनों की कमी का एक अनूठा मामला है।


