दर-मोनोटोनिक शेड्यूलिंग: Difference between revisions

From Vigyanwiki
No edit summary
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[कंप्यूटर विज्ञान]] में, दर-मोनोटोनिक शेड्यूलिंग (आरएमएस)<ref>{{citation|first1=C. L.|last1=Liu|authorlink1=Chung Laung Liu|first2=J.|last2=Layland|title=Scheduling algorithms for multiprogramming in a hard real-time environment|journal=Journal of the ACM|volume=20|issue=1|year=1973|pages=46–61|doi=10.1145/321738.321743|citeseerx=10.1.1.36.8216|s2cid=207669821}}.</ref> एक प्राथमिकता असाइनमेंट एल्गोरिदम है जिसका उपयोग स्थिर-प्राथमिकता शेड्यूलिंग क्लास के साथ [[रीयल-टाइम ऑपरेटिंग सिस्टम|रीयल-टाइम ऑपदरिंग सिस्टम]] (आरटीओएस) में किया जाता है।<ref>{{citation|first1=Daniel P.|last1=Bovet|first2=Marco|last2=Cesati|title=Understanding the Linux Kernel}}, http://oreilly.com/catalog/linuxkernel/chapter/ch10.html#85347 {{webarchive|url=https://web.archive.org/web/20140921000832/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |date=2014-09-21 }}.</ref> स्थैतिक प्राथमिकताएँ कार्य की चक्र अवधि के अनुसार निर्दिष्ट की जाती हैं, इसलिए छोटी चक्र अवधि के परिणामस्वरूप उच्च कार्य प्राथमिकता प्राप्त होती है।
[[कंप्यूटर विज्ञान]] में, '''दर-मोनोटोनिक शेड्यूलिंग''' (समय-निर्धारण) ('''आरएमएस''')<ref>{{citation|first1=C. L.|last1=Liu|authorlink1=Chung Laung Liu|first2=J.|last2=Layland|title=Scheduling algorithms for multiprogramming in a hard real-time environment|journal=Journal of the ACM|volume=20|issue=1|year=1973|pages=46–61|doi=10.1145/321738.321743|citeseerx=10.1.1.36.8216|s2cid=207669821}}.</ref> प्राथमिकता असाइनमेंट एल्गोरिदम है जिसका उपयोग स्थिर-प्राथमिकता शेड्यूलिंग क्लास के साथ [[रीयल-टाइम ऑपरेटिंग सिस्टम|रीयल-टाइम ऑपदरिंग सिस्टम]] (आरटीओएस) में किया जाता है।<ref>{{citation|first1=Daniel P.|last1=Bovet|first2=Marco|last2=Cesati|title=Understanding the Linux Kernel}}, http://oreilly.com/catalog/linuxkernel/chapter/ch10.html#85347 {{webarchive|url=https://web.archive.org/web/20140921000832/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |date=2014-09-21 }}.</ref> स्थैतिक प्राथमिकताएँ कार्य की चक्र अवधि के अनुसार निर्दिष्ट की जाती हैं, इसलिए छोटी चक्र अवधि के परिणामस्वरूप उच्च कार्य प्राथमिकता प्राप्त होती है।


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


== परिचय ==
== परिचय ==
दर-मोनोटोनिक विश्लेषण का एक सरल संस्करण मानता है कि थ्रेड्स में निम्नलिखित गुण हैं:
दर-मोनोटोनिक विश्लेषण का एक सरल संस्करण मानता है कि थ्रेड्स में निम्नलिखित गुण हैं:


* कोई संसाधन साझाकरण नहीं (प्रक्रियाएँ संसाधनों को साझा नहीं करती हैं, उदाहरण के लिए एक [[कंप्यूटर हार्डवेयर|हार्डवेयर]] संसाधन, एक कतार, या किसी भी प्रकार का [[सेमाफोर (प्रोग्रामिंग)|सेमाफोर]] अवरोधन या गैर-अवरुद्ध (व्यस्त-प्रतीक्षा)) आदि।
* कोई संसाधन साझाकरण नहीं (प्रक्रियाएँ संसाधनों को साझा नहीं करती हैं, उदाहरण के लिए [[कंप्यूटर हार्डवेयर|हार्डवेयर]] संसाधन, कतार, या किसी भी प्रकार का [[सेमाफोर (प्रोग्रामिंग)|सेमाफोर]] अवरोधन या गैर-अवरुद्ध (व्यस्त-प्रतीक्षा)) आदि।
*नियतात्मक समयबद्धन वास्तव में अवधि के बराबर होती हैं।
*नियतात्मक समयबद्धन वास्तव में अवधि के बराबर होती हैं।
*स्थिर प्राथमिकताएं (उच्चतम स्थिर प्राथमिकता वाला कार्य जो तत्काल चलने योग्य है, अन्य सभी कार्यों को शीघ्रता से पूरा करता है)।
*स्थिर प्राथमिकताएं (उच्चतम स्थिर प्राथमिकता वाला कार्य जो तत्काल चलने योग्य है, अन्य सभी कार्यों को शीघ्रता से पूरा करता है)।
Line 12: Line 12:
*प्रसंग परिवर्तन समय और अन्य थ्रेड संचालन स्वतंत्र हैं और मॉडल पर कोई प्रभाव नहीं पड़ता है।
*प्रसंग परिवर्तन समय और अन्य थ्रेड संचालन स्वतंत्र हैं और मॉडल पर कोई प्रभाव नहीं पड़ता है।


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


=== इष्टतमता ===
=== इष्टतमता ===
दर-मोनोटोनिक प्राथमिकता असाइनमेंट दी गई मान्यताओं के तहत इष्टतम है, जिसका अर्थ है कि यदि कोई स्थिर-प्राथमिकता शेड्यूलिंग एल्गोरिथ्म सभी समय सीमा को पूरा कर सकता है, तो दर-मोनोटोनिक एल्गोरिथ्म भी हो सकता है. समय सीमा-मोनोटोनिक शेड्यूलिंग एल्गोरिथ्म भी समान अवधि और समय सीमा के साथ इष्टतम है, वास्तव में इस मामले में एल्गोरिदम समान हैं; के अतिरिक्त, समय-सीमा-मोनोटोनिक शेड्यूलिंग इष्टतम है जब समय सीमा अवधि से कम होती है।<ref>{{citation|first1=J. Y.|last1=Leung|first2=J.|last2=Whitehead|title=On the complexity of fixed-priority scheduling of periodic, real-time tasks|journal=Performance Evaluation|volume=2|issue=4|pages=237–250|year=1982|doi=10.1016/0166-5316(82)90024-4}}.</ref> उस कार्य मॉडल के लिए जिसमें समय सीमा अवधि से अधिक हो सकती है, ऑड्सली का एल्गोरिथ्म इस मॉडल के लिए एक सटीक समयबद्धता परीक्षण के साथ संपन्न है, एक इष्टतम प्राथमिकता असाइनमेंट मिलता है।<ref>{{citation|author=Alan Burns and Andy Wellings|title=Real-Time Systems and Programming Languages|year=2009|publisher=Addison-Wesley|edition=4th|isbn=978-0-321-41745-9|pages=391, 397}}</ref>
दर-मोनोटोनिक प्राथमिकता असाइनमेंट दी गई मान्यताओं के तहत इष्टतम है, जिसका अर्थ है कि यदि कोई स्थिर-प्राथमिकता शेड्यूलिंग एल्गोरिथ्म सभी समय सीमा को पूरा कर सकता है, तो दर-मोनोटोनिक एल्गोरिथ्म भी हो सकता है। समय सीमा-मोनोटोनिक शेड्यूलिंग एल्गोरिथ्म भी समान अवधि और समय सीमा के साथ इष्टतम है, वास्तव में इस स्तिथि में एल्गोरिदम समान हैं; के अतिरिक्त, समय-सीमा-मोनोटोनिक शेड्यूलिंग इष्टतम है जब समय सीमा अवधि से न्यूनतम होती है।<ref>{{citation|first1=J. Y.|last1=Leung|first2=J.|last2=Whitehead|title=On the complexity of fixed-priority scheduling of periodic, real-time tasks|journal=Performance Evaluation|volume=2|issue=4|pages=237–250|year=1982|doi=10.1016/0166-5316(82)90024-4}}.</ref> उस कार्य मॉडल के लिए जिसमें समय सीमा अवधि से अधिक हो सकती है, ऑड्सली का एल्गोरिथ्म इस मॉडल के लिए एक सटीक समयबद्धता परीक्षण के साथ संपन्न है, इष्टतम प्राथमिकता असाइनमेंट मिलता है।<ref>{{citation|author=Alan Burns and Andy Wellings|title=Real-Time Systems and Programming Languages|year=2009|publisher=Addison-Wesley|edition=4th|isbn=978-0-321-41745-9|pages=391, 397}}</ref>
== उपयोग पर ऊपरी सीमा ==
== उपयोग पर ऊपरी सीमा ==


