2008-09-17 48 views
11

मल्टीटास्किंग ऑपरेटिंग सिस्टम संदर्भ में, कभी-कभी आप राउंड-रॉबिन शेड्यूलिंग शब्द सुनते हैं। इसका क्या मतलब है?
अन्य प्रकार की शेड्यूलिंग क्या है?राउंड-रॉबिन शेड्यूलिंग क्या है?

उत्तर

20

राउंड रोबिन निर्धारण

आप 100 मेहमानों की एक पार्टी में एक मेजबान हैं, राउंड-रोबिन शेड्यूलिंग मतलब यह होगा कि आप 1 मिनट (एक निश्चित राशि) प्रति अतिथि खर्च करते हैं। आप प्रत्येक अतिथि के माध्यम से एक-एक करके जाते हैं, और 100 मिनट के बाद, आप प्रत्येक अतिथि के साथ 1 मिनट बिताते। Wikipedia पर अधिक।

कई अन्य प्रकार के शेड्यूलिंग हैं, जैसे कि प्राथमिकता आधारित (यानी सबसे महत्वपूर्ण लोग पहले), पहली बार आओ-फर्स्ट-सर्विस, सबसे पुरानी-समय सीमा-पहले (यानि पहले व्यक्ति छोड़ने वाला व्यक्ति) आदि। आप कर सकते हैं शेड्यूलिंग एल्गोरिदम के लिए googling से शुरू करें या scheduling at Wikipedia

0

राउंड रॉबिन एक साधारण शेड्यूलिंग एल्गोरिदम है जहां समय प्राथमिकता के बिना नौकरियों के बीच समान रूप से विभाजित होता है।

उदाहरण के लिए - यदि आपके पास 5 प्रक्रियाएं चल रही हैं - प्रत्येक प्रक्रिया को चलाने की अनुमति देने से पहले प्रत्येक प्रक्रिया को 1/5 इकाई के लिए चलाने की अनुमति दी जाएगी। राउंड रॉबिन आमतौर पर ओएस में लागू करना आसान होता है।

3

यहां जवाब और यहां तक ​​कि विकिपीडिया आलेख में राउंड-रॉबिन शेड्यूलिंग का वर्णन नियमित रूप से आवधिक समय-निर्धारण शामिल है। हालांकि यह बहुत आम है, मेरा मानना ​​है कि राउंड-रॉबिन शेड्यूलिंग और टाइमलाइनिंग बिल्कुल वही बात नहीं है। निश्चित रूप से, समझने के लिए टाइम्सलाइजिंग के लिए, प्रत्येक कार्य को घूर्णन करते समय राउंड-रॉबिन शेडलिंग को निहित किया जाता है, हालांकि आप टाइमलाइनिंग के बिना राउंड-रॉबिन शेड्यूलिंग कर सकते हैं। यही है, राउंड-रॉबिन रोटेशन में एक ही प्राथमिकता पर प्रत्येक कार्य को तब तक चलाने की अनुमति दी जा सकती है जब तक कि वे संसाधन ब्लॉक स्थिति तक न पहुंच जाएं और केवल तब ही रोटेशन रन में अगला कार्य रखें। दूसरे शब्दों में, जब समान प्राथमिकता कार्य मौजूद होते हैं, तो रीशेडलिंग अंक समय पूर्व-खाली नहीं हैं।

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

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

7

टाइम्सलाइसिंग अभ्यास में किसी भी राउंड-रॉबिन शेड्यूलिंग सिस्टम के लिए निहित है, AFAIK।

मैं InSciTek जेफ के निहितार्थ यह है कि निम्नलिखित राउंड-रोबिन शेड्यूलिंग है से असहमत:

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

मुझे नहीं लगता कि इसे राउंड-रॉबिन माना जा सकता है। यह वास्तव में preemptive शेड्यूलिंग है।हालांकि, शेड्यूलिंग एल्गोरिदम होना संभव है जिसमें राउंड-रॉबिन और प्रीपेप्टिव शेड्यूलिंग दोनों के तत्व हैं, जो VxWorks करता है यदि राउंड-रॉबिन शेड्यूलिंग और प्रीम्प्शन दोनों सक्षम हैं (राउंड-रॉबिन डिफ़ॉल्ट रूप से अक्षम है)। राउंड-रॉबिन शेड्यूलिंग को सक्षम करने का तरीका कर्नेलटाइमस्लिस में गैर-शून्य मान प्रदान करना है।

मैं इस कथन से सहमत है:

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

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

इंस्सीटेक जेफ (मेरे पास टिप्पणी विशेषाधिकार नहीं हैं) पर निर्देशित संपादित करें हां, मैं कार्य लॉकिंग/बाधा अक्षम करने का जिक्र कर रहा था, हालांकि मैंने स्पष्ट रूप से इसे बहुत अच्छी तरह व्यक्त नहीं किया था। आपने मुझे दूसरी टिप्पणी के साथ (हे!) पसंद किया। मैं अधिक महत्वपूर्ण बिंदु पर बहस करने की आशा करता हूं, कि आपको लगता है कि राउंड-रॉबिन शेड्यूलिंग समय के बिना स्लाइसिंग के अस्तित्व में हो सकती है। या आप बस बराबर समय आधारित समय टुकड़ा मतलब था? मैं पूर्व के साथ असहमत हूं, लेकिन बाद वाले के साथ सहमत हूं। मैं सीखने के लिए उत्सुक हूँ। धन्यवाद।

