2010-02-12 12 views
12

शेड्यूलर को कौन शेड्यूल करता है?कौन ओएस में शेड्यूलर शेड्यूल करता है - क्या यह चिकन और अंडा परिदृश्य नहीं है?

पहला कार्य किस प्रकार बनाया गया है और यह पहला कार्य कैसे बनाया गया है? क्या इसके लिए कोई संसाधन या स्मृति आवश्यक नहीं है? एक चिकन और अंडा परिदृश्य की तरह नहीं है?

शेड्यूलर कोई कार्य नहीं है? क्या यह प्रत्येक बार स्लाइस के अंत में सीपीयू प्राप्त करता है यह जांचने के लिए कि कौन सी कार्य को सीपीयू दिया जाना चाहिए?

क्या कोई अच्छा लिंक है जो किसी व्यक्ति को कुछ सिद्धांतों को फैलाने के बजाए इन सभी अवधारणाओं को गहराई से समझता है और समझता है, जिन्हें निराश करने की आवश्यकता होती है?

+0

द्वारा आवधिक रूप से बुलाया जाता है वास्तव में एक सामान्य उत्तर नहीं है। आपको एक विशिष्ट ओएस कार्यान्वयन को देखने की आवश्यकता होगी। हालांकि, @ ईरा का जवाब शायद अधिकांश ओएस पर लागू होता है। – Benoit

उत्तर

14

अनुसूचक इस तरह के एक बाधा, (डिस्क किया, माउस क्लिक, टाइमर टिक)

  • या एक आंतरिक घटना (जैसे कि एक धागा के पूरा होने के रूप में के रूप में

    • एक (बाह्य) घटना से निर्धारित है , एक धागा द्वारा संकेतन कि यह कुछ के लिए इंतजार करने की जरूरत है, या एक धागे के संकेत है कि यह या एक संसाधन जारी किया है, एक धागा शून्य से कुछ विभाजन की तरह अवैध कर)

    की वजह से संक्षेप में एक जाल , यह किसी भी घटना द्वारा ट्रिगर किया जाता है जिसके लिए वें की आवश्यकता हो सकती है कार्यों को चलाने के लिए सेट और/या उन कार्यों की प्राथमिकताओं का पुनर्मूल्यांकन किया जाना चाहिए। शेड्यूलर तय करता है कि कौन सा कार्य आगे चल रहा है, और अगले कार्य पर नियंत्रण पास करता है।

    आमतौर पर, शेड्यूलर का यह "शेड्यूलिंग" हार्डवेयर इंटरप्ट से जुड़े कोड या सिस्टम कॉल से जुड़े कोड के कारण होता है।

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

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

  • +3

    सहमत: शेड्यूलर एक कार्य नहीं है, यह एक प्रक्रिया है जिसे 'शेड्यूलिंग पॉइंट' पर बुलाया जाता है। – Clifford

    +0

    मैं शेड्यूलर फ़ंक्शन को ट्रिगर करने के लिए मुख्य स्रोत के रूप में हार्डवेयर टाइमर इंटरप्ट लेता था। Schuduler फ़ंक्शन सभी कार्य स्विच विवरण, जैसे कि संदर्भ स्विथ और प्राथमिकता समायोजन के लिए ज़िम्मेदार है। लेकिन अब मुझे लगता है कि इसका मतलब यह होगा कि कार्य स्विच समय अनुमानित है। ईरा का जवाब बहुत अच्छा है। – smwikipedia

    0

    इसे आम तौर पर एक समयबद्ध CPU इंटरप्ट

    +0

    मुझे यकीन नहीं है कि यह वास्तव में प्रश्न में जोड़ता है ... पहले से ही एक इंटरप्ट का जिक्र है और सवाल 2010 से है। –

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