=== कम से कम ऊपरी सीमा ===
=== न्यूनतम ऊपरी सीमा ===
लियू और लेलैंड ( 1973 ) ने प्रमाणित किया कि अद्वितीय अवधि के साथ {{mvar|n}} आवधिक कार्यों के एक सेट के लिए, एक व्यवहार्य अनुसूची जो हमेशा समय सीमा को पूरा करेगी यदि सीपीयू उपयोग एक विशिष्ट सीमा से नीचे है (कार्यों की संख्या के आधार पर)। आरएमएस के लिए समय-निर्धारण परीक्षण है:  
लियू और लेलैंड ( 1973 ) ने प्रमाणित किया कि अद्वितीय अवधि के साथ {{mvar|n}} आवधिक कार्यों के सेट के लिए, व्यवहार्य अनुसूची जो हमेशा समय सीमा को पूरा करेगी यदि सीपीयू उपयोग विशिष्ट सीमा से नीचे है (कार्यों की संख्या के आधार पर)। आरएमएस के लिए समय-निर्धारण परीक्षण है:  
:<math>U = \sum_{i=1}^{n} {U_i} = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq n({2}^{1/n} - 1)</math>
:<math>U = \sum_{i=1}^{n} {U_i} = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq n({2}^{1/n} - 1)</math>
जहां {{mvar|U}} उपयोग कारक है, {{mvar|C<sub>i</sub>}} प्रक्रिया {{mvar|i}} के लिए गणना समय है, {{mvar|T<sub>i</sub>}} प्रक्रिया {{mvar|i}} के लिए रिलीज़ अवधि (एक अवधि बाद की समय सीमा के साथ) है, और {{mvar|n}} निर्धारित की जाने वाली प्रक्रियाओं की संख्या है। उदाहरण के लिए, दो प्रक्रियाओं के लिए {{mvar|U&nbsp;≤&nbsp;0.8284}}। जब प्रक्रियाओं की संख्या अनंत की ओर प्रवृत्त होती है, तो यह अभिव्यक्ति इस ओर प्रवृत्त होगी:
जहां {{mvar|U}} उपयोग कारक है, {{mvar|C<sub>i</sub>}} प्रक्रिया {{mvar|i}} के लिए गणना समय है, {{mvar|T<sub>i</sub>}} प्रक्रिया {{mvar|i}} के लिए रिलीज़ अवधि (एक अवधि बाद की समय सीमा के साथ) है, और {{mvar|n}} निर्धारित की जाने वाली प्रक्रियाओं की संख्या है। उदाहरण के लिए, दो प्रक्रियाओं के लिए {{mvar|U&nbsp;≤&nbsp;0.8284}}। जब प्रक्रियाओं की संख्या अनंत की ओर प्रवृत्त होती है, तो यह अभिव्यक्ति इस ओर प्रवृत्त होगी:


:<math>\lim_{n \rightarrow \infty} n(\sqrt[n]{2} - 1) = \ln 2 \approx 0.693147\ldots</math>
:<math>\lim_{n \rightarrow \infty} n(\sqrt[n]{2} - 1) = \ln 2 \approx 0.693147\ldots</math>
इसलिए, <math>{n} \geq {10}</math> होने पर एक मोटा अनुमान यह है कि यदि कुल सीपीयू उपयोग, {{mvar|U}}, 70% से कम है तो आरएमएस सभी समय सीमा को पूरा कर सकता है। सीपीयू का अन्य 30% निम्न-प्राथमिकता, गैर-वास्तविक समय कार्यों के लिए समर्पित किया जा सकता है। {{mvar|n}} के छोटे मानों के लिए या ऐसे मामलों में जहां {{mvar|U}} इस अनुमान के करीब है, परिकलित उपयोग सीमा का उपयोग किया जाना चाहिए।
इसलिए, <math>{n} \geq {10}</math> होने पर एक मोटा अनुमान यह है कि यदि कुल सीपीयू उपयोग, {{mvar|U}}, 70% से न्यूनतम है तो आरएमएस सभी समय सीमा को पूरा कर सकता है। सीपीयू का अन्य 30% निम्न-प्राथमिकता, गैर-वास्तविक समय कार्यों के लिए समर्पित किया जा सकता है। {{mvar|n}} के छोटे मानों के लिए या ऐसे मामलों में जहां {{mvar|U}} इस अनुमान के करीब है, परिकलित उपयोग सीमा का उपयोग किया जाना चाहिए।


व्यवहार में, <math>{i^{th}}</math> प्रक्रिया के लिए, <math>{C_i}</math> को सबसे खराब स्थिति (यानी सबसे लंबी) गणना समय का प्रतिनिधित्व करना चाहिए और <math>{T_i}</math> को सबसे खराब स्थिति की समय सीमा (यानी सबसे छोटी अवधि) का प्रतिनिधित्व करना चाहिए जिसमें सभी प्रसंस्करण होना चाहिए।
व्यवहार में, <math>{i^{th}}</math> प्रक्रिया के लिए, <math>{C_i}</math> को सबसे खराब स्थिति (यानी सबसे लंबी) गणना समय का प्रतिनिधित्व करना चाहिए और <math>{T_i}</math> को सबसे खराब स्थिति की समय सीमा (यानी सबसे छोटी अवधि) का प्रतिनिधित्व करना चाहिए जिसमें सभी प्रसंस्करण होना चाहिए।
Line 30: Line 30:
=== हार्मोनिक कार्य सेट के लिए ऊपरी सीमा ===
=== हार्मोनिक कार्य सेट के लिए ऊपरी सीमा ===


लियू और लेलैंड ने नोट किया कि इस सीमा को 1.0 के अधिकतम संभव मान तक शिथिल किया जा सकता है, यदि कार्यों के लिए <math>{T_m}</math>, <math>{T_i}</math> जहां <math>{T_m} {>} {T_i}</math>और <math>i = 1...m-1</math>, <math>{T_m}</math> एक पूर्णांक गुणक है <math>{T_i}</math>, जिसका अर्थ यह है कि सभी कार्यों की एक अवधि होती है जो न केवल सबसे छोटी अवधि का गुणज होती है, <math>{T_1}</math>, बल्कि इसके बजाय किसी भी कार्य की अवधि सभी छोटी अवधियों का गुणज होती है। इसे हार्मोनिक कार्य सेट के रूप में जाना जाता है। इसका एक उदाहरण होगा <math>[{T_1},{T_2},{T_3},{T_4}] = [1, 3, 6, 12]</math>। लियू और लेलैंड द्वारा यह स्वीकार किया गया है कि एक सामंजस्यपूर्ण कार्य निर्धारित करना हमेशा संभव नहीं होता है और व्यवहार में अन्य शमन उपाय, जैसे कि सॉफ्ट-टाइम समय सीमा वाले कार्यों के लिए बफरिंग या उच्च सीमा की अनुमति देने के लिए गतिशील प्राथमिकता असाइनमेंट दृष्टिकोण का उपयोग किया जा सकता है।
लियू और लेलैंड ने नोट किया कि इस सीमा को 1.0 के अधिकतम संभव मान तक शिथिल किया जा सकता है, यदि कार्यों के लिए <math>{T_m}</math>, <math>{T_i}</math> जहां <math>{T_m} {>} {T_i}</math>और <math>i = 1...m-1</math>, <math>{T_m}</math> एक पूर्णांक गुणक है <math>{T_i}</math>, जिसका अर्थ यह है कि सभी कार्यों की एक अवधि होती है जो न केवल सबसे छोटी अवधि का गुणज होती है, <math>{T_1}</math>, बल्कि इसके बजाय किसी भी कार्य की अवधि सभी छोटी अवधियों का गुणज होती है। इसे हार्मोनिक कार्य सेट के रूप में जाना जाता है। इसका एक उदाहरण होगा<math>[{T_1},{T_2},{T_3},{T_4}] = [1, 3, 6, 12]</math>। लियू और लेलैंड द्वारा यह स्वीकार किया गया है कि एक सामंजस्यपूर्ण कार्य निर्धारित करना हमेशा संभव नहीं होता है और व्यवहार में अन्य शमन उपाय, जैसे कि सॉफ्ट-टाइम समय सीमा वाले कार्यों के लिए बफरिंग या उच्च सीमा की अनुमति देने के लिए गतिशील प्राथमिकता असाइनमेंट दृष्टिकोण का उपयोग किया जा सकता है।


=== हार्मोनिक जंजीरों का सामान्यीकरण ===
=== हार्मोनिक श्रृंखलाओं का सामान्यीकरण ===


