भुखमरी (कंप्यूटर विज्ञान)

From alpha
Jump to navigation Jump to search

कंप्यूटर विज्ञान में, संसाधन भुखमरी समवर्ती कंप्यूटिंग में आने वाली एक समस्या है जहां एक प्रक्रिया (कंप्यूटिंग) को अपने काम को संसाधित करने के लिए आवश्यक सिस्टम संसाधन से लगातार वंचित किया जाता है।[1] भुखमरी शेड्यूलिंग या पारस्परिक बहिष्करण एल्गोरिदम में त्रुटियों के कारण हो सकती है, लेकिन संसाधन लीक के कारण भी हो सकती है, और जानबूझकर कांटा बम जैसे सेवा से इनकार करने वाले हमले के कारण हो सकती है।

जब समवर्ती एल्गोरिथ्म में भुखमरी असंभव है, तो एल्गोरिथ्म को भुखमरी-मुक्त, तालाबंदी-मुक्त कहा जाता है[2] या कहा गया कि परिमित बाईपास है।[3] यह संपत्ति सुरक्षा और जीवंतता गुणों का एक उदाहरण है, और किसी भी पारस्परिक बहिष्करण एल्गोरिदम के लिए दो आवश्यकताओं में से एक है; दूसरा है शुद्धता (कंप्यूटर विज्ञान)। परिमित बाईपास नाम का अर्थ है कि एल्गोरिदम की किसी भी प्रक्रिया (समवर्ती भाग) को साझा संसाधन तक पहुंच की अनुमति देने से पहले अधिकतम सीमित संख्या में बाईपास किया जाता है।[3]


शेड्यूलिंग

भुखमरी आमतौर पर अत्यधिक सरल शेड्यूलिंग एल्गोरिदम के कारण होती है। उदाहरण के लिए, यदि एक (खराब डिज़ाइन वाला) कंप्यूटर_मल्टीटास्किंग|मल्टी-टास्किंग सिस्टम हमेशा पहले दो कार्यों के बीच स्विच करता है जबकि तीसरा कभी नहीं चल पाता है, तो तीसरे कार्य में सीपीयू समय की कमी हो रही है। शेड्यूलिंग एल्गोरिदम, जो कर्नेल (ऑपरेटिंग सिस्टम) का हिस्सा है, को संसाधनों को समान रूप से आवंटित करना चाहिए; अर्थात्, एल्गोरिथम को संसाधनों का आवंटन करना चाहिए ताकि किसी भी प्रक्रिया में हमेशा आवश्यक संसाधनों की कमी न रहे।

कई ऑपरेटिंग सिस्टम शेड्यूलर प्रक्रिया प्राथमिकता की अवधारणा को नियोजित करते हैं। एक उच्च प्राथमिकता वाली प्रक्रिया A, कम प्राथमिकता वाली प्रक्रिया B से पहले चलेगी। यदि उच्च प्राथमिकता वाली प्रक्रिया (प्रक्रिया A) अवरुद्ध हो जाती है और कभी परिणाम नहीं देती है, तो कम प्राथमिकता वाली प्रक्रिया (B) (कुछ प्रणालियों में) कभी भी शेड्यूल नहीं की जाएगी - इससे भुखमरी का अनुभव होगा। यदि इससे भी अधिक प्राथमिकता वाली प्रक्रिया X है, जो प्रक्रिया B के परिणाम पर निर्भर है, तो प्रक्रिया X कभी समाप्त नहीं हो सकती है, भले ही यह सिस्टम में सबसे महत्वपूर्ण प्रक्रिया है। इस स्थिति को प्राथमिकता व्युत्क्रमण कहा जाता है। आधुनिक शेड्यूलिंग एल्गोरिदम में आम तौर पर यह गारंटी देने के लिए कोड होता है कि किसी भी प्रक्रिया को भुखमरी से बचाने के लिए सभी प्रक्रियाओं को प्रत्येक महत्वपूर्ण संसाधन की न्यूनतम मात्रा (अक्सर सीपीयू समय) प्राप्त होगी।

कंप्यूटर नेटवर्क में, विशेष रूप से वायरलेस नेटवर्क में, शेड्यूलिंग एल्गोरिदम शेड्यूलिंग भुखमरी से पीड़ित हो सकते हैं। एक उदाहरण अधिकतम थ्रूपुट शेड्यूलिंग है।

भुखमरी आम तौर पर गतिरोध के कारण होती है, जिसके कारण प्रक्रिया रुक जाती है। दो या दो से अधिक प्रक्रियाएँ तब गतिरोधग्रस्त हो जाती हैं जब उनमें से प्रत्येक एक ही सेट में किसी अन्य प्रोग्राम के कब्जे वाले संसाधन की प्रतीक्षा करते समय कुछ नहीं कर रहा होता है। दूसरी ओर, एक प्रक्रिया तब भुखमरी की स्थिति में होती है जब वह ऐसे संसाधन की प्रतीक्षा कर रही होती है जो लगातार अन्य प्रक्रियाओं को दिया जाता है। भुखमरी-स्वतंत्रता गतिरोध की अनुपस्थिति की तुलना में एक मजबूत गारंटी है: एक पारस्परिक बहिष्करण एल्गोरिदम जिसे दो प्रक्रियाओं में से एक को एक महत्वपूर्ण अनुभाग में अनुमति देने का चयन करना होगा और एक को मनमाने ढंग से चुनना होगा, गतिरोध-मुक्त है, लेकिन भुखमरी-मुक्त नहीं है।[3]

भुखमरी का एक संभावित समाधान प्राथमिकता कतार के साथ शेड्यूलिंग एल्गोरिदम का उपयोग करना है जो उम्र बढ़ना (शेड्यूलिंग) तकनीक का भी उपयोग करता है। एजिंग उन प्रक्रियाओं की प्राथमिकता को धीरे-धीरे बढ़ाने की एक तकनीक है जो सिस्टम में लंबे समय तक प्रतीक्षा करती हैं।[4]


यह भी देखें

संदर्भ

  1. Tanenbaum, Andrew (2001). आधुनिक ऑपरेटिंग सिस्टम. Prentice Hall. pp. 184–185. ISBN 0-13-092641-8.
  2. Herlihy, Maurice; Shavit, Nir (2012). मल्टीप्रोसेसर प्रोग्रामिंग की कला. Elsevier. p. 24. ISBN 9780123977953.
  3. 3.0 3.1 3.2 Raynal, Michel (2012). Concurrent Programming: Algorithms, Principles, and Foundations. Springer Science & Business Media. pp. 10–11. ISBN 978-3642320279.
  4. Galvin, Peter (2010). ऑपरेटिंग सिस्टम अवधारणाएँ. Wiley India Edition. p. 193. ISBN 978-81-265-2051-0.