EDIT2 जेफ के निर्देश पर:

राउंड-रोबिन timeslicing बिना मौजूद कर सकते हैं। यह वही है जब VxWorks में होता है जब kernelTimeSlice अक्षम (शून्य) होता है।

मैं इस कथन से असहमत हूं। शीर्षक-राउंड-रॉबिन शेड्यूलिंग के साथ this document अनुभाग 2.2.3 देखें।

राउंड-रोबिन शेड्यूलिंग समय टुकड़ा करने की क्रिया एक ही प्राथमिकता के साथ सभी कार्य करने के लिए सीपीयू के उचित आवंटन प्राप्त करने के लिए उपयोग करता है। प्रत्येक कार्य, समूह के समान प्राथमिकता वाले कार्यों में, परिभाषित अंतराल या समय स्लाइस के लिए निष्पादित करता है। राउंड-रॉबिन शेड्यूलिंग द्वारा कर्नेलटाइमस्लाइस() को कॉल करने में सक्षम है, जो एक समय स्लाइस, या अंतराल के लिए पैरामीटर लेता है। [...] यदि राउंड-रॉबिन शेड्यूलिंग सक्षम है, और निष्पादन निष्पादन कार्य के लिए सक्षम है, सिस्टम टिक हैंडलर कार्य का समय-टुकड़ा गिनती बढ़ाता है।

टाइम्सलाइसिंग राउंड-रॉबिन शेड्यूलिंग में अंतर्निहित है। अन्यथा आप सीपीयू नियंत्रण को छोड़ने के लिए एक कार्य पर भरोसा कर रहे हैं, जो राउंड-रॉबिन शेड्यूलिंग को हल करने का इरादा है।

+0

आप VxWorks में छूट बंद नहीं कर सकते हैं। यह अंतर्निहित है क्योंकि यदि उच्च प्राथमिकता कार्य चलाया जा सकता है, तो यह निम्न प्राथमिकता धागा को प्रीपेप करेगा। प्रीमिशन टाइमलाइनिंग से बंधे नहीं है, इसमें ऐसी स्थिति शामिल है जहां सीपीयू को स्पष्ट रूप से उत्पन्न किए बिना थ्रेड को बाधित किया जा सकता है। –

+0

ठीक है, स्पष्ट होने के लिए - अगर किसी को बहुत शाब्दिक हो जाता है - तो VxWorks में प्रीपेप्शन निहित है .... मानते हुए कि आप इंटरप्ट को अक्षम नहीं करते हैं और/या शेड्यूलर को लॉक नहीं करते हैं। –

+0

आरई संपादित करें: राउंड-रॉबिन समय-समय पर बिना मौजूद हो सकता है। यह वही है जब VxWorks में होता है जब kernelTimeSlice अक्षम (शून्य) होता है। –

0

Actaully, आप प्रीemptive शेड्यूलिंग और राउंड रॉबिन के साथ भ्रमित हो रहे हैं। असर आरआर प्रीपेप्टिव शेड्यूलिंग का हिस्सा है।

+0

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

+0

विलियम स्टॉलिंग्स के अनुसार आंशिक रूप से समय क्वांटम पर प्रीपेप्टिव है। – trollster

1

एक राय। ऐसा लगता है कि हम एक में दो तंत्रों को जोड़ रहे हैं। केवल ओपी के मूल दावे को मानते हुए "एक मल्टीटास्किंग ऑपरेटिंग सिस्टम संदर्भ में"

1 - एक राउंड रॉबिन शेड्यूलर हमेशा सर्कुलर कतार में अगले आइटम को शेड्यूल करता है।

2 - शेड्यूलर शेड्यूलिंग करने के लिए नियंत्रण कैसे प्राप्त करता है अलग और असंबंधित है।

मैं इस बात से असहमत नहीं हूं कि 2 के लिए सबसे प्रचलित विधि समय-टुकड़ा/उपज संसाधन के लिए प्रतीक्षा कर रही है, लेकिन जैसा कि देखा गया है कि अन्य भी हैं। अगर मुझे गलत नहीं लगता है कि पहले मैक ने टाइम-स्लाइसिंग का उपयोग नहीं किया है, तो उन्होंने संसाधन के लिए स्वैच्छिक उपज/उपज का इंतजार किया (20+ वर्ष पुरानी मस्तिष्क कोशिकाएं कभी-कभी गलत हो सकती हैं;)।

0

राउंड रॉबिन शेड्यूलिंग टाइम शेयरिंग पर आधारित है जिसे क्वांटम भी कहा जाता है (सीपीयू द्वारा अधिकतम प्रक्रिया को किसी भी प्रक्रिया में दिया जाता है)। कतार में कई प्रक्रियाएं होती हैं (जिन्हें उर्फ ​​विस्फोट समय को पूरा करने के लिए अलग-अलग समय की आवश्यकता होती है) और सीपीयू को उन सभी को संसाधित करना पड़ता है ताकि यह प्रक्रियाओं के बीच स्विचिंग को क्वांटम मान के आधार पर प्रत्येक प्रक्रिया बराबर समय प्रदान करे। इस प्रकार के शेड्यूलिंग को राउंड रॉबिन शेड्यूलिंग के रूप में जाना जाता है। राउंड रॉबिन शेड्यूलिंग को आसानी से समझने के लिए इस सरल वीडियो को चेकआउट करें: https://www.youtube.com/watch?v=9hw-_qJ55K4

संबंधित मुद्दे