कुओ और मोक<ref>{{citation|authors=T.-W. Kuo, A.K. Mok|title=Load adjustment in adaptive real-time systems|journal=Proc. Real-Time Systems Symposium|year=1991|pages=160–170|doi=10.1109/REAL.1991.160369|isbn=0-8186-2450-7|s2cid=31127772}}</ref> से बना एक कार्य सेट के लिए दिखाया गया है {{mvar|K}} हार्मोनिक टास्क सबसेट (हार्मोनिक चेन के रूप में जाना जाता है), कम से कम ऊपरी बाउंड टेस्ट बन जाता है:
कुओ और मोक <ref>{{citation|authors=T.-W. Kuo, A.K. Mok|title=Load adjustment in adaptive real-time systems|journal=Proc. Real-Time Systems Symposium|year=1991|pages=160–170|doi=10.1109/REAL.1991.160369|isbn=0-8186-2450-7|s2cid=31127772}}</ref> ने दिखाया कि {{mvar|K}} हार्मोनिक कार्य उपसमुच्चय (जिसे ''हार्मोनिक श्रृंखला'' के रूप में जाना जाता है) से बने कार्य सेट के लिए, सबसे न्यूनतम ऊपरी सीमा परीक्षण बन जाता है:
:<math>U = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq K({2}^{1/K} - 1)</math>
:<math>U = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq K({2}^{1/K} - 1)</math>
ऐसे उदाहरण में जहां कोई भी कार्य अवधि दूसरे का पूर्णांक गुणक नहीं है, कार्य सेट को बना हुआ माना जा सकता है {{mvar|n}} आकार 1 के हार्मोनिक कार्य सबसेट और इसलिए <math>{K}{=}{n}</math>, जो इस सामान्यीकरण को लियू और लेलैंड की सबसे कम ऊपरी सीमा के बराबर बनाता है। कब <math>{K}{=}{1}</math>, ऊपरी सीमा 1.0 हो जाती है, जो पूर्ण उपयोग का प्रतिनिधित्व करती है।
ऐसे उदाहरण में जहां कोई भी कार्य अवधि दूसरे का पूर्णांक गुणज नहीं है, कार्य सेट को आकार 1 के {{mvar|n}} हार्मोनिक कार्य उपसमुच्चय से बना माना जा सकता है और इसलिए <math>{K}{=}{n}</math> जो इस सामान्यीकरण को लियू और लेलैंड की न्यूनतम ऊपरी सीमा के बराबर बनाता है। जब <math>{K}{=}{1}</math>, ऊपरी सीमा 1.0 हो जाती है, जो पूर्ण उपयोग का प्रतिनिधित्व करती है।


=== स्टोकेस्टिक सीमा ===
=== स्टोकेस्टिक सीमा ===


यह दिखाया गया है कि एक बेतरतीब ढंग से उत्पन्न आवधिक कार्य प्रणाली आमतौर पर सभी समय सीमा को पूरा करेगी जब उपयोग 88% या उससे कम हो,<ref>{{citation|first1=J.|last1=Lehoczky|first2=L.|last2=Sha|first3=Y.|last3=Ding|contribution=The rate monotonic scheduling algorithm: exact characterization and average case behavior|title=IEEE Real-Time Systems Symposium|pages=166–171|year=1989|doi=10.1109/REAL.1989.63567|isbn=978-0-8186-2004-1|s2cid=206524469}}.</ref> हालांकि यह तथ्य सटीक कार्य आंकड़ों (अवधि, समय सीमा) को जानने पर निर्भर करता है, जिसकी गारंटी सभी कार्य सेटों के लिए नहीं दी जा सकती है, और कुछ मामलों में लेखकों ने पाया कि उपयोग लियू और लेलैंड द्वारा प्रस्तुत न्यूनतम ऊपरी सीमा तक पहुंच गया।
यह दिखाया गया है कि एक यादृच्छिक रूप से उत्पन्न आवधिक कार्य प्रणाली सामान्यतः सभी समय सीमा को पूरा करेगी जब उपयोग 88% या उससे न्यूनतम हो,<ref>{{citation|first1=J.|last1=Lehoczky|first2=L.|last2=Sha|first3=Y.|last3=Ding|contribution=The rate monotonic scheduling algorithm: exact characterization and average case behavior|title=IEEE Real-Time Systems Symposium|pages=166–171|year=1989|doi=10.1109/REAL.1989.63567|isbn=978-0-8186-2004-1|s2cid=206524469}}.</ref> हालांकि यह तथ्य सटीक कार्य आँकड़ों को जानने पर निर्भर करता है (अवधि, समय सीमा) जिसे सभी कार्य सेटों के लिए सुनिश्चित नहीं किया जा सकता है, और कुछ स्थितियों में लेखकों ने पाया कि उपयोग लियू और लेलैंड द्वारा प्रस्तुत न्न्यूनतम ऊपरी सीमा तक पहुंच गया है।


=== हाइपरबोलिक बाउंड ===
=== अतिपरवलयिक बाध्य ===
अतिशयोक्तिपूर्ण बाध्य<ref>{{citation|author1=Enrico Bini |author2=Giorgio C. Buttazzo |author3=Giuseppe M. Buttazzo |title=Rate Monotonic Analysis: the Hyperbolic Bound|journal=IEEE Transactions on Computers|year=2003|volume=52|issue=7|pages=933–942|doi=10.1109/TC.2003.1214341|hdl=11382/200358|hdl-access=free}}</ref> लियू और लेलैंड द्वारा प्रस्तुत की तुलना में समयबद्धता के लिए एक सख्त पर्याप्त स्थिति है:
अतिपरवलयिक बाध्य<ref>{{citation|author1=Enrico Bini |author2=Giorgio C. Buttazzo |author3=Giuseppe M. Buttazzo |title=Rate Monotonic Analysis: the Hyperbolic Bound|journal=IEEE Transactions on Computers|year=2003|volume=52|issue=7|pages=933–942|doi=10.1109/TC.2003.1214341|hdl=11382/200358|hdl-access=free}}</ref> लियू और लेलैंड द्वारा प्रस्तुत की तुलना में समयबद्धता के लिए एक सख्त पर्याप्त स्थिति है:  
:<math>\prod_{i=1}^n (U_i +1) \leq 2</math>,
:<math>\prod_{i=1}^n (U_i +1) \leq 2</math>,
कहाँ {{mvar|U<sub>i</sub>}} प्रत्येक कार्य के लिए सीपीयू उपयोग है। यह सबसे कड़ी ऊपरी सीमा है जिसे केवल व्यक्तिगत कार्य उपयोग कारकों का उपयोग करके पाया जा सकता है।
जहाँ {{mvar|U<sub>i</sub>}} प्रत्येक कार्य के लिए सीपीयू उपयोग है। यह सबसे दृण ऊपरी सीमा है जिसे केवल व्यक्तिगत कार्य उपयोग कारकों का उपयोग करके पाया जा सकता है।


== संसाधन साझा करना ==
== संसाधन साझाकरण ==


कई व्यावहारिक अनुप्रयोगों में, संसाधनों को साझा किया जाता है और असंशोधित आरएमएस [[प्राथमिकता उलटा]] और [[गतिरोध]] के खतरों के अधीन होगा। व्यवहार में, यह पूर्वक्रय को अक्षम करके या प्राथमिकता वंशानुक्रम द्वारा हल किया जाता है। वैकल्पिक तरीके [[लॉक-फ्री और वेट-फ्री एल्गोरिदम]] का उपयोग करना है | लॉक-फ्री एल्गोरिदम या विभिन्न प्राथमिकताओं वाले थ्रेड्स में म्यूटेक्स/सेमाफोर के साझाकरण से बचें। ऐसा इसलिए है ताकि संसाधन संघर्षों का परिणाम पहली जगह में न हो।
कई व्यावहारिक अनुप्रयोगों में, संसाधनों को साझा किया जाता है और असंपरिवर्तित '''आरएमएस''' प्राथमिकता व्युत्क्रम और [[गतिरोध]] के खतरों के अधीन होगा। व्यवहार में, यह पहले से छूट को भंग करके या वरीयता अंतर्निहित द्वारा हल किया जाता है। वैकल्पिक तरीकों में लॉक-फ्री एल्गोरिदम का उपयोग करना या विभिन्न प्राथमिकताओं के साथ धागे में एक म्यूटिक्स/सेमेफोर साझा करने से बचना है। यह ऐसा है कि संसाधन संघर्षों का परिणाम पहली जगह नहीं हो सकता है।


=== पूर्वक्रय को अक्षम करना ===
=== पूर्वक्रय को अक्षम करना ===


* <code>OS_ENTER_CRITICAL()</code> ई> और <code>OS_EXIT_CRITICAL()</code> प्रिमिटिव जो सीपीयू को लॉक करते हैं, रीयल-टाइम कर्नेल में बाधित होते हैं, उदा। माइक्रोसी/ओएस-द्वितीय
* <code>OS_ENTER_CRITICAL()</code> ई> और <code>OS_EXIT_CRITICAL()</code>प्राइमिटिव जो सीपीयू को वास्तविक समय कर्नेल में बाधित करते हैं, उदा। माइक्रोसी/ओएस-II
* <code>splx()</code> ई> प्रिमिटिव्स का परिवार जो डिवाइस के लॉकिंग को बाधित करता है (फ्रीबीएसडी 5.x/6.x<!-- UNIX? -->),
* <code>splx() प्राइमिटिव्स का समुदाय जो उपकरण के लॉकिंग को रोकता है(फ्रीबीएसडी 5.x / 6.x)</code>


=== प्राथमिकता वंशानुक्रम ===
=== प्राथमिकता अंतर्निहितता ===
 
