माइक्रो-कंट्रोलर ऑपरेटिंग सिस्टम: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Real-time operating system}} {{Infobox OS | name = MicroC/OS (μC/OS) | logo = | caption = | developer = Micrium, Inc.,<br/>Silicon Labs | family = | wo...")
 
No edit summary
Line 63: Line 63:


माइक्रोसी/ओएस सी में कई कार्यों को परिभाषित करने की अनुमति देता है, जिनमें से प्रत्येक एक स्वतंत्र थ्रेड या कार्य के रूप में निष्पादित हो सकता है। प्रत्येक कार्य एक अलग प्राथमिकता पर चलता है, और चलता है जैसे कि वह [[सेंट्रल प्रोसेसिंग यूनिट]] (सीपीयू) का स्वामी है। कम प्राथमिकता वाले कार्यों को किसी भी समय उच्च प्राथमिकता वाले कार्यों से छूट दी जा सकती है। उच्च प्राथमिकता वाले कार्य निम्न प्राथमिकता वाले कार्यों को निष्पादित करने की अनुमति देने के लिए ऑपरेटिंग सिस्टम (OS) सेवाओं (जैसे विलंब या घटना) का उपयोग करते हैं। ओएस सेवाएं कार्यों और मेमोरी के प्रबंधन, कार्यों के बीच संचार और समय के लिए प्रदान की जाती हैं।<ref>{{cite web |url=http://people.ece.cornell.edu/land/courses/ece5760/NiosII_muCOS/ |title=NiosII GCC with MicroC/OS |author=<!--Unstated--> |date=June 2006 |website=School of Electrical and Computer Engineering |publisher=Cornell University |access-date=25 April 2017}}</ref>
माइक्रोसी/ओएस सी में कई कार्यों को परिभाषित करने की अनुमति देता है, जिनमें से प्रत्येक एक स्वतंत्र थ्रेड या कार्य के रूप में निष्पादित हो सकता है। प्रत्येक कार्य एक अलग प्राथमिकता पर चलता है, और चलता है जैसे कि वह [[सेंट्रल प्रोसेसिंग यूनिट]] (सीपीयू) का स्वामी है। कम प्राथमिकता वाले कार्यों को किसी भी समय उच्च प्राथमिकता वाले कार्यों से छूट दी जा सकती है। उच्च प्राथमिकता वाले कार्य निम्न प्राथमिकता वाले कार्यों को निष्पादित करने की अनुमति देने के लिए ऑपरेटिंग सिस्टम (OS) सेवाओं (जैसे विलंब या घटना) का उपयोग करते हैं। ओएस सेवाएं कार्यों और मेमोरी के प्रबंधन, कार्यों के बीच संचार और समय के लिए प्रदान की जाती हैं।<ref>{{cite web |url=http://people.ece.cornell.edu/land/courses/ece5760/NiosII_muCOS/ |title=NiosII GCC with MicroC/OS |author=<!--Unstated--> |date=June 2006 |website=School of Electrical and Computer Engineering |publisher=Cornell University |access-date=25 April 2017}}</ref>
== इतिहास ==
== इतिहास ==
MicroC/OS कर्नेल मूल रूप से एंबेडेड सिस्टम्स प्रोग्रामिंग पत्रिका में तीन-भाग के लेख और Labrosse द्वारा μC/OS द रियल-टाइम कर्नेल में प्रकाशित किया गया था।<ref>{{cite book |last=Labrosse |first=Jean J. |date=15 June 2002 |title=μC/OS The Real-Time Kernel |edition=2nd |publisher=CRC Press |isbn=978-1578201037}}</ref> उन्होंने पहले अपने स्वयं के उपयोग के लिए विकसित एक [[सॉफ्टवेयर पोर्टेबिलिटी]] ओएस के इंटर्नल का वर्णन करने का इरादा किया था, लेकिन बाद में इसे संस्करण II और III में अपनी कंपनी माइक्रियम, इंक में एक वाणिज्यिक उत्पाद के रूप में विकसित किया।
MicroC/OS कर्नेल मूल रूप से एंबेडेड सिस्टम्स प्रोग्रामिंग पत्रिका में तीन-भाग के लेख और Labrosse द्वारा μC/OS द रियल-टाइम कर्नेल में प्रकाशित किया गया था।<ref>{{cite book |last=Labrosse |first=Jean J. |date=15 June 2002 |title=μC/OS The Real-Time Kernel |edition=2nd |publisher=CRC Press |isbn=978-1578201037}}</ref> उन्होंने पहले अपने स्वयं के उपयोग के लिए विकसित एक [[सॉफ्टवेयर पोर्टेबिलिटी]] ओएस के इंटर्नल का वर्णन करने का इरादा किया था, किन्तु बाद में इसे संस्करण II और III में अपनी कंपनी माइक्रियम, इंक में एक वाणिज्यिक उत्पाद के रूप में विकसित किया।


2016 में सिलिकॉन प्रयोगशालाओं द्वारा माइक्रीम, इंक। का अधिग्रहण किया गया था<ref>{{cite web|url=https://weston-embedded.com/about-micrium|title=What is Micrium?|access-date=2023-01-04|publisher=Weston Embedded Solutions}}</ref> और इसे बाद में [[अपाचे लाइसेंस]] के तहत ओपन-सोर्स के रूप में जारी किया गया।
2016 में सिलिकॉन प्रयोगशालाओं द्वारा माइक्रीम, इंक। का अधिग्रहण किया गया था<ref>{{cite web|url=https://weston-embedded.com/about-micrium|title=What is Micrium?|access-date=2023-01-04|publisher=Weston Embedded Solutions}}</ref> और इसे बाद में [[अपाचे लाइसेंस]] के अनुसार  ओपन-सोर्स के रूप में जारी किया गया।


सिलिकॉन लैब्स अपने स्वयं के सिलिकॉन पर उपयोग के लिए माइक्रीम ओएस नामक ओपन-सोर्स उत्पाद को बनाए रखना जारी रखती है<ref>{{cite web|url=https://www.silabs.com/developers/micrium|title=माइक्रोरियम सॉफ्टवेयर और दस्तावेज़ीकरण|access-date=2023-01-04}}</ref> और माइक्रीम, इंक. के पूर्व कर्मचारियों का एक समूह (लैब्रोस सहित) μC/OS और सीज़ियम आरटीओएस दोनों के लिए परामर्श और समर्थन प्रदान करता है, ओपन-सोर्स रिलीज के ठीक बाद बनाया गया एक मालिकाना फोर्क।<ref>{{cite web|url=https://weston-embedded.com/why-cesium|title=Why Cesium RTOS?|access-date=2023-01-04|publisher= Weston Embedded Solutions}}</ref>
सिलिकॉन लैब्स अपने स्वयं के सिलिकॉन पर उपयोग के लिए माइक्रीम ओएस नामक ओपन-सोर्स उत्पाद को बनाए रखना जारी रखती है<ref>{{cite web|url=https://www.silabs.com/developers/micrium|title=माइक्रोरियम सॉफ्टवेयर और दस्तावेज़ीकरण|access-date=2023-01-04}}</ref> और माइक्रीम, इंक. के पूर्व कर्मचारियों का एक समूह (लैब्रोस सहित) μC/OS और सीज़ियम आरटीओएस दोनों के लिए परामर्श और समर्थन प्रदान करता है, ओपन-सोर्स रिलीज के ठीक बाद बनाया गया एक मालिकाना फोर्क।<ref>{{cite web|url=https://weston-embedded.com/why-cesium|title=Why Cesium RTOS?|access-date=2023-01-04|publisher= Weston Embedded Solutions}}</ref>
==μC/OS-II ==
==μC/OS-II ==
μC/OS के लिए लिखे गए स्रोत कोड के आधार पर, और 1998 में एक वाणिज्यिक उत्पाद के रूप में पेश किया गया, μC/OS-II एक सॉफ्टवेयर पोर्टेबिलिटी, रोम-सक्षम, [[ मापनीय ]], प्रीमेप्टिव, रियल-टाइम, नियतात्मक, मल्टीटास्किंग [[कर्नेल (ऑपरेटिंग सिस्टम)]] है। माइक्रोप्रोसेसरों और [[डिजिटल सिग्नल प्रोसेसर]] (डीएसपी) के लिए। यह 64 कार्यों तक का प्रबंधन करता है। इसका आकार बढ़ाया जा सकता है (5 और 24 किलोबाइट्स के बीच) केवल किसी दिए गए उपयोग के लिए आवश्यक सुविधाओं को शामिल करने के लिए।
μC/OS के लिए लिखे गए स्रोत कोड के आधार पर, और 1998 में एक वाणिज्यिक उत्पाद के रूप में प्रस्तुत किया गया, μC/OS-II एक सॉफ्टवेयर पोर्टेबिलिटी, रोम-सक्षम, [[ मापनीय ]], प्रीमेप्टिव, रियल-टाइम, नियतात्मक, मल्टीटास्किंग [[कर्नेल (ऑपरेटिंग सिस्टम)]] है। माइक्रोप्रोसेसरों और [[डिजिटल सिग्नल प्रोसेसर]] (डीएसपी) के लिए। यह 64 कार्यों तक का प्रबंधन करता है। इसका आकार बढ़ाया जा सकता है (5 और 24 किलोबाइट्स के बीच) केवल किसी दिए गए उपयोग के लिए आवश्यक सुविधाओं को सम्मिलित करने के लिए।


अधिकांश μC/OS-II अत्यधिक पोर्टेबल [[ANSI C]] में लिखे गए हैं, जिसमें लक्ष्य माइक्रोप्रोसेसर-विशिष्ट कोड असेंबली भाषा में लिखा गया है। दूसरे प्रोसेसर में [[ में porting ]] को आसान बनाने के लिए बाद वाले का उपयोग कम से कम किया जाता है।
अधिकांश μC/OS-II अत्यधिक पोर्टेबल [[ANSI C]] में लिखे गए हैं, जिसमें लक्ष्य माइक्रोप्रोसेसर-विशिष्ट कोड असेंबली भाषा में लिखा गया है। दूसरे प्रोसेसर में [[ में porting ]] को आसान बनाने के लिए बाद वाले का उपयोग कम से कम किया जाता है।


=== एम्बेडेड सिस्टम में उपयोग ===
=== एम्बेडेड सिस्टम में उपयोग ===
μC/OS-II एम्बेडेड उपयोगों के लिए डिज़ाइन किया गया था। यदि निर्माता के पास उचित टूल चेन (यानी, सी कंपाइलर, असेंबलर और लिंकर-लोकेटर) है, तो μC/OS-II को उत्पाद के हिस्से के रूप में एम्बेड किया जा सकता है।
μC/OS-II एम्बेडेड उपयोगों के लिए डिज़ाइन किया गया था। यदि निर्माता के पास उचित टूल चेन (अर्थात, सी कंपाइलर, असेंबलर और लिंकर-लोकेटर) है, तो μC/OS-II को उत्पाद के हिस्से के रूप में एम्बेड किया जा सकता है।


μC/OS-II का उपयोग कई एम्बेडेड सिस्टम में किया जाता है, जिनमें निम्न शामिल हैं:
μC/OS-II का उपयोग कई एम्बेडेड सिस्टम में किया जाता है, जिनमें निम्न सम्मिलित हैं:
* [[वैमानिकी]]
* [[वैमानिकी]]
* चिकित्सा उपकरण और उपकरण
* चिकित्सा उपकरण और उपकरण
Line 98: Line 94:
* प्रतीक्षा (एक घटना के लिए)
* प्रतीक्षा (एक घटना के लिए)
*बाधित ([[इंटरप्ट हैंडलर]] (ISR))
*बाधित ([[इंटरप्ट हैंडलर]] (ISR))
इसके अलावा, यह 64 कार्यों तक का प्रबंधन कर सकता है। हालाँकि, यह अनुशंसा की जाती है कि इनमें से आठ कार्यों को μC/OS-II के लिए आरक्षित किया जाए, एक आवेदन को 56 कार्यों तक छोड़ दिया जाए।<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=77|edition=2nd}}</ref>
इसके अतिरिक्त, यह 64 कार्यों तक का प्रबंधन कर सकता है। चूँकि, यह अनुशंसा की जाती है कि इनमें से आठ कार्यों को μC/OS-II के लिए आरक्षित किया जाए, एक आवेदन को 56 कार्यों तक छोड़ दिया जाए।<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=77|edition=2nd}}</ref>
 
 
=== गुठली ===
=== गुठली ===
कर्नेल (ऑपरेटिंग सिस्टम) उस प्रोग्राम को दिया गया नाम है जो ऑपरेटिंग सिस्टम के अधिकांश हाउसकीपिंग कार्य करता है। बूट लोडर कर्नेल को नियंत्रित करता है, जो विभिन्न उपकरणों को एक ज्ञात अवस्था में प्रारंभ करता है और कंप्यूटर को सामान्य संचालन के लिए तैयार करता है।<ref>[[Wikiversity:Operating Systems/Kernel Models#Monolithic Kernel]]</ref> कर्नेल कार्यों के प्रबंधन (यानी, CPU के समय के प्रबंधन के लिए) और कार्यों के बीच संचार करने के लिए जिम्मेदार है।<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=39|edition=2nd}}</ref> कर्नेल द्वारा प्रदान की जाने वाली मूलभूत सेवा [[संदर्भ स्विच]]िंग है।
कर्नेल (ऑपरेटिंग सिस्टम) उस प्रोग्राम को दिया गया नाम है जो ऑपरेटिंग सिस्टम के अधिकांश हाउसकीपिंग कार्य करता है। बूट लोडर कर्नेल को नियंत्रित करता है, जो विभिन्न उपकरणों को एक ज्ञात अवस्था में प्रारंभ करता है और कंप्यूटर को सामान्य संचालन के लिए तैयार करता है।<ref>[[Wikiversity:Operating Systems/Kernel Models#Monolithic Kernel]]</ref> कर्नेल कार्यों के प्रबंधन (अर्थात, CPU के समय के प्रबंधन के लिए) और कार्यों के बीच संचार करने के लिए जिम्मेदार है।<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=39|edition=2nd}}</ref> कर्नेल द्वारा प्रदान की जाने वाली मूलभूत सेवा [[संदर्भ स्विच]]िंग है।


[[अनुसूचक]] कर्नेल का वह हिस्सा है जो यह निर्धारित करने के लिए जिम्मेदार है कि कौन सा कार्य आगे चलता है।<ref name="LabrosseP40">{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=40|edition=2nd}}</ref> अधिकांश रीयल-टाइम कर्नेल प्राथमिकता आधारित होते हैं। प्राथमिकता-आधारित कर्नेल में, CPU का नियंत्रण हमेशा चलने के लिए तैयार सर्वोच्च प्राथमिकता वाले कार्य को दिया जाता है। दो प्रकार की प्राथमिकता-आधारित गुठली मौजूद हैं: कंप्यूटर मल्टीटास्किंग # सहकारी मल्टीटास्किंग | गैर-प्रीमेप्टिव और प्रीमेशन (कंप्यूटिंग)। अप्रतिबंधित गुठली की आवश्यकता है कि प्रत्येक कार्य सीपीयू के नियंत्रण को स्पष्ट रूप से छोड़ने के लिए कुछ करे।<ref name="LabrosseP40" />प्रीमेप्टिव कर्नेल का उपयोग तब किया जाता है जब सिस्टम की जवाबदेही अधिक महत्वपूर्ण होती है। इस प्रकार, μC/OS-II और अधिकांश व्यावसायिक रीयल-टाइम कर्नेल प्रीमेप्टिव हैं।<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=42|edition=2nd}}</ref> चलाने के लिए तैयार सर्वोच्च प्राथमिकता वाले कार्य को हमेशा CPU का नियंत्रण दिया जाता है।
[[अनुसूचक]] कर्नेल का वह हिस्सा है जो यह निर्धारित करने के लिए जिम्मेदार है कि कौन सा कार्य आगे चलता है।<ref name="LabrosseP40">{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=40|edition=2nd}}</ref> अधिकांश रीयल-टाइम कर्नेल प्राथमिकता आधारित होते हैं। प्राथमिकता-आधारित कर्नेल में, CPU का नियंत्रण हमेशा चलने के लिए तैयार सर्वोच्च प्राथमिकता वाले कार्य को दिया जाता है। दो प्रकार की प्राथमिकता-आधारित गुठली उपस्तिथ हैं: कंप्यूटर मल्टीटास्किंग # सहकारी मल्टीटास्किंग | गैर-प्रीमेप्टिव और प्रीमेशन (कंप्यूटिंग)। अप्रतिबंधित गुठली की आवश्यकता है कि प्रत्येक कार्य सीपीयू के नियंत्रण को स्पष्ट रूप से छोड़ने के लिए कुछ करे।<ref name="LabrosseP40" />प्रीमेप्टिव कर्नेल का उपयोग तब किया जाता है जब सिस्टम की चूँकिदेही अधिक महत्वपूर्ण होती है। इस प्रकार, μC/OS-II और अधिकांश व्यावसायिक रीयल-टाइम कर्नेल प्रीमेप्टिव हैं।<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=42|edition=2nd}}</ref> चलाने के लिए तैयार सर्वोच्च प्राथमिकता वाले कार्य को हमेशा CPU का नियंत्रण दिया जाता है।


=== कार्य सौंपना ===
=== कार्य सौंपना ===
Line 118: Line 112:
* टास्क विलोपन
* टास्क विलोपन
* किसी कार्य की प्राथमिकता बदलें
* किसी कार्य की प्राथमिकता बदलें
* निलंबित करें और किसी कार्य को फिर से शुरू करें
* निलंबित करें और किसी कार्य को फिर से प्रारंभ करें
* किसी कार्य के बारे में जानकारी प्राप्त करें<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|pages=45–49|edition=2nd}}</ref>
* किसी कार्य के बारे में जानकारी प्राप्त करें<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|pages=45–49|edition=2nd}}</ref>


Line 130: Line 124:
घड़ी की टिक निर्धारित होने के बाद, कार्य निम्न हो सकते हैं:
घड़ी की टिक निर्धारित होने के बाद, कार्य निम्न हो सकते हैं:
*किसी काम में देरी करना
*किसी काम में देरी करना
* रुके हुए कार्य को फिर से शुरू करें
* रुके हुए कार्य को फिर से प्रारंभ करें


=== कार्यों के बीच संचार ===
=== कार्यों के बीच संचार ===
Line 136: Line 130:


==μC/OS-III ==
==μC/OS-III ==
μC/OS-III माइक्रो-कंट्रोलर ऑपरेटिंग सिस्टम वर्जन 3 का संक्षिप्त रूप है, जिसे 2009 में पेश किया गया था और μC/OS-II RTOS में कार्यक्षमता जोड़ता है।
μC/OS-III माइक्रो-कंट्रोलर ऑपरेटिंग सिस्टम वर्जन 3 का संक्षिप्त रूप है, जिसे 2009 में प्रस्तुत किया गया था और μC/OS-II RTOS में कार्यक्षमता जोड़ता है।


μC/OS-III μC/OS-II की सभी विशेषताएं और कार्य प्रदान करता है। सबसे बड़ा अंतर समर्थित कार्यों की संख्या है। μC/OS-II अधिकतम 255 कार्यों के लिए 255 प्राथमिकता स्तरों में से प्रत्येक पर केवल 1 कार्य की अनुमति देता है। μC/OS-III किसी भी संख्या में एप्लिकेशन कार्यों, प्राथमिकता स्तरों और प्रति स्तर कार्यों की अनुमति देता है, केवल मेमोरी तक प्रोसेसर पहुंच द्वारा सीमित।<ref>{{cite web |url=http://micrium.com/rtos/ucosiii/rtos-comparison/ |title=μC/OS-II and μC/OS-III Features Comparison |website=Micrium}}</ref><ref>{{cite web |url=http://micrium.com/rtos/ucosiii/overview/ |title=μC/OS-III overview |website=Micrium}}</ref>
μC/OS-III μC/OS-II की सभी विशेषताएं और कार्य प्रदान करता है। सबसे बड़ा अंतर समर्थित कार्यों की संख्या है। μC/OS-II अधिकतम 255 कार्यों के लिए 255 प्राथमिकता स्तरों में से प्रत्येक पर केवल 1 कार्य की अनुमति देता है। μC/OS-III किसी भी संख्या में एप्लिकेशन कार्यों, प्राथमिकता स्तरों और प्रति स्तर कार्यों की अनुमति देता है, केवल मेमोरी तक प्रोसेसर पहुंच द्वारा सीमित।<ref>{{cite web |url=http://micrium.com/rtos/ucosiii/rtos-comparison/ |title=μC/OS-II and μC/OS-III Features Comparison |website=Micrium}}</ref><ref>{{cite web |url=http://micrium.com/rtos/ucosiii/overview/ |title=μC/OS-III overview |website=Micrium}}</ref>
Line 149: Line 143:
=== [[राउंड रॉबिन शेड्यूलिंग]] ===
=== [[राउंड रॉबिन शेड्यूलिंग]] ===
जब दो या दो से अधिक कार्यों की समान प्राथमिकता होती है, तो कर्नेल एक कार्य को एक पूर्व निर्धारित समय के लिए चलने की अनुमति देता है, जिसे क्वांटम कहा जाता है, और फिर दूसरे कार्य का चयन करता है। इस प्रक्रिया को राउंड रॉबिन शेड्यूलिंग या टाइम स्लाइसिंग कहा जाता है। कर्नेल अगले कार्य को लाइन में नियंत्रण देता है यदि:
जब दो या दो से अधिक कार्यों की समान प्राथमिकता होती है, तो कर्नेल एक कार्य को एक पूर्व निर्धारित समय के लिए चलने की अनुमति देता है, जिसे क्वांटम कहा जाता है, और फिर दूसरे कार्य का चयन करता है। इस प्रक्रिया को राउंड रॉबिन शेड्यूलिंग या टाइम स्लाइसिंग कहा जाता है। कर्नेल अगले कार्य को लाइन में नियंत्रण देता है यदि:
*मौजूदा टास्क में टाइम स्लाइस के दौरान करने के लिए कोई काम नहीं है, या
*उपस्तिथा टास्क में टाइम स्लाइस के समय करने के लिए कोई काम नहीं है, या
* वर्तमान कार्य अपने समय के अंत से पहले पूरा हो जाता है, या
* वर्तमान कार्य अपने समय के अंत से पहले पूरा हो जाता है, या
* समय का टुकड़ा समाप्त होता है।
* समय का टुकड़ा समाप्त होता है।
Line 157: Line 151:


=== कार्यों का प्रबंधन ===
=== कार्यों का प्रबंधन ===
कार्य प्रबंधन भी μC/OS-II के समान कार्य करता है। हालाँकि, μC/OS-III मल्टीटास्किंग का समर्थन करता है और किसी एप्लिकेशन को किसी भी संख्या में कार्य करने की अनुमति देता है। प्रोसेसर के लिए उपलब्ध कंप्यूटर मेमोरी (कोड और डेटा स्पेस दोनों) की मात्रा से ही कार्यों की अधिकतम संख्या सीमित है।
कार्य प्रबंधन भी μC/OS-II के समान कार्य करता है। चूँकि, μC/OS-III मल्टीटास्किंग का समर्थन करता है और किसी एप्लिकेशन को किसी भी संख्या में कार्य करने की अनुमति देता है। प्रोसेसर के लिए उपलब्ध कंप्यूटर मेमोरी (कोड और डेटा स्पेस दोनों) की मात्रा से ही कार्यों की अधिकतम संख्या सीमित है।


एक कार्य को निर्धारित पूर्णता तक चलने के माध्यम से कार्यान्वित किया जा सकता है, जिसमें कार्य समाप्त होने पर स्वयं को हटा देता है, या अधिक विशिष्ट रूप से एक अनंत लूप के रूप में, घटनाओं के होने की प्रतीक्षा में और उन घटनाओं को संसाधित करता है।
एक कार्य को निर्धारित पूर्णता तक चलने के माध्यम से कार्यान्वित किया जा सकता है, जिसमें कार्य समाप्त होने पर स्वयं को हटा देता है, या अधिक विशिष्ट रूप से एक अनंत लूप के रूप में, घटनाओं के होने की प्रतीक्षा में और उन घटनाओं को संसाधित करता है।
Line 165: Line 159:


=== समय प्रबंधन ===
=== समय प्रबंधन ===
μC/OS-III μC/OS-II के समान समय प्रबंधन सुविधाएँ प्रदान करता है। यह एप्लिकेशन को सेवाएं भी प्रदान करता है ताकि कार्य उपयोगकर्ता द्वारा परिभाषित समय विलंब के लिए उनके निष्पादन को निलंबित कर सकें। देरी या तो घड़ी की टिक, या घंटे, मिनट, सेकंड और [[मिलीसेकंड]] की संख्या से निर्दिष्ट होती है।
μC/OS-III μC/OS-II के समान समय प्रबंधन सुविधाएँ प्रदान करता है। यह एप्लिकेशन को सेवाएं भी प्रदान करता है जिससे कि कार्य उपयोगकर्ता द्वारा परिभाषित समय विलंब के लिए उनके निष्पादन को निलंबित कर सकें। देरी या तो घड़ी की टिक, या घंटे, मिनट, सेकंड और [[मिलीसेकंड]] की संख्या से निर्दिष्ट होती है।


=== कार्यों के बीच संचार ===
=== कार्यों के बीच संचार ===
कभी-कभी, एक कार्य या ISR को दूसरे कार्य के लिए सूचना का संचार करना चाहिए, क्योंकि एक ही विशिष्ट डेटा या हार्डवेयर संसाधन को एक साथ एक्सेस करना दो कार्यों के लिए असुरक्षित है। इसे एक सूचना हस्तांतरण के माध्यम से हल किया जा सकता है, जिसे अंतर-कार्य संचार कहा जाता है। सूचनाओं को कार्यों के बीच दो तरीकों से संप्रेषित किया जा सकता है: वैश्विक डेटा के माध्यम से, या संदेश भेजकर।
कभी-कभी, एक कार्य या ISR को दूसरे कार्य के लिए सूचना का संचार करना चाहिए, क्योंकि एक ही विशिष्ट डेटा या हार्डवेयर संसाधन को एक साथ एक्सेस करना दो कार्यों के लिए असुरक्षित है। इसे एक सूचना हस्तांतरण के माध्यम से हल किया जा सकता है, जिसे अंतर-कार्य संचार कहा जाता है। सूचनाओं को कार्यों के बीच दो तरीकों से संप्रेषित किया जा सकता है: वैश्विक डेटा के माध्यम से, या संदेश भेजकर।


वैश्विक चर का उपयोग करते समय, प्रत्येक कार्य या ISR को यह सुनिश्चित करना चाहिए कि उसके पास चरों तक विशेष पहुंच हो। यदि कोई ISR शामिल है, तो सामान्य चरों के लिए अनन्य पहुँच सुनिश्चित करने का एकमात्र तरीका व्यवधानों को अक्षम करना है। यदि दो कार्य डेटा साझा करते हैं, तो प्रत्येक इंटरप्ट्स को अक्षम करके, शेड्यूलर को लॉक करके, एक सेमाफोर (प्रोग्रामिंग) का उपयोग करके, या अधिमानतः, पारस्परिक बहिष्करण सेमाफोर का उपयोग करके चर के लिए विशेष पहुंच प्राप्त कर सकता है। संदेश या तो एक मध्यवर्ती वस्तु को भेजा जा सकता है जिसे संदेश कतार कहा जाता है, या सीधे एक कार्य के लिए, चूंकि μC/OS-III में, प्रत्येक कार्य की अपनी अंतर्निहित संदेश कतार होती है। यदि संदेशों के लिए प्रतीक्षा करने के लिए एकाधिक कार्य हैं तो बाहरी संदेश कतार का उपयोग करें। यदि केवल एक कार्य प्राप्त डेटा को संसाधित करेगा, तो सीधे कार्य को संदेश भेजें। जबकि कार्य किसी संदेश के आने की प्रतीक्षा करता है, यह CPU समय का उपयोग नहीं करता है।
वैश्विक चर का उपयोग करते समय, प्रत्येक कार्य या ISR को यह सुनिश्चित करना चाहिए कि उसके पास चरों तक विशेष पहुंच हो। यदि कोई ISR सम्मिलित है, तो सामान्य चरों के लिए अनन्य पहुँच सुनिश्चित करने का एकमात्र विधि व्यवधानों को अक्षम करना है। यदि दो कार्य डेटा साझा करते हैं, तो प्रत्येक इंटरप्ट्स को अक्षम करके, शेड्यूलर को लॉक करके, एक सेमाफोर (प्रोग्रामिंग) का उपयोग करके, या अधिमानतः, पारस्परिक बहिष्करण सेमाफोर का उपयोग करके चर के लिए विशेष पहुंच प्राप्त कर सकता है। संदेश या तो एक मध्यवर्ती वस्तु को भेजा जा सकता है जिसे संदेश कतार कहा जाता है, या सीधे एक कार्य के लिए, चूंकि μC/OS-III में, प्रत्येक कार्य की अपनी अंतर्निहित संदेश कतार होती है। यदि संदेशों के लिए प्रतीक्षा करने के लिए एकाधिक कार्य हैं तो बाहरी संदेश कतार का उपयोग करें। यदि केवल एक कार्य प्राप्त डेटा को संसाधित करेगा, तो सीधे कार्य को संदेश भेजें। जबकि कार्य किसी संदेश के आने की प्रतीक्षा करता है, यह CPU समय का उपयोग नहीं करता है।


== पोर्ट्स ==
== पोर्ट्स ==
एक पोर्ट में तीन पहलू शामिल होते हैं: CPU, OS और बोर्ड विशिष्ट (BSP) कोड। μC/OS-II और μC/OS-III के पास बाजार में सबसे लोकप्रिय प्रोसेसर और बोर्ड के लिए बंदरगाह हैं और [[सुरक्षा महत्वपूर्ण]] एम्बेडेड सिस्टम जैसे विमानन, चिकित्सा प्रणाली और परमाणु प्रतिष्ठानों में उपयोग के लिए उपयुक्त हैं। एक μC/OS-III पोर्ट में तीन कर्नेल विशिष्ट फाइलों की सामग्री को लिखना या बदलना शामिल है: <code>OS_CPU.H</code>, <code>OS_CPU_A.ASM</code>, और <code>OS_CPU_C.C</code>. अंत में उपयोग किए जा रहे मूल्यांकन बोर्ड या लक्ष्य बोर्ड के लिए एक बोर्ड सपोर्ट पैकेज (बीएसपी) बनाएं या बदलें। एक μC/OS-III पोर्ट एक μC/OS-II पोर्ट के समान है। यहाँ सूचीबद्ध की तुलना में काफी अधिक बंदरगाह हैं, और बंदरगाह निरंतर विकास के अधीन हैं। μC/OS-II और μC/OS-III दोनों ही लोकप्रिय ट्रांसपोर्ट लेयर सिक्योरिटी|SSL/TLS लाइब्रेरी जैसे [[wolfSSL]] द्वारा समर्थित हैं, जो सभी कनेक्शनों में सुरक्षा सुनिश्चित करते हैं।
एक पोर्ट में तीन पहलू सम्मिलित होते हैं: CPU, OS और बोर्ड विशिष्ट (BSP) कोड। μC/OS-II और μC/OS-III के पास बाजार में सबसे लोकप्रिय प्रोसेसर और बोर्ड के लिए बंदरगाह हैं और [[सुरक्षा महत्वपूर्ण]] एम्बेडेड सिस्टम जैसे विमानन, चिकित्सा प्रणाली और परमाणु प्रतिष्ठानों में उपयोग के लिए उपयुक्त हैं। एक μC/OS-III पोर्ट में तीन कर्नेल विशिष्ट फाइलों की सामग्री को लिखना या बदलना सम्मिलित है: <code>OS_CPU.H</code>, <code>OS_CPU_A.ASM</code>, और <code>OS_CPU_C.C</code>. अंत में उपयोग किए जा रहे मूल्यांकन बोर्ड या लक्ष्य बोर्ड के लिए एक बोर्ड सपोर्ट पैकेज (बीएसपी) बनाएं या बदलें। एक μC/OS-III पोर्ट एक μC/OS-II पोर्ट के समान है। यहाँ सूचीबद्ध की तुलना में काफी अधिक बंदरगाह हैं, और बंदरगाह निरंतर विकास के अधीन हैं। μC/OS-II और μC/OS-III दोनों ही लोकप्रिय ट्रांसपोर्ट लेयर सिक्योरिटी|SSL/TLS लाइब्रेरी जैसे [[wolfSSL]] द्वारा समर्थित हैं, जो सभी कनेक्शनों में सुरक्षा सुनिश्चित करते हैं।


== लाइसेंसिंग परिवर्तन ==
== लाइसेंसिंग परिवर्तन ==
सिलिकॉन लैब्स द्वारा अधिग्रहण के बाद, 2020 में माइक्रीम फरवरी 2020 में [[ओपन-सोर्स मॉडल]] लाइसेंसिंग में बदल गया। इसमें यूसी/ओएस III, सभी पूर्व संस्करण, सभी घटक शामिल हैं: यूएसबी, [[फाइल सिस्टम]], जीयूआई, टीसीपी/आईपी, आदि।
सिलिकॉन लैब्स द्वारा अधिग्रहण के बाद, 2020 में माइक्रीम फरवरी 2020 में [[ओपन-सोर्स मॉडल]] लाइसेंसिंग में बदल गया। इसमें यूसी/ओएस III, सभी पूर्व संस्करण, सभी घटक सम्मिलित हैं: यूएसबी, [[फाइल सिस्टम]], जीयूआई, टीसीपी/आईपी, आदि।


== दस्तावेज़ीकरण और समर्थन ==
== दस्तावेज़ीकरण और समर्थन ==

Revision as of 23:30, 24 June 2023

MicroC/OS (μC/OS)
डेवलपरMicrium, Inc.,
Silicon Labs
लिखा हुआANSI C
काम करने की अवस्थाCurrent
स्रोत मॉडलOpen-source as of 2020
आरंभिक रिलीज1991; 33 years ago (1991)
Latest releaseOS-III / 2016; 8 years ago (2016)
रिपॉजिटरीgithub.com/weston-embedded/uC-OS3
विपणन लक्ष्यEmbedded devices
उपलब्धEnglish
प्लेटफार्मोंARM Cortex-M3, -M4F, ARM7TDMI; Atmel AVR; eSi-RISC, and many others
कर्नेल प्रकारReal-time microkernel
डिफ़ॉल्ट
उपयोगकर्ता इंटरफ़ेस
μC/GUI
लाइसेंसApache as of 2020; former Commercial, freeware education use
आधिकारिक वेबसाइटweston-embedded.com/micrium/overview
Micrium OS
डेवलपरSilicon Labs
लिखा हुआANSI C
काम करने की अवस्थाCurrent
स्रोत मॉडलOpen-source
आरंभिक रिलीज2020; 4 years ago (2020)
Latest releasePart of Gecko Platform 4.2.0.0,[1] part of Gecko SDK 4.2.0.0[2] / December 14, 2022; 23 months ago (2022-12-14)
रिपॉजिटरीgithub.com/SiliconLabs/gecko_sdk/tree/gsdk_4.2/platform/micrium_os
विपणन लक्ष्यEmbedded devices
उपलब्धEnglish
प्लेटफार्मोंexclusively Silicon Labs silicon
कर्नेल प्रकारReal-time microkernel
लाइसेंसApache
आधिकारिक वेबसाइटwww.silabs.com/developers/micrium-os
Cesium RTOS
डेवलपरWeston Embedded Solutions
लिखा हुआANSI C
काम करने की अवस्थाCurrent
स्रोत मॉडलCommercial
आरंभिक रिलीजJune 23, 2020; 4 years ago (2020-06-23) (forked from uC/OS-III V3.08.00)[3]
Latest releaseCs/OS3 3.09.01[3] / December 21, 2022; 23 months ago (2022-12-21)[3]
विपणन लक्ष्यEmbedded devices
उपलब्धEnglish
प्लेटफार्मों50+ unclear whether there is a 1-to-1 overlap with μC/OS
कर्नेल प्रकारReal-time microkernel
लाइसेंसCommercial
आधिकारिक वेबसाइटweston-embedded.com/products/cesium

माइक्रो-कंट्रोलर ऑपरेटिंग सिस्टम (MicroC/OS, जिसे μC/OS, या माइक्रीम OS के रूप में शैलीबद्ध किया गया है) एक रीयल-टाइम ऑपरेटिंग सिस्टम (RTOS) है जिसे 1991 में जीन जे. लेब्रोस द्वारा डिज़ाइन किया गया था। यह एक प्राथमिकता-आधारित प्रीमेशन (कंप्यूटिंग) रियल है। रीयल-टाइम कंप्यूटिंग | माइक्रोप्रोसेसरों के लिए रीयल-टाइम कर्नेल, ज्यादातर प्रोग्रामिंग भाषा सी (प्रोग्रामिंग भाषा) में लिखा गया है। यह अंतः स्थापित प्रणाली में उपयोग के लिए अभिप्रेत है।

माइक्रोसी/ओएस सी में कई कार्यों को परिभाषित करने की अनुमति देता है, जिनमें से प्रत्येक एक स्वतंत्र थ्रेड या कार्य के रूप में निष्पादित हो सकता है। प्रत्येक कार्य एक अलग प्राथमिकता पर चलता है, और चलता है जैसे कि वह सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) का स्वामी है। कम प्राथमिकता वाले कार्यों को किसी भी समय उच्च प्राथमिकता वाले कार्यों से छूट दी जा सकती है। उच्च प्राथमिकता वाले कार्य निम्न प्राथमिकता वाले कार्यों को निष्पादित करने की अनुमति देने के लिए ऑपरेटिंग सिस्टम (OS) सेवाओं (जैसे विलंब या घटना) का उपयोग करते हैं। ओएस सेवाएं कार्यों और मेमोरी के प्रबंधन, कार्यों के बीच संचार और समय के लिए प्रदान की जाती हैं।[4]

इतिहास

MicroC/OS कर्नेल मूल रूप से एंबेडेड सिस्टम्स प्रोग्रामिंग पत्रिका में तीन-भाग के लेख और Labrosse द्वारा μC/OS द रियल-टाइम कर्नेल में प्रकाशित किया गया था।[5] उन्होंने पहले अपने स्वयं के उपयोग के लिए विकसित एक सॉफ्टवेयर पोर्टेबिलिटी ओएस के इंटर्नल का वर्णन करने का इरादा किया था, किन्तु बाद में इसे संस्करण II और III में अपनी कंपनी माइक्रियम, इंक में एक वाणिज्यिक उत्पाद के रूप में विकसित किया।

2016 में सिलिकॉन प्रयोगशालाओं द्वारा माइक्रीम, इंक। का अधिग्रहण किया गया था[6] और इसे बाद में अपाचे लाइसेंस के अनुसार ओपन-सोर्स के रूप में जारी किया गया।

सिलिकॉन लैब्स अपने स्वयं के सिलिकॉन पर उपयोग के लिए माइक्रीम ओएस नामक ओपन-सोर्स उत्पाद को बनाए रखना जारी रखती है[7] और माइक्रीम, इंक. के पूर्व कर्मचारियों का एक समूह (लैब्रोस सहित) μC/OS और सीज़ियम आरटीओएस दोनों के लिए परामर्श और समर्थन प्रदान करता है, ओपन-सोर्स रिलीज के ठीक बाद बनाया गया एक मालिकाना फोर्क।[8]

μC/OS-II

μC/OS के लिए लिखे गए स्रोत कोड के आधार पर, और 1998 में एक वाणिज्यिक उत्पाद के रूप में प्रस्तुत किया गया, μC/OS-II एक सॉफ्टवेयर पोर्टेबिलिटी, रोम-सक्षम, मापनीय , प्रीमेप्टिव, रियल-टाइम, नियतात्मक, मल्टीटास्किंग कर्नेल (ऑपरेटिंग सिस्टम) है। माइक्रोप्रोसेसरों और डिजिटल सिग्नल प्रोसेसर (डीएसपी) के लिए। यह 64 कार्यों तक का प्रबंधन करता है। इसका आकार बढ़ाया जा सकता है (5 और 24 किलोबाइट्स के बीच) केवल किसी दिए गए उपयोग के लिए आवश्यक सुविधाओं को सम्मिलित करने के लिए।

अधिकांश μC/OS-II अत्यधिक पोर्टेबल ANSI C में लिखे गए हैं, जिसमें लक्ष्य माइक्रोप्रोसेसर-विशिष्ट कोड असेंबली भाषा में लिखा गया है। दूसरे प्रोसेसर में में porting को आसान बनाने के लिए बाद वाले का उपयोग कम से कम किया जाता है।

एम्बेडेड सिस्टम में उपयोग

μC/OS-II एम्बेडेड उपयोगों के लिए डिज़ाइन किया गया था। यदि निर्माता के पास उचित टूल चेन (अर्थात, सी कंपाइलर, असेंबलर और लिंकर-लोकेटर) है, तो μC/OS-II को उत्पाद के हिस्से के रूप में एम्बेड किया जा सकता है।

μC/OS-II का उपयोग कई एम्बेडेड सिस्टम में किया जाता है, जिनमें निम्न सम्मिलित हैं:

टास्क स्टेट्स

μC/OS-II एक कंप्यूटर मल्टीटास्किंग ऑपरेटिंग सिस्टम है। प्रत्येक कार्य एक अनंत लूप है और निम्नलिखित पांच राज्यों में से किसी एक में हो सकता है (नीचे चित्र देखें)

इसके अतिरिक्त, यह 64 कार्यों तक का प्रबंधन कर सकता है। चूँकि, यह अनुशंसा की जाती है कि इनमें से आठ कार्यों को μC/OS-II के लिए आरक्षित किया जाए, एक आवेदन को 56 कार्यों तक छोड़ दिया जाए।[9]

गुठली

कर्नेल (ऑपरेटिंग सिस्टम) उस प्रोग्राम को दिया गया नाम है जो ऑपरेटिंग सिस्टम के अधिकांश हाउसकीपिंग कार्य करता है। बूट लोडर कर्नेल को नियंत्रित करता है, जो विभिन्न उपकरणों को एक ज्ञात अवस्था में प्रारंभ करता है और कंप्यूटर को सामान्य संचालन के लिए तैयार करता है।[10] कर्नेल कार्यों के प्रबंधन (अर्थात, CPU के समय के प्रबंधन के लिए) और कार्यों के बीच संचार करने के लिए जिम्मेदार है।[11] कर्नेल द्वारा प्रदान की जाने वाली मूलभूत सेवा संदर्भ स्विचिंग है।

अनुसूचक कर्नेल का वह हिस्सा है जो यह निर्धारित करने के लिए जिम्मेदार है कि कौन सा कार्य आगे चलता है।[12] अधिकांश रीयल-टाइम कर्नेल प्राथमिकता आधारित होते हैं। प्राथमिकता-आधारित कर्नेल में, CPU का नियंत्रण हमेशा चलने के लिए तैयार सर्वोच्च प्राथमिकता वाले कार्य को दिया जाता है। दो प्रकार की प्राथमिकता-आधारित गुठली उपस्तिथ हैं: कंप्यूटर मल्टीटास्किंग # सहकारी मल्टीटास्किंग | गैर-प्रीमेप्टिव और प्रीमेशन (कंप्यूटिंग)। अप्रतिबंधित गुठली की आवश्यकता है कि प्रत्येक कार्य सीपीयू के नियंत्रण को स्पष्ट रूप से छोड़ने के लिए कुछ करे।[12]प्रीमेप्टिव कर्नेल का उपयोग तब किया जाता है जब सिस्टम की चूँकिदेही अधिक महत्वपूर्ण होती है। इस प्रकार, μC/OS-II और अधिकांश व्यावसायिक रीयल-टाइम कर्नेल प्रीमेप्टिव हैं।[13] चलाने के लिए तैयार सर्वोच्च प्राथमिकता वाले कार्य को हमेशा CPU का नियंत्रण दिया जाता है।

कार्य सौंपना

निष्पादन की उच्चतम दर वाले कार्यों को दर-मोनोटोनिक शेड्यूलिंग का उपयोग करके सर्वोच्च प्राथमिकता दी जाती है।[14] यह शेड्यूलिंग एल्गोरिदम रीयल-टाइम ऑपरेटिंग सिस्टम (आरटीओएस) में स्थिर-प्राथमिकता शेड्यूलिंग वर्ग के साथ उपयोग किया जाता है।[15]


कार्यों का प्रबंधन

कम्प्यूटिंग में, कार्य निष्पादन की एक इकाई है। कुछ ऑपरेटिंग सिस्टम में, एक कार्य एक प्रक्रिया (कंप्यूटिंग) का पर्याय है, दूसरों में एक थ्रेड (कंप्यूटिंग) के साथ। प्रचय संसाधन कंप्यूटर सिस्टम में, कार्य एक जॉब स्ट्रीम के भीतर निष्पादन की एक इकाई है। μC/OS-II का सिस्टम उपयोगकर्ता निम्नलिखित विशेषताओं का उपयोग करके कार्यों को नियंत्रित करने में सक्षम है:

  • कार्य सुविधा
  • कार्य निर्माण
  • टास्क स्टैक और स्टैक चेकिंग
  • टास्क विलोपन
  • किसी कार्य की प्राथमिकता बदलें
  • निलंबित करें और किसी कार्य को फिर से प्रारंभ करें
  • किसी कार्य के बारे में जानकारी प्राप्त करें[16]


स्मृति प्रबंधन

विखंडन (कंप्यूटिंग) से बचने के लिए, μC/OS-II अनुप्रयोगों को एक मेमोरी प्रबंधन (ऑपरेटिंग सिस्टम) से निश्चित आकार के मेमोरी ब्लॉक प्राप्त करने की अनुमति देता है #एक सन्निहित मेमोरी क्षेत्र से बना विभाजन आवंटन। सभी मेमोरी ब्लॉक एक ही आकार के होते हैं, और विभाजन में ब्लॉकों की एक अभिन्न संख्या होती है। इन मेमोरी ब्लॉकों का आवंटन और विलोपन निरंतर समय में किया जाता है और यह एक नियतात्मक प्रणाली है।[17]


समय प्रबंधन

μC/OS-II के लिए आवश्यक है कि समय की देरी और टाइमआउट का ट्रैक रखने के लिए एक आवधिक समय स्रोत प्रदान किया जाए। एक टिक 10 से 1000 बार प्रति सेकंड या हेटर्स ़ के बीच होना चाहिए। तेज़ टिक दर, अधिक ओवरहेड (कंप्यूटिंग) μC/OS-II सिस्टम पर लगाता है। क्लॉक टिक की आवृत्ति किसी एप्लिकेशन के वांछित टिक रिज़ॉल्यूशन पर निर्भर करती है। टिक स्रोत एक हार्डवेयर टाइमर समर्पित करके, या एक प्रत्यावर्ती धारा (AC) पावर लाइन (50 या 60 Hz) सिग्नल से व्यवधान उत्पन्न करके प्राप्त किया जा सकता है। इस आवधिक समय स्रोत को क्लॉक टिक कहा जाता है।[18] घड़ी की टिक निर्धारित होने के बाद, कार्य निम्न हो सकते हैं:

  • किसी काम में देरी करना
  • रुके हुए कार्य को फिर से प्रारंभ करें

कार्यों के बीच संचार

μC/OS-II में इंटरटास्क या इंटरप्रोसेस संचार होता है: सेमाफोर (प्रोग्रामिंग), संदेश मेलबॉक्स, संदेश कतार, कार्य और इंटरप्ट हैंडलर (आईएसआर)। वे एक दूसरे के साथ बातचीत कर सकते हैं जब कोई कार्य या आईएसआर एक ईवेंट कंट्रोल ब्लॉक (ईसीबी) नामक कर्नेल ऑब्जेक्ट के माध्यम से कार्य को संकेत देता है। संकेत को एक घटना माना जाता है।

μC/OS-III

μC/OS-III माइक्रो-कंट्रोलर ऑपरेटिंग सिस्टम वर्जन 3 का संक्षिप्त रूप है, जिसे 2009 में प्रस्तुत किया गया था और μC/OS-II RTOS में कार्यक्षमता जोड़ता है।

μC/OS-III μC/OS-II की सभी विशेषताएं और कार्य प्रदान करता है। सबसे बड़ा अंतर समर्थित कार्यों की संख्या है। μC/OS-II अधिकतम 255 कार्यों के लिए 255 प्राथमिकता स्तरों में से प्रत्येक पर केवल 1 कार्य की अनुमति देता है। μC/OS-III किसी भी संख्या में एप्लिकेशन कार्यों, प्राथमिकता स्तरों और प्रति स्तर कार्यों की अनुमति देता है, केवल मेमोरी तक प्रोसेसर पहुंच द्वारा सीमित।[19][20] μC/OS-II और μC/OS-III वर्तमान में सिलिकॉन लैब्स की सहायक कंपनी माइक्रियम, इंक द्वारा बनाए रखा जाता है, और प्रति उत्पाद या प्रति उत्पाद लाइन लाइसेंस प्राप्त किया जा सकता है।

एम्बेडेड सिस्टम्स में उपयोग

उपयोग μC/OS-II के समान हैं

टास्क स्टेट्स

μC/OS-III एक कंप्यूटर मल्टीटास्किंग ऑपरेटिंग सिस्टम है। प्रत्येक कार्य एक अनंत लूप है और पांच राज्यों में से किसी एक में हो सकता है (निष्क्रिय, तैयार, चल रहा है, बाधित, या लंबित)। टास्क प्राथमिकताएं 0 (सर्वोच्च प्राथमिकता) से लेकर अधिकतम 255 (न्यूनतम संभव प्राथमिकता) तक हो सकती हैं।

राउंड रॉबिन शेड्यूलिंग

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

  • उपस्तिथा टास्क में टाइम स्लाइस के समय करने के लिए कोई काम नहीं है, या
  • वर्तमान कार्य अपने समय के अंत से पहले पूरा हो जाता है, या
  • समय का टुकड़ा समाप्त होता है।

गुठली

μC/OS-III के लिए कर्नेल कार्यक्षमता μC/OS-II के समान है।

कार्यों का प्रबंधन

कार्य प्रबंधन भी μC/OS-II के समान कार्य करता है। चूँकि, μC/OS-III मल्टीटास्किंग का समर्थन करता है और किसी एप्लिकेशन को किसी भी संख्या में कार्य करने की अनुमति देता है। प्रोसेसर के लिए उपलब्ध कंप्यूटर मेमोरी (कोड और डेटा स्पेस दोनों) की मात्रा से ही कार्यों की अधिकतम संख्या सीमित है।

एक कार्य को निर्धारित पूर्णता तक चलने के माध्यम से कार्यान्वित किया जा सकता है, जिसमें कार्य समाप्त होने पर स्वयं को हटा देता है, या अधिक विशिष्ट रूप से एक अनंत लूप के रूप में, घटनाओं के होने की प्रतीक्षा में और उन घटनाओं को संसाधित करता है।

स्मृति प्रबंधन

मेमोरी प्रबंधन उसी तरह से किया जाता है जैसे μC/OS-II में।

समय प्रबंधन

μC/OS-III μC/OS-II के समान समय प्रबंधन सुविधाएँ प्रदान करता है। यह एप्लिकेशन को सेवाएं भी प्रदान करता है जिससे कि कार्य उपयोगकर्ता द्वारा परिभाषित समय विलंब के लिए उनके निष्पादन को निलंबित कर सकें। देरी या तो घड़ी की टिक, या घंटे, मिनट, सेकंड और मिलीसेकंड की संख्या से निर्दिष्ट होती है।

कार्यों के बीच संचार

कभी-कभी, एक कार्य या ISR को दूसरे कार्य के लिए सूचना का संचार करना चाहिए, क्योंकि एक ही विशिष्ट डेटा या हार्डवेयर संसाधन को एक साथ एक्सेस करना दो कार्यों के लिए असुरक्षित है। इसे एक सूचना हस्तांतरण के माध्यम से हल किया जा सकता है, जिसे अंतर-कार्य संचार कहा जाता है। सूचनाओं को कार्यों के बीच दो तरीकों से संप्रेषित किया जा सकता है: वैश्विक डेटा के माध्यम से, या संदेश भेजकर।

वैश्विक चर का उपयोग करते समय, प्रत्येक कार्य या ISR को यह सुनिश्चित करना चाहिए कि उसके पास चरों तक विशेष पहुंच हो। यदि कोई ISR सम्मिलित है, तो सामान्य चरों के लिए अनन्य पहुँच सुनिश्चित करने का एकमात्र विधि व्यवधानों को अक्षम करना है। यदि दो कार्य डेटा साझा करते हैं, तो प्रत्येक इंटरप्ट्स को अक्षम करके, शेड्यूलर को लॉक करके, एक सेमाफोर (प्रोग्रामिंग) का उपयोग करके, या अधिमानतः, पारस्परिक बहिष्करण सेमाफोर का उपयोग करके चर के लिए विशेष पहुंच प्राप्त कर सकता है। संदेश या तो एक मध्यवर्ती वस्तु को भेजा जा सकता है जिसे संदेश कतार कहा जाता है, या सीधे एक कार्य के लिए, चूंकि μC/OS-III में, प्रत्येक कार्य की अपनी अंतर्निहित संदेश कतार होती है। यदि संदेशों के लिए प्रतीक्षा करने के लिए एकाधिक कार्य हैं तो बाहरी संदेश कतार का उपयोग करें। यदि केवल एक कार्य प्राप्त डेटा को संसाधित करेगा, तो सीधे कार्य को संदेश भेजें। जबकि कार्य किसी संदेश के आने की प्रतीक्षा करता है, यह CPU समय का उपयोग नहीं करता है।

पोर्ट्स

एक पोर्ट में तीन पहलू सम्मिलित होते हैं: CPU, OS और बोर्ड विशिष्ट (BSP) कोड। μC/OS-II और μC/OS-III के पास बाजार में सबसे लोकप्रिय प्रोसेसर और बोर्ड के लिए बंदरगाह हैं और सुरक्षा महत्वपूर्ण एम्बेडेड सिस्टम जैसे विमानन, चिकित्सा प्रणाली और परमाणु प्रतिष्ठानों में उपयोग के लिए उपयुक्त हैं। एक μC/OS-III पोर्ट में तीन कर्नेल विशिष्ट फाइलों की सामग्री को लिखना या बदलना सम्मिलित है: OS_CPU.H, OS_CPU_A.ASM, और OS_CPU_C.C. अंत में उपयोग किए जा रहे मूल्यांकन बोर्ड या लक्ष्य बोर्ड के लिए एक बोर्ड सपोर्ट पैकेज (बीएसपी) बनाएं या बदलें। एक μC/OS-III पोर्ट एक μC/OS-II पोर्ट के समान है। यहाँ सूचीबद्ध की तुलना में काफी अधिक बंदरगाह हैं, और बंदरगाह निरंतर विकास के अधीन हैं। μC/OS-II और μC/OS-III दोनों ही लोकप्रिय ट्रांसपोर्ट लेयर सिक्योरिटी|SSL/TLS लाइब्रेरी जैसे wolfSSL द्वारा समर्थित हैं, जो सभी कनेक्शनों में सुरक्षा सुनिश्चित करते हैं।

लाइसेंसिंग परिवर्तन

सिलिकॉन लैब्स द्वारा अधिग्रहण के बाद, 2020 में माइक्रीम फरवरी 2020 में ओपन-सोर्स मॉडल लाइसेंसिंग में बदल गया। इसमें यूसी/ओएस III, सभी पूर्व संस्करण, सभी घटक सम्मिलित हैं: यूएसबी, फाइल सिस्टम, जीयूआई, टीसीपी/आईपी, आदि।

दस्तावेज़ीकरण और समर्थन

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

संदर्भ

  1. "Gecko Platform 4.2.0.0 GA" (PDF). 2022-12-14. Retrieved 2023-01-04.
  2. "gecko_sdk Releases on github.com". GitHub. Retrieved 2023-01-04.
  3. 3.0 3.1 3.2 "Cs/OS3 Release Notes". Weston Embedded Solutions.
  4. "NiosII GCC with MicroC/OS". School of Electrical and Computer Engineering. Cornell University. June 2006. Retrieved 25 April 2017.
  5. Labrosse, Jean J. (15 June 2002). μC/OS The Real-Time Kernel (2nd ed.). CRC Press. ISBN 978-1578201037.
  6. "What is Micrium?". Weston Embedded Solutions. Retrieved 2023-01-04.
  7. "माइक्रोरियम सॉफ्टवेयर और दस्तावेज़ीकरण". Retrieved 2023-01-04.
  8. "Why Cesium RTOS?". Weston Embedded Solutions. Retrieved 2023-01-04.
  9. Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 77.
  10. Wikiversity:Operating Systems/Kernel Models#Monolithic Kernel
  11. Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 39.
  12. 12.0 12.1 Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 40.
  13. Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 42.
  14. Liu, Chung Lang; Layland, James W. (1973). "एक कठिन रीयल-टाइम वातावरण में मल्टीप्रोग्रामिंग के लिए शेड्यूलिंग एल्गोरिदम". Journal of the ACM. 20 (1): 46–61. CiteSeerX 10.1.1.36.8216. doi:10.1145/321738.321743. S2CID 59896693.
  15. Bovet, Daniel. "लिनक्स कर्नेल को समझना". Archived from the original on 2014-09-21.
  16. Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). pp. 45–49.
  17. Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). pp. 273–285.
  18. Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). pp. 145–152.
  19. "μC/OS-II and μC/OS-III Features Comparison". Micrium.
  20. "μC/OS-III overview". Micrium.


स्रोत

बाहरी संबंध