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

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

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

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

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

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

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

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

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

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

टास्क स्टेट्स
μC/ओएस-II एक कंप्यूटर मल्टीटास्किंग ऑपरेटिंग सिस्टम है। प्रत्येक कार्य एक अनंत लूप है और निम्नलिखित पांच राज्यों में से किसी एक में हो सकता है (नीचे चित्र देखें) इसके अतिरिक्त, यह 64 कार्यों तक का प्रबंधन कर सकता है। चूँकि, यह अनुशंसा की जाती है कि इनमें से आठ कार्यों को μC/ओएस-II के लिए आरक्षित किया जाए, एक आवेदन को 56 कार्यों तक छोड़ दिया जाए।
 * प्रसुप्त
 * तैयार
 * दौड़ना
 * प्रतीक्षा (एक घटना के लिए)
 * बाधित (इंटरप्ट हैंडलर (आईएसआर))

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

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

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

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

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

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

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

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

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

एम्बेडेड सिस्टम्स में उपयोग
उपयोग μC/ओएस-II के समान हैं

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

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

गुठली
μC/ओएस-III के लिए कर्नेल कार्यक्षमता μC/ओएस-II के समान है।

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

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

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

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

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

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

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

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

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

स्रोत

 * फ्यूजन एंबेडेड से μC/ओएस-II के लिए प्रोटोकॉल सपोर्ट
 * Micrium-uCओएस-III-UsersManual पहला संस्करण
 * uC/ओएस-III: Renesas RX62N के लिए रीयल-टाइम कर्नेल

बाहरी संबंध

 * Summary of Commonly Used uC/ओएस-II Functions and Data Structures
 * NiओएसII GCC with माइक्रोसी/ओएस
 * μC/ओएस-II Reference Manual
 * How to Get a μC/ओएस-II Application Running
 * μC/ओएस-II Reference Manual
 * How to Get a μC/ओएस-II Application Running