''मूलभूत प्राथमिकता अंतर्निहित प्रोटोकॉल'' <ref>{{citation|first1=B. W.|last1=Lampson|authorlink1=Butler Lampson|first2=D. D.|last2=Redell|title=Experience with processes and monitors in Mesa|journal=Communications of the ACM|volume=23|issue=2|year=1980|pages=105–117|doi=10.1145/358818.358824|citeseerx=10.1.1.46.7240|s2cid=1594544}}.</ref> उस कार्य की प्राथमिकता को बढ़ावा देता है जो संसाधन को उस कार्य की प्राथमिकता में रखता है जो अनुरोध किए जाने के समय उस संसाधन का अनुरोध करता है। संसाधन जारी होने पर, पदोन्नति से पहले का मूल प्राथमिकता स्तर बहाल हो जाता है। यह विधि गतिरोधों को नहीं रोकती है और ''श्रृंखलाबद्ध अवरोधन'' से ग्रस्त है। अर्थात्, यदि कोई उच्च-प्राथमिकता वाला कार्य अनुक्रम में कई साझा संसाधनों तक पहुँचता है, तो उसे प्रत्येक संसाधन के लिए निम्न-प्राथमिकता वाले कार्य पर प्रतीक्षा (ब्लॉक) करनी पड़ सकती है।<ref>{{citation|last=Buttazzo|first=Giorgio|title=Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications|publisher=Springer|location=New York, NY|year=2011|edition=Third|page=225}}</ref> [[लिनक्स कर्नेल]] के [https://rt.wiki.kernel.org/index.php/Main_Page रीयल-टाइम पैच] में इस सूत्र का कार्यान्वयन सम्मिलित है।<ref>{{cite web
* बुनियादी प्राथमिकता विरासत प्रोटोकॉल<ref>{{citation|first1=B. W.|last1=Lampson|authorlink1=Butler Lampson|first2=D. D.|last2=Redell|title=Experience with processes and monitors in Mesa|journal=Communications of the ACM|volume=23|issue=2|year=1980|pages=105–117|doi=10.1145/358818.358824|citeseerx=10.1.1.46.7240|s2cid=1594544}}.</ref> उस कार्य की प्राथमिकता को बढ़ावा देता है जो संसाधन को उस कार्य की प्राथमिकता में रखता है जो अनुरोध किए जाने के समय उस संसाधन का अनुरोध करता है। संसाधन के जारी होने पर, पदोन्नति से पहले मूल प्राथमिकता स्तर बहाल हो जाता है। यह विधि गतिरोध को नहीं रोकती है और जंजीर अवरोधन से ग्रस्त है। अर्थात्, यदि एक उच्च प्राथमिकता वाला कार्य क्रम में कई साझा संसाधनों तक पहुँचता है, तो उसे प्रत्येक संसाधन के लिए कम प्राथमिकता वाले कार्य पर प्रतीक्षा (ब्लॉक) करनी पड़ सकती है।<ref>{{citation|last=Buttazzo|first=Giorgio|title=Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications|publisher=Springer|location=New York, NY|year=2011|edition=Third|page=225}}</ref> [[लिनक्स कर्नेल]] के [https://rt.wiki.kernel.org/index.php/Main_Page रीयल-टाइम पैच] में इस सूत्र का कार्यान्वयन शामिल है।<ref>{{cite web
  | url = https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#How_does_the_CONFIG_PREEMPT_RT_patch_work.3F
  | url = https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#How_does_the_CONFIG_PREEMPT_RT_patch_work.3F
  | title = Real-Time Linux Wiki
  | title = Real-Time Linux Wiki
Line 64: Line 63:
  | publisher = kernel.org
  | publisher = kernel.org
}}</ref>
}}</ref>
* [[प्राथमिकता छत प्रोटोकॉल]]<ref>{{citation|first1=L.|last1=Sha|first2=R.|last2=Rajkumar|first3=J. P.|last3=Lehoczky|title=Priority inheritance protocols: an approach to real-time synchronization|journal=IEEE Transactions on Computers|volume=39|issue=9|year=1990|pages=1175–1185|doi=10.1109/12.57058}}.</ref> प्रत्येक सेमाफोर को सीलिंग प्रायोरिटी निर्दिष्ट करके बेसिक प्रायोरिटी इनहेरिटेंस प्रोटोकॉल को बढ़ाता है, जो उस सेमाफोर तक पहुंचने वाले उच्चतम कार्य की प्राथमिकता है। एक कार्य निम्न प्राथमिकता वाले महत्वपूर्ण खंड को खाली नहीं कर सकता यदि उसकी प्राथमिकता उस अनुभाग के लिए अधिकतम प्राथमिकता से कम है। यह विधि गतिरोध को रोकती है और अवरुद्ध समय को एक कम प्राथमिकता वाले महत्वपूर्ण खंड की अधिकतम लंबाई तक सीमित करती है। यह विधि उप-इष्टतम हो सकती है, जिसमें यह अनावश्यक अवरोध पैदा कर सकती है। प्राथमिकता सीलिंग प्रोटोकॉल [[VxWorks]] रीयल-टाइम कर्नेल में उपलब्ध है। इसे हाईएस्ट लॉकर्स प्रायोरिटी प्रोटोकॉल (HLP) के नाम से भी जाना जाता है।<ref>{{citation|last=Buttazzo|first=Giorgio|title=Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications|publisher=Springer|location=New York, NY|year=2011|edition=Third|page=212}}</ref>
 
प्रायोरिटी इनहेरिटेंस एल्गोरिदम को दो मापदंडों द्वारा चित्रित किया जा सकता है। सबसे पहले, विरासत आलसी है (केवल जब आवश्यक हो) या तत्काल (कोई संघर्ष होने से पहले प्राथमिकता बढ़ाएं)। दूसरा वंशानुक्रम आशावादी (न्यूनतम राशि को बढ़ावा देना) या निराशावादी (न्यूनतम राशि से अधिक बढ़ावा देना) है:
प्राथमिकता सीलिंग प्रोटोकॉल<ref>{{citation|first1=L.|last1=Sha|first2=R.|last2=Rajkumar|first3=J. P.|last3=Lehoczky|title=Priority inheritance protocols: an approach to real-time synchronization|journal=IEEE Transactions on Computers|volume=39|issue=9|year=1990|pages=1175–1185|doi=10.1109/12.57058}}.</ref> प्रत्येक सेमफोर को एक सीलिंग प्राथमिकता प्रदान करके बुनियादी प्राथमिकता अंतर्निहित प्रोटोकॉल को बढ़ाता है, जो सर्वोच्च कार्य की प्राथमिकता है जो कभी भी सेमफोर तक पहुंच जाएगा। यदि उसकी प्राथमिकता उस धारा के लिए अधिकतम प्राथमिकता से न्यूनतम है तो कोई कार्य निम्न प्राथमिकता वाले खंड को पूर्वनिर्धारित नहीं कर सकता है। यह विधि गतिरोधों को रोकती है और एक निम्न-प्राथमिकता महत्वपूर्ण खंड की अधिकांश लंबाई में ब्लॉक समय को सीमाबद्ध करती है। इस विधि को उपापचनीय किया जा सकता है, इसमें यह अनावश्यक अवरोध उत्पन्न कर सकता है। प्राथमिकता सीलिंग प्रोटोकॉल वीएक्सवर्क्स रियल-टाइम कर्नल में उपलब्ध है। इसे उच्चतम लॉकर प्राथमिकता प्रोटोकॉल (एचएलपी) के रूप में भी जाना जाता है।<ref>{{citation|last=Buttazzo|first=Giorgio|title=Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications|publisher=Springer|location=New York, NY|year=2011|edition=Third|page=212}}</ref>
 
प्राथमिकता अंतर्निहित एल्गोरिदम को दो मापदंडों की विशेषता हो सकती है। सबसे पहले, अंतर्निहित लेजी (केवल जब आवश्यक हो) या तत्काल (एक संघर्ष से पहले प्राथमिकता को बढ़ावा दें)। दूसरा अंतर्निहित प्रतिउत्पादक (न्यूनतम मात्रा में वृद्धि) या अनुमानवादी (न्यूनतम मात्रा में वृद्धि) है।


{| class="wikitable"
{| class="wikitable"
|-
|-
!
!
! pessimistic
! पेसिमिस्टिक
! optimistic
! ऑप्टिमिस्टिक
|-
|-
! immediate
! तत्काल
| <code>OS_ENTER_CRITICAL()</code> / <code>OS_EXIT_CRITICAL()</code>
| <code>OS_ENTER_CRITICAL()</code> / <code>OS_EXIT_CRITICAL()</code>
| <code>splx()</code>, highest locker
| <code>splx()</code>,उच्चतम लॉकर
|-
|-
! lazy
! लेजी
|
|
| priority ceiling protocol, basic priority inheritance protocol
| प्राथमिकता सीलिंग प्रोटोकॉल, मूल प्राथमिकता इनहेरिटेंस प्रोटोकॉल
|-
|-
|}
|}
व्यावहारिक रूप से आलसी और तत्काल एल्गोरिदम के बीच कोई गणितीय अंतर नहीं है (लियू-लेलैंड सिस्टम उपयोगिता बाध्यता के संदर्भ में), और तत्काल एल्गोरिदम लागू करने के लिए अधिक कुशल हैं, और इसलिए वे अधिकांश व्यावहारिक प्रणालियों द्वारा उपयोग किए जाते हैं।{{Citation needed|date=October 2007}}
व्यवहार में, लेजी और तत्काल एल्गोरिदम के बीच कोई गणितीय अंतर नहीं है (लियू-लेलैंड सिस्टम उपयोग के संदर्भ में), और तत्काल एल्गोरिदम लागू करने के लिए अधिक कुशल हैं, और इसलिए वे अधिकांश व्यावहारिक प्रणालियों द्वारा उपयोग किए जाते हैं।


