आइए नीचे दिए गए तुलना चार्ट की मदद से संक्षेप में प्रीमेप्टिव और नॉन-प्रीमिटिव शेड्यूलिंग के बीच के अंतरों पर चर्चा करें।
तुलना चार्ट
तुलना के लिए आधार | निवारक निर्धारण | गैर निवारक निर्धारण |
---|---|---|
बुनियादी | संसाधनों को सीमित समय के लिए एक प्रक्रिया में आवंटित किया जाता है। | एक बार जब संसाधनों को एक प्रक्रिया के लिए आवंटित किया जाता है, तो प्रक्रिया इसे तब तक रखती है जब तक कि यह अपने फटने का समय पूरा नहीं करता है या प्रतीक्षा की स्थिति में स्विच नहीं करता है। |
इंटरप्ट | बीच में प्रक्रिया बाधित हो सकती है। | जब तक यह समाप्त नहीं होता है या प्रतीक्षा की स्थिति में स्विच नहीं किया जाता है, तब तक प्रक्रिया बाधित नहीं हो सकती है। |
भुखमरी | यदि एक उच्च प्राथमिकता प्रक्रिया अक्सर तैयार कतार में आती है, तो कम प्राथमिकता वाली प्रक्रिया भूखी रह सकती है। | यदि लंबे समय तक फटने वाली प्रक्रिया सीपीयू चल रही है, तो कम सीपीयू फट समय के साथ एक और प्रक्रिया भूखी रह सकती है। |
भूमि के ऊपर | प्रीमेप्टिव शेड्यूलिंग में प्रक्रियाओं को शेड्यूल करने के ओवरहेड्स हैं। | गैर-प्रीमेप्टिव शेड्यूलिंग में ओवरहेड्स नहीं होते हैं। |
लचीलापन | प्रीमेप्टिव शेड्यूलिंग लचीला है। | गैर-प्रीमेप्टिव शेड्यूलिंग कठोर है। |
लागत | प्रीमेप्टिव शेड्यूलिंग लागत से संबंधित है। | गैर-निवारक शेड्यूलिंग लागत सहयोगी नहीं है। |
निवारक निर्धारण की परिभाषा
प्रीमेप्टिव शेड्यूलिंग वह है जो उन परिस्थितियों में किया जा सकता है जब कोई प्रक्रिया रनिंग स्टेट से रेडी स्टेट या वेटिंग स्टेट से रेडी स्टेट पर स्विच हो जाती है । यहां, संसाधन (सीपीयू साइकिल) को सीमित समय के लिए प्रक्रिया के लिए आवंटित किया जाता है और फिर ले जाया जाता है, और प्रक्रिया को फिर से तैयार कतार में वापस रखा जाता है अगर इसके पास अभी भी सीपीयू फटने का समय शेष है। यह प्रक्रिया तैयार कतार में रहती है जब तक कि इसे निष्पादित करने का अगला मौका नहीं मिल जाता है।
यदि उच्च प्राथमिकता के साथ एक प्रक्रिया तैयार कतार में आती है, तो उसे फटने के समय को पूरा करने के लिए वर्तमान प्रक्रिया की प्रतीक्षा करने की आवश्यकता नहीं है। इसके बजाय, वर्तमान प्रक्रिया निष्पादन के बीच में बाधित होती है और तैयार कतार में तब तक रखी जाती है जब तक कि उच्च प्राथमिकता वाली प्रक्रिया सीपीयू चक्रों का उपयोग नहीं करती है। इस तरह, तैयार कतार में प्रत्येक प्रक्रिया को सीपीयू चलाने के लिए कुछ समय मिलता है। यह प्रीमेप्टिव शेड्यूलिंग को लचीला बनाता है, लेकिन इस प्रक्रिया को रनिंग स्टेट से रेडी स्टेट और वाइस-वर्ड में बदलने का ओवरहेड बढ़ाता है।
एल्गोरिदम जो प्रीमेप्टिव शेड्यूलिंग पर काम करते हैं, वे राउंड रॉबिन हैं। सबसे छोटा जॉब फर्स्ट (एसजेएफ) और प्रायोरिटी शेड्यूलिंग प्रीमेप्टिव शेड्यूलिंग के तहत आ सकता है या नहीं भी।
आइए हम Preemptive Scheduled का एक उदाहरण लेते हैं, नीचे दी गई तस्वीर में देखें। हमारे पास चार प्रक्रियाएँ P0, P1, P2, P3 हैं। जिनमें से, P2 समय पर आता है। 0. इसलिए CPU को प्रोसेस P2 को आवंटित किया जाता है क्योंकि कतार में कोई अन्य प्रक्रिया नहीं है। इस बीच, पी 2 निष्पादित कर रहा था, पी 3 समय पर 1 आता है, अब प्रक्रिया पी 2 (5 मिलीसेकंड) के लिए शेष समय जो कि पी 3 (4 मिली सेकंड) के लिए आवश्यक समय से बड़ा है। इसलिए CPU प्रोसेसर P3 को आवंटित किया गया है।
गैर-निवारक निर्धारण की परिभाषा
गैर-निवारक निर्धारण वह है जो उन परिस्थितियों में लागू किया जा सकता है जब एक प्रक्रिया समाप्त हो जाती है, या एक प्रक्रिया चलती स्थिति से प्रतीक्षा स्थिति में बदल जाती है । गैर-निवारक निर्धारण में, एक बार संसाधन (सीपीयू) एक प्रक्रिया को आवंटित किए जाने के बाद, यह प्रक्रिया सीपीयू को तब तक रखती है जब तक कि यह समाप्त नहीं हो जाता है या यह प्रतीक्षा की स्थिति में पहुंच जाता है।
प्रीमेप्टिव शेड्यूलिंग के विपरीत, गैर-प्रीमेप्टिव शेड्यूलिंग निष्पादन के बीच में सीपीयू को चलाने वाली प्रक्रिया को बाधित नहीं करता है। इसके बजाय, यह प्रक्रिया का इंतजार करता है कि उसका सीपीयू फटने का समय पूरा हो और फिर वह सीपीयू को दूसरी प्रक्रिया में आवंटित कर सके।
गैर-प्रीमेप्टिव शेड्यूलिंग में, यदि लंबे सीपीयू फट समय के साथ एक प्रक्रिया निष्पादित हो रही है, तो दूसरी प्रक्रिया को लंबे समय तक इंतजार करना होगा जो तैयार कतार में प्रक्रियाओं के औसत प्रतीक्षा समय को बढ़ाता है। हालांकि, गैर-पूर्वनिर्धारित समयबद्धन के पास तैयार कतार से सीपीयू तक प्रक्रियाओं को बदलने का कोई ओवरहेड नहीं है, लेकिन यह शेड्यूलिंग को कठोर बनाता है क्योंकि निष्पादन में प्रक्रिया उच्च प्राथमिकता वाली प्रक्रिया के लिए पूर्व निर्धारित नहीं है।
Preemptive और गैर-Preemptive निर्धारण के बीच महत्वपूर्ण अंतर
- प्रीमेप्टिव और गैर-प्रीमेप्टिव शेड्यूलिंग के बीच मूल अंतर यह है कि प्रीमेप्टिव शेड्यूलिंग में सीपीयू को सीमित समय के लिए प्रक्रियाओं को आवंटित किया जाता है। नॉन-प्रीमिटिव शेड्यूलिंग में, सीपीयू को उस प्रक्रिया के लिए आवंटित किया जाता है जब तक कि यह समाप्त नहीं हो जाता है या प्रतीक्षा स्थिति में स्विच नहीं हो जाता है ।
- प्रीमेप्टिव शेड्यूलिंग में निष्पादन प्रक्रिया निष्पादन के बीच में बाधित होती है, जबकि गैर-प्रीमेप्टिव शेड्यूलिंग में निष्पादन प्रक्रिया निष्पादन के बीच में बाधित नहीं होती है।
- प्रीमेप्टिव शेड्यूलिंग में प्रक्रिया को तैयार स्थिति से चालू अवस्था में बदलने, ओवर -वर्स, और तैयार कतार को बनाए रखने का ओवरहेड है। दूसरी ओर, गैर-पूर्वनिर्धारित समयबद्धन में प्रक्रिया को चालू राज्य से तैयार राज्य में स्विच करने का कोई ओवरहेड नहीं है ।
- प्रीमेप्टिव शेड्यूलिंग में, यदि उच्च प्राथमिकता वाली प्रक्रिया अक्सर तैयार कतार में आती है तो कम प्राथमिकता वाली प्रक्रिया को लंबे समय तक इंतजार करना पड़ता है, और इसे भूखा रहना पड़ सकता है। दूसरी ओर, गैर-निवारक शेड्यूलिंग में, यदि सीपीयू को बड़ी फट के समय के लिए प्रक्रिया के लिए आवंटित किया जाता है, तो छोटे फट समय के साथ प्रक्रियाओं को भूखा रहना पड़ सकता है।
- प्रीमेप्टिव शेड्यूलिंग काफी लचीली होती है क्योंकि सीपीयू तक पहुंचने के लिए महत्वपूर्ण प्रक्रियाओं को अनुमति दी जाती है क्योंकि वे तैयार कतार में पहुंचते हैं, चाहे कोई भी प्रक्रिया वर्तमान में निष्पादित हो रही हो। गैर-प्रीमेप्टिव शेड्यूलिंग कठोर है, भले ही एक महत्वपूर्ण प्रक्रिया तैयार कतार में प्रवेश करती है सीपीयू चलाने की प्रक्रिया परेशान नहीं है।
- प्रीमेप्टिव शेड्यूलिंग लागत साहचर्य है क्योंकि इसमें साझा डेटा की अखंडता को बनाए रखना है जो गैर-प्रीमेक्टिव शेड्यूलिंग के मामले में नहीं है।
निष्कर्ष:
ऐसा नहीं है कि प्रीमेप्टिव शेड्यूलिंग गैर-प्रीमेप्टिव शेड्यूलिंग या वाइज़-वर्स से बेहतर है। सभी इस बात पर निर्भर करते हैं कि एक शेड्यूलिंग प्रक्रियाओं के औसत प्रतीक्षा समय को कैसे कम करता है और सीपीयू उपयोग को अधिकतम करता है।