Micro-Controller Operating Systems
مائیکرو کنٹرولر آپریٹنگ سسٹم (مائیکرو سی/او ایس، جسے مائیکرو سی/او ایس، یا مائیکریم او ایس کے طور پر اسٹائلائز کیا گیا ہے) ایک ریئل ٹائم آپریٹنگ سسٹم (آر ٹی او ایس) ہے جسے 1991 میں جین جے لیبروس نے ڈیزائن کیا تھا۔ یہ مائکرو پروسیسرز کے لیے ترجیحی بنیاد پر پری ایمپٹو ریئل ٹائم دانا ہے، جو زیادہ تر پروگرامنگ زبان سی میں لکھا جاتا ہے۔ یہ سرایت شدہ نظاموں میں استعمال کے لیے ہے۔ مائیکرو سی/او ایس سی میں کئی افعال کی وضاحت کرنے کی اجازت دیتا ہے، جن میں سے ہر ایک آزاد تھریڈ یا ٹاسک کے طور پر انجام دے سکتا ہے۔ ہر کام ایک مختلف ترجیح پر چلتا ہے، اور اس طرح چلتا ہے جیسے وہ سنٹرل پروسیسنگ یونٹ (سی پی یو) کا مالک ہو۔ کم ترجیحی کاموں کو کسی بھی وقت اعلی ترجیحی کاموں کے ذریعے پہلے سے خالی کیا جا سکتا ہے۔ اعلی ترجیحی کام آپریٹنگ سسٹم (او ایس) خدمات (جیسے تاخیر یا واقعہ) کا استعمال کرتے ہیں تاکہ کم ترجیحی کاموں کو انجام دیا جا سکے۔ او ایس خدمات کاموں اور میموری کے انتظام، کاموں کے درمیان بات چیت، اور وقت کے لیے فراہم کی جاتی ہیں۔ مائیکرو سی/او ایس دانا اصل میں ایمبیڈڈ سسٹمز پروگرامنگ میگزین میں تین حصوں والے مضمون اور لیبروس کی کتاب ایم کیو سی/او ایس دی ریئل ٹائم دانا میں شائع ہوا تھا۔ اس کا ارادہ تھا کہ وہ پہلے صرف ایک پورٹیبل او ایس کے اندرونی حصوں کو بیان کرے جو اس نے اپنے استعمال کے لیے تیار کیا تھا، لیکن بعد میں اسے اپنی کمپنی مائکریئم انکارپوریٹڈ میں ورژن II اور III میں ایک تجارتی پروڈکٹ کے طور پر تیار کیا۔ 2016 میں مائکریم، انکارپوریٹڈ کو سلیکن لیبارٹریز نے حاصل کیا تھا اور بعد میں اسے اپاچی لائسنس کے تحت اوپن سورس کے طور پر جاری کیا گیا تھا۔ سلیکن لیبز اپنے سلکان پر استعمال کے لیے مائیکریم او ایس نامی ایک اوپن سورس پروڈکٹ کو برقرار رکھے ہوئے ہے اور مائیکریم انکارپوریٹڈ کے سابق ملازمین کا ایک گروپ (بشمول لیبروس) مائیکروسافٹ/او ایس اور سیزیم آر ٹی او ایس دونوں کے لیے مشاورت اور مدد فراہم کرتا ہے، جو اوپن سورس ریلیز کے فورا بعد بنایا گیا ایک ملکیتی کانٹا ہے۔ ایم یو سی/او ایس-II ایم یو سی/او ایس کے لیے لکھے گئے سورس کوڈ کی بنیاد پر، اور 1998 میں ایک تجارتی پروڈکٹ کے طور پر متعارف کرایا گیا، ایم یو سی/او ایس-II مائیکرو پروسیسرز، اور ڈیجیٹل سگنل پروسیسرز (ڈی ایس پیز) کے لیے ایک پورٹیبل، روم کے قابل، اسکیل ایبل، پری ایمپٹو، ریئل ٹائم، ڈیٹرمینیٹک، ملٹی ٹاسکنگ کرنل ہے۔ یہ 64 کاموں تک کا انتظام کرتا ہے۔ اس کے سائز کو (5 اور 24 کیبیٹس کے درمیان) صرف دیئے گئے استعمال کے لیے درکار خصوصیات پر مشتمل کیا جا سکتا ہے۔ زیادہ تر μC/OS-II انتہائی پورٹیبل اے این ایس آئی سی میں لکھا جاتا ہے، جس میں ٹارگٹ مائکرو پروسیسر مخصوص کوڈ اسمبلی زبان میں لکھا جاتا ہے۔ دوسرے پروسیسرز کو پورٹ کرنے میں آسانی کے لیے مؤخر الذکر کا استعمال کم سے کم کیا جاتا ہے۔ سرایت شدہ نظاموں میں استعمال μC/OS-II سرایت شدہ استعمال کے لیے ڈیزائن کیا گیا تھا۔ اگر پروڈیوسر کے پاس مناسب ٹول چین (یعنی سی کمپائلر، اسمبلر، اور لنکر لوکیٹر) ہے، تو μC/OS-II کو کسی پروڈکٹ کے حصے کے طور پر سرایت کیا جا سکتا ہے۔ ایم کیو سی/او ایس-II بہت سے سرایت شدہ نظاموں میں استعمال ہوتا ہے، جن میں شامل ہیں: ایوینکس طبی سامان اور آلات ڈیٹا مواصلات کا سامان سفید سامان (آلات) موبائل فون، ذاتی ڈیجیٹل معاونین (پی ڈی اے)، ایم آئی ڈی صنعتی کنٹرول کنزیومر الیکٹرانکس آٹوموٹو ٹاسک بتاتا ہے کہ ایم یو سی/او ایس-II ایک ملٹی ٹاسکنگ آپریٹنگ سسٹم ہے۔ ہر کام ایک لامحدود لوپ ہے اور مندرجہ ذیل پانچ ریاستوں میں سے کسی ایک میں ہو سکتا ہے (مزید نیچے دیا گیا اعداد و شمار دیکھیں) ڈورمنٹ ریڈی رننگ ویٹنگ (کسی تقریب کے لیے) انٹرپٹیڈ (انٹرپٹ سروس روٹین (آئی ایس آر)) مزید یہ کہ یہ 64 کاموں تک کا انتظام کر سکتا ہے۔ تاہم، یہ سفارش کی جاتی ہے کہ ان میں سے آٹھ کاموں کو ایم یو سی/او ایس-II کے لیے مخصوص رکھا جائے، اور ایک ایپلیکیشن کو 56 کاموں تک چھوڑ دیا جائے۔ دانا اس پروگرام کو دیا گیا نام ہے جو آپریٹنگ سسٹم کے لیے زیادہ تر ہاؤس کیپنگ کے کام کرتا ہے۔ بوٹ لوڈر کنٹرول کرنل کے حوالے کرتا ہے، جو مختلف آلات کو ایک معروف حالت میں شروع کرتا ہے اور کمپیوٹر کو عمومی کارروائیوں کے لیے تیار کرتا ہے۔ دانا کاموں کے انتظام (یعنی سی پی یو کے وقت کے انتظام کے لیے) اور کاموں کے درمیان بات چیت کے لیے ذمہ دار ہے۔ دانا کی طرف سے فراہم کردہ بنیادی خدمت سیاق و سباق کی تبدیلی ہے۔ شیڈولر دانا کا وہ حصہ ہے جو اس بات کا تعین کرنے کے لیے ذمہ دار ہے کہ آگے کون سا کام چلتا ہے۔ زیادہ تر حقیقی وقت کے دانے ترجیحی بنیاد پر ہوتے ہیں۔ ترجیح پر مبنی دانا میں، سی پی یو کا کنٹرول ہمیشہ چلانے کے لیے تیار اعلی ترین ترجیحی کام کو دیا جاتا ہے۔ ترجیحی بنیادوں پر دو قسم کے دانے موجود ہیں: غیر پیشگی اور پیشگی۔ غیر پیشگی دانے کے لیے ضروری ہے کہ ہر کام سی پی یو کے کنٹرول کو واضح طور پر ترک کرنے کے لیے کچھ کرے۔ ایک پری ایمپٹو دانا اس وقت استعمال کیا جاتا ہے جب نظام کا ردعمل زیادہ اہم ہوتا ہے۔ اس طرح، μC/OS-II اور زیادہ تر تجارتی ریئل ٹائم دانے قبل از وقت ہوتے ہیں۔ چلانے کے لیے تیار اعلی ترین ترجیحی کام کو ہمیشہ سی پی یو کا کنٹرول دیا جاتا ہے۔ کاموں کو تفویض کرنا عمل درآمد کی سب سے زیادہ شرح والے کاموں کو ریٹ مونوٹونک شیڈولنگ کا استعمال کرتے ہوئے سب سے زیادہ ترجیح دی جاتی ہے۔ یہ شیڈولنگ الگورتھم ایک جامد ترجیحی شیڈولنگ کلاس کے ساتھ ریئل ٹائم آپریٹنگ سسٹم (آر ٹی او ایس) میں استعمال ہوتا ہے۔ کاموں کا انتظام کمپیوٹنگ میں، ایک کام انجام دینے کی اکائی ہے۔ کچھ آپریٹنگ سسٹمز میں، ایک ٹاسک ایک عمل کا مترادف ہوتا ہے، دوسروں میں دھاگے کے ساتھ۔ بیچ پروسیسنگ کمپیوٹر سسٹمز میں، ٹاسک ایک کام کے اندر عمل درآمد کی اکائی ہے۔ ایم یو سی/او ایس-II کا سسٹم صارف درج ذیل خصوصیات کا استعمال کرتے ہوئے کاموں کو کنٹرول کرنے کے قابل ہوتا ہے: ٹاسک فیچر ٹاسک کریٹیشن ٹاسک اسٹیک اور اسٹیک چیکنگ ٹاسک ڈیلیشن کسی ٹاسک کی ترجیح کو تبدیل کریں معطل کریں اور کسی ٹاسک کو دوبارہ شروع کریں ٹاسک مینجمنٹ میموری کے بارے میں معلومات حاصل کریں ٹکڑے ٹکڑے ہونے سے بچنے کے لیے، ایم یو سی/او ایس-II ایپلی کیشنز کو ملحقہ میموری ایریا سے بنے پارٹیشن سے فکسڈ سائز کے میموری بلاکس حاصل کرنے کی اجازت دیتا ہے۔ تمام میموری بلاکس ایک ہی سائز کے ہوتے ہیں، اور پارٹیشن میں بلاکس کی ایک لازمی تعداد ہوتی ہے۔ ان میموری بلاکس کی تقسیم اور تقسیم مستقل وقت میں کی جاتی ہے اور یہ ایک تعیناتی نظام ہے۔ وقت کا انتظام کرنے کے لیے μC/OS-II کی ضرورت ہوتی ہے کہ وقت کی تاخیر اور ٹائم آؤٹ پر نظر رکھنے کے لیے وقتا فوقتا وقت کا ذریعہ فراہم کیا جائے۔ ایک ٹک 10 اور 1000 بار فی سیکنڈ، یا ہرٹز کے درمیان ہونا چاہیے۔ ٹک کی شرح جتنی تیز ہوگی، سسٹم پر اتنا ہی زیادہ اوور ہیڈ μC/OS-II عائد ہوتا ہے۔ گھڑی کے ٹک کی تعدد کا انحصار ایپلی کیشن کے مطلوبہ ٹک ریزولوشن پر ہوتا ہے۔ ہارڈ ویئر ٹائمر کو وقف کرکے، یا متبادل کرنٹ (اے سی) پاور لائن (50 یا 60 ہرٹز) سگنل سے رکاوٹ پیدا کرکے ٹک کے ذرائع حاصل کیے جا سکتے ہیں۔ اس دورانیے کے وقت کے ماخذ کو کلاک ٹک کہا جاتا ہے۔ گھڑی کے ٹک کا تعین ہونے کے بعد، کام یہ ہو سکتے ہیں: کسی کام میں تاخیر کرنا ایک تاخیر کا کام دوبارہ شروع کریں کاموں کے درمیان بات چیت انٹرا ٹاسک یا انٹر پروسس مواصلات μC/OS-II میں اس کے ذریعے ہوتا ہے: سیمافورز، میسج میل باکس، میسج کیوز، ٹاسک، اور انٹرپٹ سروس روٹینز (ISRs)۔ وہ ایک دوسرے کے ساتھ بات چیت کر سکتے ہیں جب کوئی ٹاسک یا آئی ایس آر کسی کارنیل آبجیکٹ کے ذریعے کسی ٹاسک کا اشارہ کرتا ہے جسے ایونٹ کنٹرول بلاک (ای سی بی) کہا جاتا ہے۔ سگنل کو ایک واقعہ سمجھا جاتا ہے۔ مائیکرو کنٹرولر آپریٹنگ سسٹمز ورژن 3 کا مخفف مائیکرو کنٹرولر آپریٹنگ سسٹمز III ہے، جسے 2009 میں متعارف کرایا گیا اور مائیکرو کنٹرولر آپریٹنگ سسٹمز ورژن 3 میں فعالیت کا اضافہ کیا گیا۔ ایم یو سی/او ایس-III ایم یو سی/او ایس-II کی تمام خصوصیات اور افعال پیش کرتا ہے۔ سب سے بڑا فرق معاون کاموں کی تعداد ہے۔ μC/OS-II 255 ترجیحی سطحوں میں سے ہر ایک پر زیادہ سے زیادہ 255 کاموں کے لیے صرف 1 کام کی اجازت دیتا ہے۔ μC/OS-III ہر سطح پر کسی بھی تعداد میں ایپلی کیشن کے کاموں، ترجیحی سطحوں اور کاموں کی اجازت دیتا ہے، جو صرف میموری تک پروسیسر کی رسائی کے ذریعے محدود ہے۔ ایم یو سی/او ایس-II اور ایم یو سی/او ایس-III فی الحال مائیکریم انکارپوریٹڈ کے زیر انتظام ہیں، جو سلیکن لیبز کا ایک ذیلی ادارہ ہے، اور اسے فی پروڈکٹ یا فی پروڈکٹ لائن لائسنس دیا جا سکتا ہے۔ سرایت شدہ نظاموں میں استعمال استعمال وہی ہیں جو کہ μC/OS-II کے لیے ہوتے ہیں۔ ٹاسک میں کہا گیا ہے کہ μC/OS-III ایک ملٹی ٹاسکنگ آپریٹنگ سسٹم ہے۔ ہر کام ایک لامحدود لوپ ہے اور پانچ ریاستوں میں سے کسی ایک میں ہو سکتا ہے (غیر فعال، تیار، چل رہا ہے، رکاوٹ، یا زیر التواء)۔ کام کی ترجیحات 0 (سب سے زیادہ ترجیح) سے لے کر زیادہ سے زیادہ 255 (سب سے کم ممکنہ ترجیح) تک ہو سکتی ہیں۔ راؤنڈ رابن شیڈولنگ جب دو یا زیادہ کاموں کی ایک ہی ترجیح ہوتی ہے، تو دانا ایک کام کو پہلے سے طے شدہ وقت کے لیے چلانے کی اجازت دیتا ہے، جسے کوانٹم کا نام دیا جاتا ہے، اور پھر دوسرا کام منتخب کرتا ہے۔ اس عمل کو راؤنڈ رابن شیڈولنگ یا ٹائم سلائنگ کہا جاتا ہے۔ دانا لائن میں اگلے کام کو کنٹرول دیتا ہے اگر: موجودہ کام کو اس کے ٹائم سلائس کے دوران کوئی کام نہیں کرنا ہے، یا موجودہ کام اپنے ٹائم سلائس کے اختتام سے پہلے مکمل ہو جاتا ہے، یا ٹائم سلائس ختم ہو جاتا ہے۔ دانے muc/OS-III کے لیے دانے کی فعالیت وہی ہے جو muc/OS-II کے لیے ہے۔ ٹاسک مینجمنٹ کا انتظام بھی وہی کام کرتا ہے جو μC/OS-II کے لیے ہوتا ہے۔ تاہم، μC/OS-III ملٹی ٹاسکنگ کی حمایت کرتا ہے اور کسی ایپلی کیشن کو کسی بھی تعداد میں کام کرنے کی اجازت دیتا ہے۔ کاموں کی زیادہ سے زیادہ تعداد پروسیسر کے لیے دستیاب کمپیوٹر میموری (کوڈ اور ڈیٹا اسپیس دونوں) کی مقدار سے محدود ہوتی ہے۔ کسی کام کو مقررہ تکمیل تک انجام دیا جا سکتا ہے، جس میں کام ختم ہونے پر خود کو حذف کر دیتا ہے، یا زیادہ عام طور پر ایک لامحدود لوپ کے طور پر، واقعات کے ہونے کا انتظار کرتا ہے اور ان واقعات پر کارروائی کرتا ہے۔ میموری مینجمنٹ کا انتظام اسی طرح کیا جاتا ہے جس طرح μC/OS-II میں کیا جاتا ہے۔ وقت کا انتظام کرنا، μC/OS-III اسی وقت کے انتظام کی خصوصیات پیش کرتا ہے جیسے کہ μC/OS-II۔ یہ ایپلی کیشنز کو خدمات بھی فراہم کرتا ہے تاکہ ٹاسک صارف کے طے شدہ وقت کی تاخیر کے لیے ان کی کارکردگی کو معطل کر سکیں۔ تاخیر کی وضاحت کئی گھڑی ٹک، یا گھنٹے، منٹ، سیکنڈ، اور ملی سیکنڈ کے ذریعے کی جاتی ہے۔ کاموں کے درمیان بات چیت بعض اوقات، کسی کام یا آئی ایس آر کو معلومات کو دوسرے کام تک پہنچانا ضروری ہوتا ہے، کیونکہ ایک ہی وقت میں ایک ہی مخصوص ڈیٹا یا ہارڈ ویئر وسائل تک رسائی حاصل کرنا دو کاموں کے لیے غیر محفوظ ہے۔ اسے معلومات کی منتقلی کے ذریعے حل کیا جا سکتا ہے، جسے انٹر ٹاسک کمیونیکیشن کہا جاتا ہے۔ کاموں کے درمیان معلومات کو دو طریقوں سے منتقل کیا جا سکتا ہے: عالمی ڈیٹا کے ذریعے، یا پیغامات بھیج کر۔ عالمی متغیرات کا استعمال کرتے وقت، ہر ٹاسک یا آئی ایس آر کو یقینی بنانا چاہیے کہ اسے متغیرات تک خصوصی رسائی حاصل ہے۔ اگر کوئی آئی ایس آر ملوث ہے، تو عام متغیرات تک خصوصی رسائی کو یقینی بنانے کا واحد طریقہ انٹرپٹس کو غیر فعال کرنا ہے۔ اگر دو ٹاسک ڈیٹا کا اشتراک کرتے ہیں، تو ہر ایک یا تو انٹرپٹس کو غیر فعال کرکے، شیڈولر کو لاک کرکے، سیمافور کا استعمال کرکے، یا ترجیحی طور پر، باہمی اخراج سیمافور کا استعمال کرکے متغیرات تک خصوصی رسائی حاصل کر سکتا ہے۔ پیغامات کو یا تو انٹرمیڈیٹ آبجیکٹ پر بھیجا جا سکتا ہے جسے میسج کیو کہا جاتا ہے، یا براہ راست کسی ٹاسک پر، کیونکہ μC/OS-III میں، ہر ٹاسک کی اپنی بلٹ ان میسج کیو ہوتی ہے۔ اگر متعدد کاموں کو پیغامات کا انتظار کرنا ہے تو بیرونی پیغام کی قطار کا استعمال کریں۔ کسی ٹاسک کو براہ راست پیغام بھیجیں اگر صرف ایک ٹاسک موصولہ ڈیٹا پر کارروائی کرے گا۔ جب کہ ایک ٹاسک پیغام کے آنے کا انتظار کرتا ہے، یہ سی پی یو کا کوئی وقت استعمال نہیں کرتا ہے۔ بندرگاہ ایک بندرگاہ میں تین پہلو شامل ہوتے ہیں: سی پی یو، او ایس، اور بورڈ مخصوص (بی ایس پی) کوڈ۔ ایم یو سی/او ایس-II اور ایم یو سی/او ایس-III میں مارکیٹ میں سب سے زیادہ مقبول پروسیسرز اور بورڈز کے لیے بندرگاہیں ہیں اور یہ حفاظتی اہم سرایت شدہ نظاموں جیسے ہوا بازی، طبی نظام اور جوہری تنصیبات میں استعمال کے لیے موزوں ہیں۔ ایک μC/OS-III پورٹ میں تین دانا مخصوص فائلوں کے مندرجات کو لکھنا یا تبدیل کرنا شامل ہے: OS_CPU.H، OS_CPU_A.ASM، اور OS_CPU_C.C۔ آخر میں استعمال ہونے والے تشخیصی بورڈ یا ٹارگٹ بورڈ کے لیے بورڈ سپورٹ پیکیج (بی ایس پی) بنائیں یا تبدیل کریں۔ ایک ایم یو سی/او ایس-III پورٹ ایم یو سی/او ایس-II پورٹ سے ملتا جلتا ہے۔ یہاں درج کردہ بندرگاہوں سے نمایاں طور پر زیادہ بندرگاہیں ہیں، اور بندرگاہیں مسلسل ترقی کے تابع ہیں۔ ایم یو سی/او ایس-II اور ایم یو سی/او ایس-III دونوں کو مقبول ایس ایس ایل/ٹی ایل ایس لائبریریوں جیسے ولف ایس ایس ایل کی حمایت حاصل ہے، جو تمام کنکشنز میں سیکیورٹی کو یقینی بناتے ہیں۔ لائسنسنگ میں تبدیلی سلیکن لیبز کے حصول کے بعد، 2020 میں مائکریم فروری 2020 میں اوپن سورس ماڈل لائسنسنگ میں تبدیل ہو گیا۔ اس میں یو سی/او ایس III، تمام سابقہ ورژن، تمام اجزاء شامل ہیں: یو ایس بی، فائل سسٹم، جی یو آئی، ٹی سی پی/آئی پی وغیرہ۔ دستاویزات اور معاونت ایک عام سپورٹ فورم، اور کئی جامع کتابوں کے ذریعے دستیاب ہے، جن میں سے کئی مائیکرو کنکولر فن تعمیر اور ترقیاتی پلیٹ فارم کے مطابق، مفت پی ڈی ایف کے طور پر، یا ہارڈ کور میں کم قیمت کی خریداری کے طور پر دستیاب ہیں۔ مائکریم اور دیگر فریقوں سے ادا شدہ حمایت دستیاب ہے۔ حوالہ جات ذرائع پروٹوکول سپورٹ برائے فیوژن ایمبیڈڈ مائیکریم-یو سی او ایس-III-صارفین سے ایمبیڈڈ مائیکریم-یو سی او ایس-III-صارفین دستی پہلا ایڈیشن یو سی/او ایس-III: رینیسا آر ایکس 62 این کے لیے ریئل ٹائم کرنل بیرونی لنکس کا خلاصہ عام طور پر استعمال شدہ یو سی/او ایس-II افعال اور ڈیٹا ڈھانچے مائیکرو سی/او ایس-II کے ساتھ این او ایس آئی آئی جی سی حوالہ دستی ایمبیڈڈڈ آپریٹنگ سسٹم اے آر ایم پر مبنی آپریٹنگ سسٹم مائیکرو کرنلز چلانے والی ایمبیڈڈ آپریٹنگ سسٹم کیسے حاصل کریں