बुनियादी प्राथमिकता वंशानुक्रम के उपयोग का एक उदाहरण [[ मंगल पथप्रदर्शक ]] रीसेट बग से संबंधित है <ref>{{Cite web|url=http://research.microsoft.com/~mbj/Mars_Pathfinder/|title=Mike Jones at Microsoft Research}}</ref><ref>{{Cite web |url=http://anthology.spacemonkeys.ca/archives/770-Mars-Pathfinder-Reset-Bug.html |title=मार्स पाथफाइंडर रीसेट बग - रुचि का संकलन|access-date=2008-09-09 |archive-date=2011-10-05 |archive-url=https://web.archive.org/web/20111005024710/http://anthology.spacemonkeys.ca/archives/770-Mars-Pathfinder-Reset-Bug.html |url-status=dead }}</ref> जो सेमाफोर के लिए क्रिएशन फ्लैग को बदलकर मंगल ग्रह पर तय किया गया था ताकि प्राथमिकता इनहेरिटेंस को सक्षम किया जा सके।
बुनियादी प्राथमिकता अंतर्निहित के उपयोग का एक उदाहरण "मार्स पाथफाइंडर रीसेट बग"<ref>{{Cite web|url=http://research.microsoft.com/~mbj/Mars_Pathfinder/|title=Mike Jones at Microsoft Research}}</ref><ref>{{Cite web |url=http://anthology.spacemonkeys.ca/archives/770-Mars-Pathfinder-Reset-Bug.html |title=मार्स पाथफाइंडर रीसेट बग - रुचि का संकलन|access-date=2008-09-09 |archive-date=2011-10-05 |archive-url=https://web.archive.org/web/20111005024710/http://anthology.spacemonkeys.ca/archives/770-Mars-Pathfinder-Reset-Bug.html |url-status=dead }}</ref> से संबंधित है, सेमाफोर के लिए निर्माण ध्वज को मंगल में बदल दिया गया ताकि प्राथमिकता अन्तर्निहित को सक्षम बनाया जा सके।


== [[इंटरप्ट सर्विस रूटीन]] ==
== [[इंटरप्ट सर्विस रूटीन]] (सेवा नियमित अवरोध) ==


सभी इंटरप्ट सर्विस रूटीन (ISRs), चाहे उनके पास एक कठिन वास्तविक समय की समय सीमा हो या नहीं, उन मामलों में शेड्यूल करने की क्षमता निर्धारित करने के लिए आरएमएस विश्लेषण में शामिल किया जाना चाहिए जहां ISRs की प्राथमिकताएँ सभी शेड्यूलर-नियंत्रित कार्यों से ऊपर हैं। एक ISR को आरएमएस नियमों के तहत पहले से ही उचित प्राथमिकता दी जा सकती है यदि इसकी प्रसंस्करण अवधि सबसे छोटी, गैर-ISR प्रक्रिया से कम है। हालांकि, एक महत्वपूर्ण समय सीमा के साथ किसी भी गैर-आईएसआर प्रक्रिया अवधि की तुलना में लंबी अवधि/समय सीमा के साथ एक आईएसआर आरएमएस के उल्लंघन में परिणाम देता है और कार्य सेट की समयबद्धता निर्धारित करने के लिए गणना की गई सीमा के उपयोग को रोकता है।
सभी इंटरप्ट सर्विस रूटीन (आईएसआर), चाहे उनके पास कठिन वास्तविक समय की समय सीमा हो या नहीं, उन स्तिथियों में शेड्यूलेबिलिटी निर्धारित करने के लिए आरएमएस विश्लेषण में सम्मिलित किया जाना चाहिए जहां आईएसआर की प्राथमिकताएं सभी शेड्यूलर-नियंत्रित कार्यों से ऊपर हैं। आईएसआर को पहले से ही आरएमएस नियमों के तहत उचित रूप से प्राथमिकता दी जा सकती है यदि इसकी प्रसंस्करण अवधि सबसे छोटी, गैर-आईएसआर प्रक्रिया से न्यूनतम है। हालाँकि, महत्वपूर्ण समय सीमा के साथ किसी भी गैर-आईएसआर प्रक्रिया अवधि से अधिक अवधि/समय सीमा वाले आईएसआर के परिणामस्वरूप आरएमएस का उल्लंघन होता है और किसी कार्य सेट की शेड्यूलेबिलिटी निर्धारित करने के लिए गणना की गई सीमाओं के उपयोग को रोकता है।


=== गलत प्राथमिकता वाले आईएसआर को कम करना ===
=== गलत प्राथमिकता वाले ISRs को न्यूनतम करना ===


गलत-प्राथमिकता वाले ISR को कम करने का एक तरीका यह है कि यदि संभव हो तो ISR की अवधि को कम से कम अवधि के बराबर करके विश्लेषण को समायोजित किया जाए। इस छोटी अवधि को लागू करने के परिणामस्वरूप प्राथमिकता दी जाती है जो आरएमएस के अनुरूप होती है, लेकिन इसके परिणामस्वरूप आईएसआर के लिए एक उच्च उपयोग कारक होता है और इसलिए कुल उपयोग कारक के लिए, जो अभी भी स्वीकार्य सीमा से नीचे हो सकता है और इसलिए समयबद्धता सिद्ध की जा सकती है। एक उदाहरण के रूप में, एक हार्डवेयर ISR पर विचार करें जिसका संगणना समय है, <math>{C_{isr}}</math> 500 माइक्रोसेकंड और एक अवधि की, <math>{T_{isr}}</math>, 4 मिलीसेकंड का। यदि सबसे छोटे अनुसूचक-नियंत्रित कार्य की अवधि है, <math>{T_1}</math> 1 मिलीसेकंड का, तब ISR की प्राथमिकता अधिक होगी, लेकिन दर कम होगी, जो आरएमएस का उल्लंघन करती है। शेड्यूलेबिलिटी साबित करने के प्रयोजनों के लिए, सेट करें <math>{T_{isr}}={T_1}</math> और ISR के लिए उपयोग कारक की पुनर्गणना करें (जो कुल उपयोग कारक को भी बढ़ाता है)। इस मामले में, <math>{U_{isr}}{=}{C_{isr}}/{T_{isr}}</math> से बदल जाएगा <math>{0.5 ms}/{4 ms}{=}0.125</math> को <math>{0.5 ms}/{1 ms}{=}0.5</math>. इस उपयोग कारक का उपयोग कार्य सेट के लिए कुल उपयोग कारक को जोड़ते समय और शेड्यूल करने की क्षमता को साबित करने के लिए ऊपरी सीमा से तुलना करने के लिए किया जाएगा। इस बात पर जोर दिया जाना चाहिए कि ISR की अवधि को समायोजित करना केवल विश्लेषण के लिए है और ISR की सही अवधि अपरिवर्तित रहती है।
गलत-प्राथमिकता वाले आईएसआर को न्यूनतम करने का विधि यह है कि यदि संभव हो तो आईएसआर की अवधि को न्यूनतम अवधि के बराबर करके विश्लेषण को समायोजित किया जाए। इस छोटी अवधि को लागू करने के परिणामस्वरूप प्राथमिकता दी जाती है जो आरएमएस के अनुरूप होती है, लेकिन इसके परिणामस्वरूप आईएसआर के लिए एक उच्च उपयोग कारक होता है और इसलिए कुल उपयोग कारक के लिए, जो अभी भी स्वीकार्य सीमा से नीचे हो सकता है और इसलिए समयबद्धता सिद्ध की जा सकती है। उदाहरण के रूप में, हार्डवेयर आईएसआर पर विचार करें जिसका संगणना समय है, <math>{C_{isr}}</math> 500 माइक्रोसेकंड और अवधि की, <math>{T_{isr}}</math>, 4 मिलीसेकंड का। यदि सबसे छोटे अनुसूचक-नियंत्रित कार्य की अवधि है, <math>{T_1}</math> 1 मिलीसेकंड का, तब आईएसआर की प्राथमिकता अधिक होगी, लेकिन दर न्यूनतम होगी, जो आरएमएस का उल्लंघन करती है। शेड्यूलेबिलिटी साबित करने के प्रयोजनों के लिए, सेट करें <math>{T_{isr}}={T_1}</math> और आईएसआर के लिए उपयोग कारक की पुनर्गणना करें (जो कुल उपयोग कारक को भी बढ़ाता है)। इस स्तिथि में, <math>{U_{isr}}{=}{C_{isr}}/{T_{isr}}</math> से बदल जाएगा <math>{0.5 ms}/{4 ms}{=}0.125</math> को <math>{0.5 ms}/{1 ms}{=}0.5</math>. इस उपयोग कारक का उपयोग कार्य सेट के लिए कुल उपयोग कारक को जोड़ते समय और शेड्यूल करने की क्षमता को साबित करने के लिए ऊपरी सीमा से तुलना करने के लिए किया जाएगा। इस बात पर जोर दिया जाना चाहिए कि आईएसआर की अवधि को समायोजित करना केवल विश्लेषण के लिए है और आईएसआर की सही अवधि अपरिवर्तित रहती है।


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


== उदाहरण ==
== उदाहरण ==
Line 102: Line 103:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Process
! प्रक्रिया
! Execution time
! निष्पादन समय
! Period
! अवधि
|-
|-
! P1
! P1
Line 119: Line 120:
|-
|-
|}
|}
आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे कम अवधि) है और इसलिए उसकी सर्वोच्च प्राथमिकता होगी, उसके बाद P1 और अंत में P3 होगी।
आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे न्यूनतम अवधि) है और इसलिए उसकी सर्वोच्च प्राथमिकता होगी, उसके बाद P1 और अंत में P3 होगी।


