मैं एक एम्बेडेड सिस्टम के लिए शेड्यूलर विकसित कर रहा हूं। यह शेड्यूलर प्रत्येक एक्स मिलीसेकंड प्रत्येक प्रक्रिया को कॉल करेगा; इस समय, प्रत्येक प्रक्रिया के लिए अलग-अलग कॉन्फ़िगर किया जा सकता है।"टकराव" की न्यूनतम संख्या प्राप्त करने के समय प्रक्रियाओं को कैसे प्रसारित करें
सब कुछ कोड किया गया है और इसे हर प्रक्रिया को कॉल करना चाहिए; समस्या मैं का सामना करना पड़ रहा हूँ यह है: कल्पना कीजिए मैं 4 प्रक्रियाओं सेट हर 10, 15, 5 और 30 मिलीसेकंड क्रमशः के नाम से जाना:
A: 10ms
B: 15ms
C: 5ms
D: 30ms
समय के साथ बुला हो जाएगा जिसके परिणामस्वरूप:
A |
A B A B |
C C C C C C C | processes being called
D |
----------------------------------
0 5 10 15 20 25 30 35... ms
समस्या यह है कि जब 30ms तक पहुंचा जाता है, तो सभी प्रक्रियाओं को एक ही पल में (एक के बाद एक) कहा जाता है और इससे यहां से सही निष्पादन में देरी हो सकती है।
इसे प्रत्येक प्रक्रिया में देरी जोड़कर हल किया जा सकता है (लेकिन इसकी कॉलिंग आवृत्ति को संरक्षित करना), इसलिए आवृत्तियों एक-दूसरे के गुणक होने से रोकती हैं। मेरी समस्या यह है कि मुझे नहीं पता कि प्रत्येक प्रक्रिया पर लागू होने में देरी की गणना कैसे करें ताकि टकराव की संख्या कम हो।
क्या इसके लिए कोई ज्ञात एल्गोरिदम है, या कुछ गणितीय मार्गदर्शन है?
धन्यवाद।
अंतराल टकराव के बीच कोई मापदंड हैं भाग्य से बाहर एक तरह से कर रहे हैं उनके अंतराल का एलसीएम होगा। तो आपके पास न्यूनतम टकराव होंगे जब आपके सभी अंतराल एक दूसरे के लिए अपेक्षाकृत प्रमुख होंगे। –