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

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

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

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

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

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

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

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

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

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

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

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

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

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

कार्यों का प्रबंधन
कम्प्यूटिंग में, कार्य निष्पादन की इकाई है। कुछ ऑपरेटिंग प्रणाली में, कार्य प्रक्रिया (कंप्यूटिंग) का पर्याय है, दूसरों में थ्रेड (कंप्यूटिंग) के साथ। प्रचय संसाधन कंप्यूटर प्रणाली में, कार्य जॉब स्ट्रीम के भीतर निष्पादन की इकाई है।

μ सी/ओएस-II का प्रणाली उपयोगकर्ता निम्नलिखित विशेषताओं का उपयोग करके कार्यों को नियंत्रित करने में सक्षम है:
 * कार्य सुविधा
 * कार्य निर्माण
 * टास्क स्टैक और स्टैक चेकिंग
 * टास्क विलोपन
 * किसी कार्य की प्राथमिकता बदलें
 * निलंबित करें और किसी कार्य को फिर से प्रारंभ करें
 * किसी कार्य के बारे में जानकारी प्राप्त करें

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

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

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

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

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

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

μ सी/ओएस-II और μ सी/ओएस-III का रखरखाव वर्तमान में सिलिकॉन लैब्स की सहायक कंपनी माइक्रियम, इंक. द्वारा किया जाता है, और इसे प्रति उत्पाद या प्रति उत्पाद लाइन के लिए लाइसेंस प्राप्त किया जा सकता है।

एम्बेडेड प्रणाली्स में उपयोग
उपयोग μ सी/ओएस-II के समान ही हैं

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

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

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

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

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

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

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

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

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

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

लाइसेंसिंग परिवर्तन
सिलिकॉन लैब्स द्वारा अधिग्रहण के बाद, 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