==== कम से कम ऊपरी बाउंड ====
==== न्यूनतम ऊपरी सीमा ====


उपयोगिता होगी: <math>\frac{1}{8} + \frac{2}{5} + \frac{2}{10} = 0.725</math>.
उपयोगिता होगी: <math>\frac{1}{8} + \frac{2}{5} + \frac{2}{10} = 0.725</math>.


के लिए पर्याप्त स्थिति <math>3\,</math> प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि सिस्टम शेड्यूल करने योग्य है:
के लिए पर्याप्त स्थिति <math>3\,</math> प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि सिस्टम शेड्यूल (अनुसूची) करने योग्य है:


:<math display="block">{U_{lub}} = 3(2^\frac{1}{3} - 1) = 0.77976 > 0.693\ldots   
:<math display="block">{U_{lub}} = 3(2^\frac{1}{3} - 1) = 0.77976 > 0.693\ldots   
(0.693 \text{ is utilization bound for RMS for } n=\infty \ldots )</math>
(0.693 \text{ is utilization bound for RMS for } n=\infty \ldots )</math>
क्योंकि <math>0.77976 \geq 0.725</math>, और क्योंकि कम से कम ऊपरी सीमा से नीचे होना एक पर्याप्त शर्त है, सिस्टम को शेड्यूल करने योग्य होने की गारंटी है।
क्योंकि <math>0.77976 \geq 0.725</math>, और क्योंकि लिस्ट अपर बाउंड के नीचे होना एक पर्याप्त स्थिति है, इसलिए सिस्टम को शेड्यूल करने की अनुमति है।  


=== उदाहरण 2 ===
=== उदाहरण 2 ===
Line 135: Line 136:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Process
! प्रक्रिया
! Execution time
! निष्पादन समय
! Period
! अवधि
|-
|-
! P1
! P1
Line 152: Line 153:
|-
|-
|}
|}
आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे कम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।
आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे न्यूनतम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।


==== कम से कम ऊपरी बाउंड ====
==== न्यूनतम ऊपरी सीमा ====
लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति <math>3\,</math> प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:
लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति <math>3\,</math> प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:


Line 162: Line 163:
तब से <math>0.77976 {<} 0.7875</math> लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।
तब से <math>0.77976 {<} 0.7875</math> लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।


==== हाइपरबोलिक बाउंड ====
==== अतिपरवलयिक बाध्य ====
सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:
सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:


Line 172: Line 173:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Process
! प्रक्रिया
! Execution time
! निष्पादन समय
! Period
! अवधि
|-
|-
! P1
! P1
Line 189: Line 190:
|-
|-
|}
|}
आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे कम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।
आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे न्यूनतम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।


==== कम से कम ऊपरी बाउंड ====
==== न्यूनतम ऊपरी सीमा ====
लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति <math>3\,</math> प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:
लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति <math>3\,</math> प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:


Line 199: Line 200:
तब से <math>0.77976 {<} 0.81875</math> लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।
तब से <math>0.77976 {<} 0.81875</math> लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।


==== हाइपरबोलिक बाउंड ====
==== अतिपरवलयिक बाध्य ====
सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:
सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:


Line 205: Line 206:
तब से <math>2.0 {<} 2.0475</math> सिस्टम को हाइपरबोलिक बाउंड द्वारा शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।
तब से <math>2.0 {<} 2.0475</math> सिस्टम को हाइपरबोलिक बाउंड द्वारा शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।


==== हार्मोनिक टास्क सेट विश्लेषण ====
==== हार्मोनिक कार्य सेट विश्लेषण ====
क्योंकि <math>{T_3}={2{T_2}}</math>, कार्य 2 और 3 को एक हार्मोनिक कार्य सबसेट माना जा सकता है। टास्क 1 अपना हार्मोनिक टास्क सबसेट बनाता है। इसलिए, हार्मोनिक कार्य सबसेट की संख्या, {{mvar|K}}, है {{mvar|2}}.
क्योंकि <math>{T_3}={2{T_2}}</math>, कार्य 2 और 3 को हार्मोनिक कार्य उपसमूह माना जा सकता है। कार्य 1 अपना स्वयं का हार्मोनिक कार्य उपसमूह बनाता है। इसलिए, हार्मोनिक कार्य उपसमुच्चय, {{mvar|K}}, की संख्या 2 है।<math display="block">{U_{lub,harmonic}} = K(2^\frac{1}{K} - 1) = 2(2^\frac{1}{2} - 1) = 0.828</math>ऊपर (0.81875) परिकलित कुल उपयोग कारक का उपयोग करते हुए, चूंकि <math>0.81875 < 0.828</math> सिस्टम शेड्यूल करने योग्य होने के लिए निर्धारित है।
 
:<math display="block">{U_{lub,harmonic}} = K(2^\frac{1}{K} - 1) = 2(2^\frac{1}{2} - 1) = 0.828</math>
ऊपर (0.81875) परिकलित कुल उपयोग कारक का उपयोग करते हुए, चूंकि <math>0.81875 < 0.828</math> सिस्टम शेड्यूल करने योग्य होने के लिए निर्धारित है।


== यह भी देखें ==
== यह भी देखें ==


*डेडलाइन-मोनोटोनिक शेड्यूलिंग
* समय सीमा-मोनोटोनिक शेड्यूलिंग।
*[[Deos]], एक समय और स्थान विभाजित रीयल-टाइम ऑपदरिंग सिस्टम जिसमें वर्किंग दर मोनोटोनिक शेड्यूलर होता है।
* डीओओएस, समय और स्थान विभाजित वास्तविक समय ऑपरेटिंग सिस्टम है जिसमें एक कार्यशील दर मोनोटोनिक शेड्यूलर सम्मिलित है।
* [[गतिशील प्राथमिकता निर्धारण]]
* [[गतिशील प्राथमिकता निर्धारण|गतिशील प्राथमिकता निर्धारण।]]
*जल्द से जल्द समय सीमा पहले निर्धारण
* सबसे पहले समयसीमा का पहला निर्धारण।
*[[RTEMS]], एक ओपन सोर्स रीयल-टाइम ऑपदरिंग सिस्टम है जिसमें वर्किंग दर मोनोटोनिक शेड्यूलर है।
* आरटीईएमएस ओपन-सोर्स रीयल-टाइम ऑपरेटिंग सिस्टम है जिसमें वर्किंग रेट मोनोटोनिक शेड्यूलर सम्मिलित है।
* [[निर्धारण (कंप्यूटिंग)]]
* शेड्यूलिंग (कंप्यूटिंग)


==संदर्भ==
==संदर्भ==
Line 239: Line 237:


{{Processor scheduling}}
{{Processor scheduling}}
[[Category: प्रोसेसर शेड्यूलिंग एल्गोरिदम]] [[Category: रीयल-टाइम कंप्यूटिंग]]


[[Category: Machine Translated Page]]
[[Category:CS1 maint]]
[[Category:Collapse templates]]
[[Category:Created On 18/06/2023]]
[[Category:Created On 18/06/2023]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates using TemplateData]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia metatemplates]]
[[Category:प्रोसेसर शेड्यूलिंग एल्गोरिदम]]
[[Category:रीयल-टाइम कंप्यूटिंग]]

Latest revision as of 12:03, 6 July 2023

कंप्यूटर विज्ञान में, दर-मोनोटोनिक शेड्यूलिंग (समय-निर्धारण) (आरएमएस)[1] प्राथमिकता असाइनमेंट एल्गोरिदम है जिसका उपयोग स्थिर-प्राथमिकता शेड्यूलिंग क्लास के साथ रीयल-टाइम ऑपदरिंग सिस्टम (आरटीओएस) में किया जाता है।[2] स्थैतिक प्राथमिकताएँ कार्य की चक्र अवधि के अनुसार निर्दिष्ट की जाती हैं, इसलिए छोटी चक्र अवधि के परिणामस्वरूप उच्च कार्य प्राथमिकता प्राप्त होती है।

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

परिचय

दर-मोनोटोनिक विश्लेषण का एक सरल संस्करण मानता है कि थ्रेड्स में निम्नलिखित गुण हैं:

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

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

इष्टतमता

