अनुशंसित, 2020

संपादक की पसंद

OS में Preemptive और Non-Preemptive Scheduling में अंतर

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

आइए नीचे दिए गए तुलना चार्ट की मदद से संक्षेप में प्रीमेप्टिव और नॉन-प्रीमिटिव शेड्यूलिंग के बीच के अंतरों पर चर्चा करें।

तुलना चार्ट

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

निवारक निर्धारण की परिभाषा

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

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

एल्गोरिदम जो प्रीमेप्टिव शेड्यूलिंग पर काम करते हैं, वे राउंड रॉबिन हैं। सबसे छोटा जॉब फर्स्ट (एसजेएफ) और प्रायोरिटी शेड्यूलिंग प्रीमेप्टिव शेड्यूलिंग के तहत आ सकता है या नहीं भी।

आइए हम Preemptive Scheduled का एक उदाहरण लेते हैं, नीचे दी गई तस्वीर में देखें। हमारे पास चार प्रक्रियाएँ P0, P1, P2, P3 हैं। जिनमें से, P2 समय पर आता है। 0. इसलिए CPU को प्रोसेस P2 को आवंटित किया जाता है क्योंकि कतार में कोई अन्य प्रक्रिया नहीं है। इस बीच, पी 2 निष्पादित कर रहा था, पी 3 समय पर 1 आता है, अब प्रक्रिया पी 2 (5 मिलीसेकंड) के लिए शेष समय जो कि पी 3 (4 मिली सेकंड) के लिए आवश्यक समय से बड़ा है। इसलिए CPU प्रोसेसर P3 को आवंटित किया गया है।

इस बीच, पी 3 निष्पादित हो रहा था, प्रक्रिया पी 1 समय पर पहुंचती है। अब पी 3 (3 मिलीसेकंड) के लिए शेष समय पी 1 (4 मिलीसेकंड) और पी 2 (5 मिलीसेकंड) प्रक्रियाओं द्वारा आवश्यक समय से कम है। तो P3 को जारी रखने की अनुमति है। जबकि P3 की प्रक्रिया जारी है P0 समय 3 पर आता है, अब P3 (2 मिलीसेकंड) के लिए शेष समय P0 (2 मिलीसेकंड) के लिए आवश्यक समय के बराबर है। इसलिए पी 3 जारी है और पी 3 समाप्त होने के बाद सीपीयू को पी0 को आवंटित किया जाता है क्योंकि इसमें अन्य की तुलना में कम फटने का समय होता है। P0 के समाप्त होने के बाद, CPU को P1 और फिर P2 में आवंटित किया जाता है।

गैर-निवारक निर्धारण की परिभाषा

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

प्रीमेप्टिव शेड्यूलिंग के विपरीत, गैर-प्रीमेप्टिव शेड्यूलिंग निष्पादन के बीच में सीपीयू को चलाने वाली प्रक्रिया को बाधित नहीं करता है। इसके बजाय, यह प्रक्रिया का इंतजार करता है कि उसका सीपीयू फटने का समय पूरा हो और फिर वह सीपीयू को दूसरी प्रक्रिया में आवंटित कर सके।

गैर-प्रीमेप्टिव शेड्यूलिंग में, यदि लंबे सीपीयू फट समय के साथ एक प्रक्रिया निष्पादित हो रही है, तो दूसरी प्रक्रिया को लंबे समय तक इंतजार करना होगा जो तैयार कतार में प्रक्रियाओं के औसत प्रतीक्षा समय को बढ़ाता है। हालांकि, गैर-पूर्वनिर्धारित समयबद्धन के पास तैयार कतार से सीपीयू तक प्रक्रियाओं को बदलने का कोई ओवरहेड नहीं है, लेकिन यह शेड्यूलिंग को कठोर बनाता है क्योंकि निष्पादन में प्रक्रिया उच्च प्राथमिकता वाली प्रक्रिया के लिए पूर्व निर्धारित नहीं है।

आइए हम उपरोक्त शेड्यूलिंग उदाहरण को गैर-प्रीमेप्टिव फैशन में हल करें। जैसा कि शुरुआत में पी 2 समय पर पी 2 आता है, इसलिए सीपीयू को पी 2 को प्रोसेस करने के लिए आवंटित किया जाता है। सभी प्रक्रियाओं अर्थात P0, P1, P3 के बीच तैयार कतार में आता है। लेकिन सभी प्रक्रिया तक प्रतीक्षा करता है कि पी 2 अपने सीपीयू फटने के समय को पूरा करता है। इसके बाद पी 2 यानी पी 3 के बाद आने वाली प्रक्रिया को तब तक सीपीयू आवंटित किया जाता है जब तक कि यह समय समाप्त न हो जाए। इसी तरह, तब P1 निष्पादित होता है, और सीपीयू को बाद में P0 को संसाधित करने के लिए दिया जाता है।

Preemptive और गैर-Preemptive निर्धारण के बीच महत्वपूर्ण अंतर

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

निष्कर्ष:

ऐसा नहीं है कि प्रीमेप्टिव शेड्यूलिंग गैर-प्रीमेप्टिव शेड्यूलिंग या वाइज़-वर्स से बेहतर है। सभी इस बात पर निर्भर करते हैं कि एक शेड्यूलिंग प्रक्रियाओं के औसत प्रतीक्षा समय को कैसे कम करता है और सीपीयू उपयोग को अधिकतम करता है।

Top