स्टारवेशन (कंप्यूटर विज्ञान)

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

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

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

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

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

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

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

यह भी देखें

 * भोजन दार्शनिकों की समस्या