दर-मोनोटोनिक प्राथमिकता असाइनमेंट दी गई मान्यताओं के तहत इष्टतम है, जिसका अर्थ है कि यदि कोई स्थिर-प्राथमिकता शेड्यूलिंग एल्गोरिथ्म सभी समय सीमा को पूरा कर सकता है, तो दर-मोनोटोनिक एल्गोरिथ्म भी हो सकता है। समय सीमा-मोनोटोनिक शेड्यूलिंग एल्गोरिथ्म भी समान अवधि और समय सीमा के साथ इष्टतम है, वास्तव में इस स्तिथि में एल्गोरिदम समान हैं; के अतिरिक्त, समय-सीमा-मोनोटोनिक शेड्यूलिंग इष्टतम है जब समय सीमा अवधि से न्यूनतम होती है।[3] उस कार्य मॉडल के लिए जिसमें समय सीमा अवधि से अधिक हो सकती है, ऑड्सली का एल्गोरिथ्म इस मॉडल के लिए एक सटीक समयबद्धता परीक्षण के साथ संपन्न है, इष्टतम प्राथमिकता असाइनमेंट मिलता है।[4]

उपयोग पर ऊपरी सीमा

न्यूनतम ऊपरी सीमा

लियू और लेलैंड ( 1973 ) ने प्रमाणित किया कि अद्वितीय अवधि के साथ n आवधिक कार्यों के सेट के लिए, व्यवहार्य अनुसूची जो हमेशा समय सीमा को पूरा करेगी यदि सीपीयू उपयोग विशिष्ट सीमा से नीचे है (कार्यों की संख्या के आधार पर)। आरएमएस के लिए समय-निर्धारण परीक्षण है:

जहां U उपयोग कारक है, Ci प्रक्रिया i के लिए गणना समय है, Ti प्रक्रिया i के लिए रिलीज़ अवधि (एक अवधि बाद की समय सीमा के साथ) है, और n निर्धारित की जाने वाली प्रक्रियाओं की संख्या है। उदाहरण के लिए, दो प्रक्रियाओं के लिए U ≤ 0.8284। जब प्रक्रियाओं की संख्या अनंत की ओर प्रवृत्त होती है, तो यह अभिव्यक्ति इस ओर प्रवृत्त होगी:

इसलिए, होने पर एक मोटा अनुमान यह है कि यदि कुल सीपीयू उपयोग, U, 70% से न्यूनतम है तो आरएमएस सभी समय सीमा को पूरा कर सकता है। सीपीयू का अन्य 30% निम्न-प्राथमिकता, गैर-वास्तविक समय कार्यों के लिए समर्पित किया जा सकता है। n के छोटे मानों के लिए या ऐसे मामलों में जहां U इस अनुमान के करीब है, परिकलित उपयोग सीमा का उपयोग किया जाना चाहिए।

व्यवहार में, प्रक्रिया के लिए, को सबसे खराब स्थिति (यानी सबसे लंबी) गणना समय का प्रतिनिधित्व करना चाहिए और को सबसे खराब स्थिति की समय सीमा (यानी सबसे छोटी अवधि) का प्रतिनिधित्व करना चाहिए जिसमें सभी प्रसंस्करण होना चाहिए।

हार्मोनिक कार्य सेट के लिए ऊपरी सीमा

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

हार्मोनिक श्रृंखलाओं का सामान्यीकरण

कुओ और मोक [5] ने दिखाया कि K हार्मोनिक कार्य उपसमुच्चय (जिसे हार्मोनिक श्रृंखला के रूप में जाना जाता है) से बने कार्य सेट के लिए, सबसे न्यूनतम ऊपरी सीमा परीक्षण बन जाता है:

ऐसे उदाहरण में जहां कोई भी कार्य अवधि दूसरे का पूर्णांक गुणज नहीं है, कार्य सेट को आकार 1 के n हार्मोनिक कार्य उपसमुच्चय से बना माना जा सकता है और इसलिए जो इस सामान्यीकरण को लियू और लेलैंड की न्यूनतम ऊपरी सीमा के बराबर बनाता है। जब , ऊपरी सीमा 1.0 हो जाती है, जो पूर्ण उपयोग का प्रतिनिधित्व करती है।

स्टोकेस्टिक सीमा

यह दिखाया गया है कि एक यादृच्छिक रूप से उत्पन्न आवधिक कार्य प्रणाली सामान्यतः सभी समय सीमा को पूरा करेगी जब उपयोग 88% या उससे न्यूनतम हो,[6] हालांकि यह तथ्य सटीक कार्य आँकड़ों को जानने पर निर्भर करता है (अवधि, समय सीमा) जिसे सभी कार्य सेटों के लिए सुनिश्चित नहीं किया जा सकता है, और कुछ स्थितियों में लेखकों ने पाया कि उपयोग लियू और लेलैंड द्वारा प्रस्तुत न्न्यूनतम ऊपरी सीमा तक पहुंच गया है।

अतिपरवलयिक बाध्य

अतिपरवलयिक बाध्य[7] लियू और लेलैंड द्वारा प्रस्तुत की तुलना में समयबद्धता के लिए एक सख्त पर्याप्त स्थिति है:

,

जहाँ Ui प्रत्येक कार्य के लिए सीपीयू उपयोग है। यह सबसे दृण ऊपरी सीमा है जिसे केवल व्यक्तिगत कार्य उपयोग कारकों का उपयोग करके पाया जा सकता है।

संसाधन साझाकरण

कई व्यावहारिक अनुप्रयोगों में, संसाधनों को साझा किया जाता है और असंपरिवर्तित आरएमएस प्राथमिकता व्युत्क्रम और गतिरोध के खतरों के अधीन होगा। व्यवहार में, यह पहले से छूट को भंग करके या वरीयता अंतर्निहित द्वारा हल किया जाता है। वैकल्पिक तरीकों में लॉक-फ्री एल्गोरिदम का उपयोग करना या विभिन्न प्राथमिकताओं के साथ धागे में एक म्यूटिक्स/सेमेफोर साझा करने से बचना है। यह ऐसा है कि संसाधन संघर्षों का परिणाम पहली जगह नहीं हो सकता है।

पूर्वक्रय को अक्षम करना

  • OS_ENTER_CRITICAL() ई> और OS_EXIT_CRITICAL()प्राइमिटिव जो सीपीयू को वास्तविक समय कर्नेल में बाधित करते हैं, उदा। माइक्रोसी/ओएस-II
  • splx() प्राइमिटिव्स का समुदाय जो उपकरण के लॉकिंग को रोकता है(फ्रीबीएसडी 5.x / 6.x)

प्राथमिकता अंतर्निहितता

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

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

प्राथमिकता अंतर्निहित एल्गोरिदम को दो मापदंडों की विशेषता हो सकती है। सबसे पहले, अंतर्निहित लेजी (केवल जब आवश्यक हो) या तत्काल (एक संघर्ष से पहले प्राथमिकता को बढ़ावा दें)। दूसरा अंतर्निहित प्रतिउत्पादक (न्यूनतम मात्रा में वृद्धि) या अनुमानवादी (न्यूनतम मात्रा में वृद्धि) है।

पेसिमिस्टिक ऑप्टिमिस्टिक
तत्काल OS_ENTER_CRITICAL() / OS_EXIT_CRITICAL() splx(),उच्चतम लॉकर
लेजी प्राथमिकता सीलिंग प्रोटोकॉल, मूल प्राथमिकता इनहेरिटेंस प्रोटोकॉल

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

बुनियादी प्राथमिकता अंतर्निहित के उपयोग का एक उदाहरण "मार्स पाथफाइंडर रीसेट बग"[13][14] से संबंधित है, सेमाफोर के लिए निर्माण ध्वज को मंगल में बदल दिया गया ताकि प्राथमिकता अन्तर्निहित को सक्षम बनाया जा सके।

इंटरप्ट सर्विस रूटीन (सेवा नियमित अवरोध)

सभी इंटरप्ट सर्विस रूटीन (आईएसआर), चाहे उनके पास कठिन वास्तविक समय की समय सीमा हो या नहीं, उन स्तिथियों में शेड्यूलेबिलिटी निर्धारित करने के लिए आरएमएस विश्लेषण में सम्मिलित किया जाना चाहिए जहां आईएसआर की प्राथमिकताएं सभी शेड्यूलर-नियंत्रित कार्यों से ऊपर हैं। आईएसआर को पहले से ही आरएमएस नियमों के तहत उचित रूप से प्राथमिकता दी जा सकती है यदि इसकी प्रसंस्करण अवधि सबसे छोटी, गैर-आईएसआर प्रक्रिया से न्यूनतम है। हालाँकि, महत्वपूर्ण समय सीमा के साथ किसी भी गैर-आईएसआर प्रक्रिया अवधि से अधिक अवधि/समय सीमा वाले आईएसआर के परिणामस्वरूप आरएमएस का उल्लंघन होता है और किसी कार्य सेट की शेड्यूलेबिलिटी निर्धारित करने के लिए गणना की गई सीमाओं के उपयोग को रोकता है।

गलत प्राथमिकता वाले ISRs को न्यूनतम करना

