इंडिव एक बहुत अच्छा जवाब प्रदान करता है, लेकिन यह केवल आंशिक रूप से सटीक है।
सिस्टम का वास्तविक काम थोड़ा अधिक जटिल है।
शेड्यूलर या तो सिंक्रोनस या असिंक्रोनस ऑपरेशंस के परिणामस्वरूप निष्पादित किया जा सकता है।
सिंक्रोनस वर्तमान में निष्पादित कार्य में कोड के परिणामस्वरूप होने वाले संचालन को संदर्भित करता है। इसका एक प्रमुख उदाहरण एक सेमफोर (सेमटेक) लेना होगा।
यदि सेमफोर उपलब्ध नहीं है, तो वर्तमान में निष्पादन कार्य रोक देगा और निष्पादित करने के लिए अब उपलब्ध नहीं होगा। इस बिंदु पर, शेड्यूलर को बुलाया जाएगा और अगले कार्य को निष्पादित किया जाएगा जिसे निष्पादित करना चाहिए और संदर्भ स्विच करना होगा।
असिंक्रोनस ऑपरेशंस अनिवार्य रूप से इंटरप्ट्स का संदर्भ लेते हैं।टाइमर इंटरप्ट्स इंडिव द्वारा बहुत अच्छी तरह से वर्णित थे। हालांकि, विभिन्न तत्वों की एक संख्या निष्पादित करने के लिए एक अवरोध का कारण बन सकता: नेटवर्क यातायात, सेंसर, धारावाहिक डेटा, आदि ...
यह भी याद रखना है कि टाइमर व्यवधान जरूरी एक संदर्भ स्विच का कारण नहीं है अच्छा है! हां, बाधा उत्पन्न होगी, और कार्य में देरी होगी और समय स्लाइस काउंटरों की कमी होगी। हालांकि, यदि समय स्लाइस की समयसीमा समाप्त नहीं हुई है, या उच्च पेंडेड से तैयार राज्य तक प्राथमिक कार्य संक्रमण, तो शेड्यूलर वास्तव में लागू नहीं किया जाएगा, और आप सटीक बिंदु पर मूल कार्य पर वापस आ जाएंगे निष्पादन बाधित था।
ध्यान दें कि शेड्यूलर का अपना संदर्भ नहीं है; यह एक काम नहीं है। यह केवल कोड है जो इसे किसी भी संदर्भ में निष्पादित करता है। या तो इंटरप्ट संदर्भ (एसिंक्रोनस) या invoking कार्य संदर्भ (तुल्यकालिक) से।
जबकि मुझे अन्य ओएस में VxWorks नहीं पता है, शेड्यूलर को आमतौर पर टाइमर इंटरप्ट द्वारा बुलाया जाता है, इसलिए यह एक कार्य वर्तमान में व्यस्त होने पर भी कार्य स्विच कर सकता है। – Rudi