विषय-सूचि
शेड्यूलर क्या है? (scheduler in os in hindi)
शेड्यूलर एक खास किस्म के ऑपरेटिंग सिस्टम सॉफ्टवेर होते हैं जो प्रोसेस शेड्यूलिंग को तरह-तरह के तरीकों से मैनेज करते हैं।
इसका प्रमुख कार्य है उन जॉब्स को सेलेक्ट करना जिन्हें सिस्टम को सबमिट किया जाना है और ये निर्णय लेना कि कौन सा प्रोसेस रन करेगा। कुछ तीन तरह के शेड्यूलर होते हैं जो निम्न हैं:
- लॉन्ग टर्म (job) शेड्यूलर– मेन मेमोरी के छोटे आकार के होने के कारण शुरू में सारे प्रोग्राम को सेकेंडरी मेमोरी में स्टोर किया जाता है। जब उन्हें मेन मेमोरी में लोड या स्टोर कर दिया जाता है तब उन्हें प्रोसेस के नाम से जाना जाता है। लॉन्ग टर्म शेड्यूलर का ये निर्णय होता है कि कितने प्रोसेस रेडी क्यू में रहेंगे। अतः सीधे-सादे शब्दों में कहें तो लॉन्ग टर्म शेड्यूलर सिस्टम के मल्टीप्रोग्रामिंग की डिग्री को तय करता है।
- मध्यम टर्म शेड्यूलर– अक्सर एक रन हो रहा प्रोसेस I/0 ऑपरेशन की जरूरत महसूस करता है जिसके लिए CPU की कोई जरुरत नहीं होती। इसीलिए जब किसी प्रोसेस के execution के दौरान उसे I/O ऑपरेशन की जरूरत होती है तो ऑपरेटिंग सिस्टम उस प्रोसेस को ब्लॉक्ड क्यू में भेज देता है। जब वो प्रोसेस अपना I/O ऑपरेशन पूरा कर लेता है तब उसे फिर से रेडी क्यू में शिफ्ट कर दिया जाता है। ये सारे निर्णय मध्यम टर्म शेड्यूलर लेता है। मीडियम टर्म शेड्यूलिंग स्वैपिंग का ही एक भाग है।
- शोर्ट टर्म (CPU) शेड्यूलर– जब मेन मेमोरी में शुरुआत में बहुत सारे प्रोसेस होते हैं तो सभी रेडी क्यू में उपस्थित रहते हैं। इस सारे प्रोसेस में से किसी एक को ही execution के लिए चुना जाता है। ये निर्णय शोर्ट टर्म शेड्यूलर या CPU शेड्यूलर के हांथों में होता है।
डिस्पैचर क्या है? (dispatcher in os in hindi)
डिस्पैचर एक ऐसा ख़ास तरह का प्रोग्राम होता है जिसका काम शेड्यूलर के बाद शुरू होता है।
जब शेड्यूलर किसी प्रोसेस को सेलेक्ट करने का अपना काम पूरा कर लेता है तब वो डिस्पैचर ही होता है जो प्रोसेस को जिस क्यू में उसे जाना है वहां लेकर जाने का काम करता है।
डिस्पैचर वो module है जो CPU के कण्ट्रोल को उस प्रोसेस को देता है जिसे शोर्ट टर्म शेड्यूलर द्वारा सेलेक्ट किया गया है। इस फंक्शन में निम्न चीजें होती है:
- स्विचिंग कॉन्टेक्स्ट
- स्विचिंग टू यूजर मोड
- यूजर प्रोग्राम में सही लोकेशन पर जम्प करना जहां से प्रोग्राम को रिस्टार्ट किया जा सके।
शेड्यूलर और डिस्पैचर के बीच का अंतर (difference between scheduler and dispatcher in hindi)
एक ऐसे स्थिति की कल्पना कीजिये जहां बहुतों प्रोसेस रेडी क्यू में एक्सीक्यूट होने का इन्तजार कर रहे हैं।
लेकिन CPU एक साथ रेडी क्यू के सारे प्रोसेस को तो एक्सीक्यूट नहीं कर सकता, इसीलिए ऑपरेटिंग सिस्टम को दिए गये शेड्यूलिंग अल्गोरिथम का प्रयोग कर के किसी खास प्रोसेस को चुनना होगा जो पहले एक्सीक्यूट होने जाएगा।
अब ये प्रक्रिया जिसमे इतने सारे प्रोसेस में से किसी एक को सेलेक्ट करके चुनना हो, शेड्यूलर द्वारा किया जाएगा।
यहाँ शेड्यूलर का काम खतम हो जाता है।
अब सीन में डिस्पैचर की एंट्री होती है क्योंकि शेड्यूलर ने ये निर्णय ले लिया है कि कौन सा प्रोसेस एक्सीक्यूट होने के लिए जाएगा। तो अब वो डिस्पैचर ही होगा जो उस प्रोसेस को रेडी क्यू से रनिंग स्टेटस तक लेकर जाएगा। आप ऐसा भी कह सकते हैं कि उस शेड्यूलर द्वारा चुने गये प्रोसेस को CPU प्रोवाइड करना डिस्पैचर का काम है।
उदाहरण
इस चित्र में रेडी क्यू में चार प्रोसेस हैं- P1, P2, P3, P4; जो कि समय t0, t1, t2, t3 पर क्रमशः पहुंचे हैं। यहाँ फर्स्ट इन फर्स्ट आउट शेड्यूलिंग अल्गोरिथम का प्रयोग किया गया है।
अब इसी अल्गोरिथम के आधार पर शेड्यूलर ये निर्णय लेगा कि चूँकि P1 पहले आया है इसीलिए उसे पहले एक्सीक्यूट होने के किये भेजा जाएगा। अब डिस्पैचर उस प्रोसेस P1 को रनिंग स्टेट तक लेकर जाएगा।
डिस्पैचर vs शेड्यूलर चार्ट
प्रॉपर्टी डिस्पैचर शेड्यूलर परिभाषा डिस्पैचर एक module है जो शोर्ट टर्म शेड्यूलर द्वारा चुने गये प्रोसेस को CPU का कण्ट्रोल देता है। ये बहुत सारे प्रोसेस में से किसी एक को चुनता है। प्रकार ये बस एक कोड सेगमेंट है। इसका कोई टाइप नहीं होता। तीन टाइप- लॉन्ग टर्म, मध्यम टर्म और शोर्ट टर्म। निर्भरता ये शेड्यूलर पर निर्भर है। इसे तबतक इन्तजार करना होता है जबतक शेड्यूलर अपना काम पूरा न कर ले। शेड्यूलर स्वतंत्र रूप से काम करता है। जब जरूरत हो तब ये तुरंत काम शुरू कर देता है। अल्गोरिथम डिस्पैचर के इमप्लेमेंट के लिए कोई अल्गोरिथम नहीं है। शेड्यूलर बहुत सारे अल्गोरिथम जैसे कि FCFS, SJF, RR इत्यादि पर काम करता है। लिया गया समय डिस्पैचर द्वारा लिए गये समय को डिस्पैच लेटेंसी कहते हैं। शेड्यूलर क्षणभर में अपना काम कर देता है। इसके द्वारा लिए गये समय को नजरअंदाज कर सकते हैं। फंक्शन ये सब काम भी डिस्पैचर ही करता है:कॉन्टेक्स्ट स्विचिंग, स्विचिंग टू यूजर मोड, प्रोग्राम के लोकेशन पर रिस्टार्ट के लिए जम्प। इसका एकमात्र काम प्रोसेस को चुनना है।
इस तरह आप समझ गये होंगे कि कैसे शेड्यूलर और डिस्पैचर दोनों एक-एक कर के काम करते हैं जिस से प्रोग्राम के पूरी तरह से एक्सीक्यूट होने की प्रक्रिया पूरी होती है।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।