गलत-प्राथमिकता वाले आईएसआर को न्यूनतम करने का विधि यह है कि यदि संभव हो तो आईएसआर की अवधि को न्यूनतम अवधि के बराबर करके विश्लेषण को समायोजित किया जाए। इस छोटी अवधि को लागू करने के परिणामस्वरूप प्राथमिकता दी जाती है जो आरएमएस के अनुरूप होती है, लेकिन इसके परिणामस्वरूप आईएसआर के लिए एक उच्च उपयोग कारक होता है और इसलिए कुल उपयोग कारक के लिए, जो अभी भी स्वीकार्य सीमा से नीचे हो सकता है और इसलिए समयबद्धता सिद्ध की जा सकती है। ए उदाहरण के रूप में, हार्डवेयर आईएसआर पर विचार करें जिसका संगणना समय है, 500 माइक्रोसेकंड और अवधि की, , 4 मिलीसेकंड का। यदि सबसे छोटे अनुसूचक-नियंत्रित कार्य की अवधि है, 1 मिलीसेकंड का, तब आईएसआर की प्राथमिकता अधिक होगी, लेकिन दर न्यूनतम होगी, जो आरएमएस का उल्लंघन करती है। शेड्यूलेबिलिटी साबित करने के प्रयोजनों के लिए, सेट करें और आईएसआर के लिए उपयोग कारक की पुनर्गणना करें (जो कुल उपयोग कारक को भी बढ़ाता है)। इस स्तिथि में, से बदल जाएगा को . इस उपयोग कारक का उपयोग कार्य सेट के लिए कुल उपयोग कारक को जोड़ते समय और शेड्यूल करने की क्षमता को साबित करने के लिए ऊपरी सीमा से तुलना करने के लिए किया जाएगा। इस बात पर जोर दिया जाना चाहिए कि आईएसआर की अवधि को समायोजित करना केवल विश्लेषण के लिए है और आईएसआर की सही अवधि अपरिवर्तित रहती है।

गलत-प्रयुक्त आईएसआर को न्यूनतम करने के लिए अन्य विधि यह है कि आईएसआर का उपयोग केवल नया सेमफोर/म्यूटिक्स सेट करने के लिए किया जाए, जबकि समय-प्रधान प्रसंस्करण को एक नई प्रक्रिया में ले जाया जाए, जिसे आरएमएस का उपयोग करके उचित रूप से प्राथमिकता दी गई है और नए सेमफोर/म्यूटेक्स पर ब्लॉक किया जाएगा। अनुसूचिता का निर्धारण करते समय, आईएसआर गतिविधि के कारण सीपीयू उपयोग का मार्जिन न्यूनतम ऊपरी सीमा से घटा दिया जाना चाहिए। नगण्य उपयोग वाले आई एस आर की उपेक्षा की जा सकती है।

उदाहरण

उदाहरण 1

प्रक्रिया निष्पादन समय अवधि
P1 1 8
P2 2 5
P3 2 10

आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे न्यूनतम अवधि) है और इसलिए उसकी सर्वोच्च प्राथमिकता होगी, उसके बाद P1 और अंत में P3 होगी।

न्यूनतम ऊपरी सीमा

उपयोगिता होगी: .

के लिए पर्याप्त स्थिति प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि सिस्टम शेड्यूल (अनुसूची) करने योग्य है:

क्योंकि , और क्योंकि लिस्ट अपर बाउंड के नीचे होना एक पर्याप्त स्थिति है, इसलिए सिस्टम को शेड्यूल करने की अनुमति है।

उदाहरण 2

प्रक्रिया निष्पादन समय अवधि
P1 3 16
P2 2 5
P3 2 10

आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे न्यूनतम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।

न्यूनतम ऊपरी सीमा

लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:

कुल उपयोग होगा: .

तब से लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।

अतिपरवलयिक बाध्य

सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:

यह पाया गया है कि कार्य सेट शेड्यूल करने योग्य है।

उदाहरण 3

प्रक्रिया निष्पादन समय अवधि
P1 7 32
P2 2 5
P3 2 10

आरएमएस के तहत, P2 की उच्चतम दर (यानी सबसे न्यूनतम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।

न्यूनतम ऊपरी सीमा

लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:

कुल उपयोग होगा: .

तब से लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।

अतिपरवलयिक बाध्य

सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:

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

हार्मोनिक कार्य सेट विश्लेषण

क्योंकि , कार्य 2 और 3 को हार्मोनिक कार्य उपसमूह माना जा सकता है। कार्य 1 अपना स्वयं का हार्मोनिक कार्य उपसमूह बनाता है। इसलिए, हार्मोनिक कार्य उपसमुच्चय, K, की संख्या 2 है।

ऊपर (0.81875) परिकलित कुल उपयोग कारक का उपयोग करते हुए, चूंकि सिस्टम शेड्यूल करने योग्य होने के लिए निर्धारित है।

यह भी देखें

  • समय सीमा-मोनोटोनिक शेड्यूलिंग।
  • डीओओएस, समय और स्थान विभाजित वास्तविक समय ऑपरेटिंग सिस्टम है जिसमें एक कार्यशील दर मोनोटोनिक शेड्यूलर सम्मिलित है।
  • गतिशील प्राथमिकता निर्धारण।
  • सबसे पहले समयसीमा का पहला निर्धारण।
  • आरटीईएमएस ओपन-सोर्स रीयल-टाइम ऑपरेटिंग सिस्टम है जिसमें वर्किंग रेट मोनोटोनिक शेड्यूलर सम्मिलित है।
  • शेड्यूलिंग (कंप्यूटिंग)।

संदर्भ

  1. Liu, C. L.; Layland, J. (1973), "Scheduling algorithms for multiprogramming in a hard real-time environment", Journal of the ACM, 20 (1): 46–61, CiteSeerX 10.1.1.36.8216, doi:10.1145/321738.321743, S2CID 207669821.
  2. Bovet, Daniel P.; Cesati, Marco, Understanding the Linux Kernel, http://oreilly.com/catalog/linuxkernel/chapter/ch10.html#85347 Archived 2014-09-21 at the Wayback Machine.
  3. Leung, J. Y.; Whitehead, J. (1982), "On the complexity of fixed-priority scheduling of periodic, real-time tasks", Performance Evaluation, 2 (4): 237–250, doi:10.1016/0166-5316(82)90024-4.
  4. Alan Burns and Andy Wellings (2009), Real-Time Systems and Programming Languages (4th ed.), Addison-Wesley, pp. 391, 397, ISBN 978-0-321-41745-9
  5. T.-W. Kuo, A.K. Mok (1991), "Load adjustment in adaptive real-time systems", Proc. Real-Time Systems Symposium: 160–170, doi:10.1109/REAL.1991.160369, ISBN 0-8186-2450-7, S2CID 31127772{{citation}}: CS1 maint: uses authors parameter (link)
  6. Lehoczky, J.; Sha, L.; Ding, Y. (1989), "The rate monotonic scheduling algorithm: exact characterization and average case behavior", IEEE Real-Time Systems Symposium, pp. 166–171, doi:10.1109/REAL.1989.63567, ISBN 978-0-8186-2004-1, S2CID 206524469.
  7. Enrico Bini; Giorgio C. Buttazzo; Giuseppe M. Buttazzo (2003), "Rate Monotonic Analysis: the Hyperbolic Bound", IEEE Transactions on Computers, 52 (7): 933–942, doi:10.1109/TC.2003.1214341, hdl:11382/200358
  8. Lampson, B. W.; Redell, D. D. (1980), "Experience with processes and monitors in Mesa", Communications of the ACM, 23 (2): 105–117, CiteSeerX 10.1.1.46.7240, doi:10.1145/358818.358824, S2CID 1594544.
  9. Buttazzo, Giorgio (2011), Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (Third ed.), New York, NY: Springer, p. 225
  10. "Real-Time Linux Wiki". kernel.org. 2008-03-26. Retrieved 2014-03-14.
  11. Sha, L.; Rajkumar, R.; Lehoczky, J. P. (1990), "Priority inheritance protocols: an approach to real-time synchronization", IEEE Transactions on Computers, 39 (9): 1175–1185, doi:10.1109/12.57058.
  12. Buttazzo, Giorgio (2011), Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (Third ed.), New York, NY: Springer, p. 212
  13. "Mike Jones at Microsoft Research".
  14. "मार्स पाथफाइंडर रीसेट बग - रुचि का संकलन". Archived from the original on 2011-10-05. Retrieved 2008-09-09.


अग्रिम पठन

  • Buttazzo, Giorgio (2011), Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications, New York, NY: Springer.
  • Alan Burns and Andy Wellings (2009), Real-Time Systems and Programming Languages (4th ed.), Addison-Wesley, ISBN 978-0-321-41745-9
  • Liu, Jane W.S. (2000), Real-time systems, Upper Saddle River, NJ: Prentice Hall, Chapter 6.
  • Joseph, M.; Pandya, P. (1986), "Finding response times in real-time systems", BCS Computer Journal, 29 (5): 390–395, doi:10.1093/comjnl/29.5.390.
  • Sha, Lui; Goodenough, John B. (April 1990), "Real-Time Scheduling Theory and Ada", IEEE Computer, 23 (4): 53–62, doi:10.1109/2.55469, S2CID 12647942


बाहरी संबंध