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

From Vigyanwiki
Line 15: Line 15:


=== इष्टतमता ===
=== इष्टतमता ===
दर-मोनोटोनिक प्राथमिकता असाइनमेंट दी गई मान्यताओं के तहत इष्टतम है, जिसका अर्थ है कि यदि कोई स्थिर-प्राथमिकता शेड्यूलिंग एल्गोरिथ्म सभी समय सीमा को पूरा कर सकता है, तो दर-मोनोटोनिक एल्गोरिथ्म भी हो सकता है. समय सीमा-मोनोटोनिक शेड्यूलिंग एल्गोरिथ्म भी समान अवधि और समय सीमा के साथ इष्टतम है, वास्तव में इस मामले में एल्गोरिदम समान हैं; के अतिरिक्त, समय-सीमा-मोनोटोनिक शेड्यूलिंग इष्टतम है जब समय सीमा अवधि से कम होती है।<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>
== उपयोग पर ऊपरी सीमा ==
== उपयोग पर ऊपरी सीमा ==


Line 47: Line 47:
जहाँ {{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>, highest locker
|-
|-
! lazy
! लेजी
|
|
| priority ceiling protocol, basic priority inheritance protocol
| 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> से संबंधित है, सेमाफोर के लिए निर्माण ध्वज को मंगल में बदल दिया गया ताकि प्राथमिकता अन्तर्निहित को सक्षम बनाया जा सके।


== [[इंटरप्ट सर्विस रूटीन]] ==
== [[इंटरप्ट सर्विस रूटीन]] ==

Revision as of 17:35, 25 June 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(), highest locker
लेजी priority ceiling protocol, basic priority inheritance protocol

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

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

इंटरप्ट सर्विस रूटीन

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

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

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

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

उदाहरण

उदाहरण 1

Process Execution time Period
P1 1 8
P2 2 5
P3 2 10

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

कम से कम ऊपरी बाउंड

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

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

क्योंकि , और क्योंकि कम से कम ऊपरी सीमा से नीचे होना एक पर्याप्त शर्त है, सिस्टम को शेड्यूल करने योग्य होने की गारंटी है।

उदाहरण 2

Process Execution time Period
P1 3 16
P2 2 5
P3 2 10

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

कम से कम ऊपरी बाउंड

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

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

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

हाइपरबोलिक बाउंड

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

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

उदाहरण 3

Process Execution time Period
P1 7 32
P2 2 5
P3 2 10

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

कम से कम ऊपरी बाउंड

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

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

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

हाइपरबोलिक बाउंड

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

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

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

क्योंकि , कार्य 2 और 3 को एक हार्मोनिक कार्य सबसेट माना जा सकता है। टास्क 1 अपना हार्मोनिक टास्क सबसेट बनाता है। इसलिए, हार्मोनिक कार्य सबसेट की संख्या, K, है 2.

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

यह भी देखें

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

संदर्भ

  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


बाहरी संबंध