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

 माइक्रो-कंट्रोलर ऑपरेटिंग सिस्टम (माइक्रोसी/ओएस, जिसे μ सी/ओएस या माइक्रीम ओएस के रूप में शैलीबद्ध किया गया है) वास्तविक-समय ऑपरेटिंग प्रणाली (आरटीओएस) होता है, जिसे सन्न 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 प्रणाली पर लगाता है। चूँकि घड़ी की टिक-टिक की आवृत्ति किसी एप्लिकेशन के वांछित टिक संकल्प पर निर्भर करती है। इस प्रकार टिक स्रोत हार्डवेयर समयर समर्पित करके या प्रत्यावर्ती धारा (ए सी) विद्युत रेखा (50 या 60 हर्ट्ज) सिग्नल से व्यवधान उत्पन्न करके प्राप्त किया जा सकता है। इस आवधिक समय स्रोत को घड़ी की टिक-टिक कहा जाता है।

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

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

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

μ सी/ओएस-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