एक आम दृष्टिकोण प्रहरी एक विशेष कार्य के लिए लात (अक्सर या तो सबसे-प्राथमिक या सबसे कम प्राथमिकता, तालमेल/प्रत्येक दृष्टिकोण के लिए मंशा) को सौंपने के लिए, और उसके बाद अन्य सभी कार्य है "चेक इन" है इस काम के साथ।
इस तरह:
यदि व्यवधान लटका दिया जाता है (100% सीपीयू), किकर काम नहीं चलेगा, आप रीसेट
अगर किकर कार्य लटका दिया जाता है, तो आप
रीसेट
यदि किसी अन्य कार्य लटका दिया जाता है, किकर कार्य में, किकर कार्य WDG लात नहीं है कोई चेक देखता है, आप रीसेट
अब विचार करने के लिए कार्यान्वयन विवरण हैं। कुछ लोगों ने प्रत्येक कार्य को वैश्विक चर में अपना समर्पित बिट (परमाणु रूप से) सेट किया है; किकर कार्य जाँच करता है एक विशिष्ट दर पर बिट झंडे के इस समूह है, और साफ करता है/फिर सेट करता है, जब सभी लोग में जाँच की है (WDG लात, निश्चित रूप से के साथ।) मैं प्लेग की तरह वैश्विक त्याग और इस दृष्टिकोण से बचें। आरटीओएस इवेंट झंडे कुछ हद तक समान तंत्र प्रदान करते हैं जो अधिक सुरुचिपूर्ण है।
मैं आम तौर पर घटना पर ही आधारित प्रणाली के रूप में मेरी एम्बेडेड सिस्टम डिजाइन। इस मामले में, प्रत्येक कार्य एक विशिष्ट स्थान पर ब्लॉक करता है - एक संदेश कतार पर। सभी कार्य (और आईएसआर) घटनाओं/संदेशों को भेजकर एक-दूसरे के साथ संवाद करते हैं। इस तरह, आप एक काम में जाँच नहीं है क्योंकि यह एक सेमाफोर "वहाँ नीचे रास्ता" पर (खेद है, एक बहुत लेखन के बिना ब्लॉक किया गया है कि अगर कोई मतलब नहीं है, और मैं यह बेहतर व्याख्या नहीं कर सकते बारे में चिंता करने की जरूरत नहीं है)।
इसके अलावा वहाँ विचार है - कार्यों में "स्वायत्त" की जाँच करें या वे उत्तर/किकर कार्य से एक अनुरोध का जवाब करते हैं। स्वायत्त - उदाहरण के लिए, एक बार एक बार, प्रत्येक कार्य को अपनी कतार में एक घटना प्राप्त होती है "किकर कार्य बताएं कि आप अभी भी जीवित हैं"।उत्तर-अनुरोध - एक बार एक सेकंड (या जो कुछ भी), किकर कार्य सभी को (कतारों के माध्यम से) "चेक इन करने के लिए समय" बताता है - और अंत में प्रत्येक कार्य अपनी कतार चलाता है, अनुरोध और उत्तर प्राप्त करता है। कार्य प्राथमिकताओं, कतार सिद्धांत, आदि के विचार लागू होते हैं।
इस बिल्ली को त्वचा के 100 तरीके हैं, लेकिन डब्ल्यूडीजी को लात मारने के लिए जिम्मेदार एक ही कार्य का बुनियादी सिद्धांत और किकर कार्य तक अन्य कार्यों को फनल करना बहुत मानक है।
इस प्रश्न के दायरे के बाहर - कम से कम एक अन्य पहलू पर विचार करना है - और यह इंटरप्ट से निपट रहा है। यदि ऊपर आईएसआर सीपीयू (अच्छा) को घुमा रहा है, तो ऊपर वर्णित विधि डब्लूडीजी रीसेट को ट्रिगर करेगी, लेकिन विपरीत परिदृश्य के बारे में क्या - एक आईएसआर (दुख की बात है) गलती से और अनजाने में अक्षम हो गया है। कई परिदृश्यों में, यह पकड़ा नहीं जाएगा, और आपका सिस्टम अभी भी डब्लूडीजी लाएगा, फिर भी आपके सिस्टम का हिस्सा अपंग है। मजेदार सामान, यही कारण है कि मैं एम्बेडेड विकास प्यार करता हूँ।
हम एक निगरानी कि RTOS या एक वास्तविक हार्डवेयर प्रहरी टाइमर कि RTOS सेवाओं का हिस्सा है के बारे में ले रहे हैं? –