أنظمة تشغيل المتحكمات الدقيقة
نظام التشغيل Micro-Controller Operating Systems ( MicroC/OS ، أو μC/OS ، أو Micrium OS ) هو نظام تشغيل في الوقت الحقيقي (RTOS) صممه جان جيه لابروس في عام 1991. وهو عبارة عن نواة في الوقت الحقيقي تعتمد على الأولوية وتعتمد على الاستباق للمعالجات الدقيقة ، مكتوبة في الغالب بلغة البرمجة C. وهو مخصص للاستخدام في الأنظمة المدمجة .
يُتيح نظام التشغيل MicroC/OS تعريف عدة وظائف بلغة C، حيث يمكن لكل منها أن تُنفَّذ كخيط أو مهمة مستقلة. تعمل كل مهمة بأولوية مختلفة، وكأنها تمتلك وحدة المعالجة المركزية (CPU). يمكن للمهام ذات الأولوية الأعلى أن تُقاطع المهام ذات الأولوية المنخفضة في أي وقت. تستخدم المهام ذات الأولوية الأعلى خدمات نظام التشغيل (مثل التأخير أو الحدث) للسماح للمهام ذات الأولوية المنخفضة بالتنفيذ. تُوفَّر خدمات نظام التشغيل لإدارة المهام والذاكرة، والتواصل بين المهام، والتوقيت. [ 4 ]
تاريخ
نُشرت نواة نظام التشغيل MicroC/OS في الأصل في مقال من ثلاثة أجزاء في مجلة Embedded Systems Programming وكتاب μC/OS The Real-Time Kernel للمؤلف لابروز. [ 5 ] كان ينوي في البداية وصف المكونات الداخلية لنظام تشغيل محمول طوره لاستخدامه الشخصي، لكنه طوره لاحقًا كمنتج تجاري في شركته الخاصة Micrium, Inc. في الإصدارين الثاني والثالث.
في عام 2016، استحوذت شركة Silicon Laboratories على شركة Micrium, Inc. [ 6 ] وتم إصدارها لاحقًا كمصدر مفتوح بموجب ترخيص Apache .
تواصل شركة Silicon Labs دعم منتج مفتوح المصدر يُسمى Micrium OS لاستخدامه على رقائق السيليكون الخاصة بها [ 7 ]، كما تقدم مجموعة من الموظفين السابقين في شركة Micrium, Inc. (بمن فيهم لابروز) الاستشارات والدعم لكل من μC/OS وCesium RTOS، وهو نظام تشغيل مشتق خاص تم تطويره بعد فترة وجيزة من إصدار النسخة مفتوحة المصدر. [ 8 ]
μC/OS-II
استنادًا إلى الشفرة المصدرية المكتوبة لنظام التشغيل μC/OS ، والذي طُرح كمنتج تجاري عام 1998، يُعدّ نظام التشغيل μC/OS-II نواةً محمولةً وقابلةً للتوسيع وقابلةً للاستباق وتعمل في الوقت الحقيقي وتعتمد على الحتمية وتدعم تعدد المهام، وهي مُصممة للمعالجات الدقيقة ومعالجات الإشارات الرقمية (DSPs). يدير هذا النظام ما يصل إلى 64 مهمة، ويمكن تقليص حجمه (بين 5 و24 كيلوبايت) ليحتوي فقط على الميزات اللازمة لاستخدام مُحدد.
معظم نظام التشغيل μC/OS-II مكتوب بلغة ANSI C سهلة النقل ، بينما كُتبت التعليمات البرمجية الخاصة بالمعالج المستهدف بلغة التجميع . وقد تم تقليل استخدام لغة التجميع إلى الحد الأدنى لتسهيل نقل النظام إلى معالجات أخرى.
الاستخدامات في الأنظمة المدمجة
صُمم نظام التشغيل μC/OS-II للاستخدامات المدمجة. إذا كان لدى المُصنِّع مجموعة الأدوات المناسبة (أي مُترجم لغة C، ومُجمِّع، ومُحدِّد موقع الرابط )، فيمكن تضمين نظام التشغيل μC/OS-II كجزء من المنتج.
يُستخدم نظام التشغيل μC/OS-II في العديد من الأنظمة المدمجة، بما في ذلك:
- إلكترونيات الطيران
- المعدات والأجهزة الطبية
- معدات اتصالات البيانات
- الأجهزة المنزلية البيضاء ( الأجهزة الكهربائية )
- الهواتف المحمولة ، والمساعدات الرقمية الشخصية (PDAs)، وأجهزة الاتصال المتنقلة (MIDs)
- أنظمة التحكم الصناعية
- الإلكترونيات الاستهلاكية
- السيارات
حالات المهام
نظام التشغيل μC/OS-II هو نظام تشغيل متعدد المهام . كل مهمة عبارة عن حلقة لا نهائية ويمكن أن تكون في أي من الحالات الخمس التالية (انظر الشكل أدناه أيضًا).
- خامل
- مستعد
- جري
- انتظار (حدث ما)
- مقاطعة ( روتين خدمة المقاطعة (ISR))
علاوة على ذلك، يمكنه إدارة ما يصل إلى 64 مهمة. ومع ذلك، يُوصى بتخصيص ثماني مهام منها لنظام μC/OS-II ، مما يترك للتطبيق ما يصل إلى 56 مهمة. [ 9 ]
حبوب
النواة هي الاسم الذي يُطلق على البرنامج الذي يُنفّذ معظم مهام الصيانة لنظام التشغيل. يُسلّم مُحمّل الإقلاع التحكم إلى النواة، التي تُهيّئ الأجهزة المختلفة إلى حالة معروفة وتُجهّز الحاسوب للعمليات العامة. النواة مسؤولة عن إدارة المهام (أي إدارة وقت وحدة المعالجة المركزية) والتواصل بين المهام. [ 10 ] الخدمة الأساسية التي تُقدّمها النواة هي تبديل السياق .
يُعدّ المُجدوِل جزءًا من نواة النظام المسؤول عن تحديد المهمة التي ستُنفَّذ تاليًا. [ 11 ] تعتمد معظم نوى أنظمة الوقت الحقيقي على نظام الأولوية. في هذا النوع من النوى، تُمنح السيطرة على وحدة المعالجة المركزية دائمًا للمهمة ذات الأولوية الأعلى والجاهزة للتنفيذ. يوجد نوعان من نوى أنظمة الوقت الحقيقي القائمة على نظام الأولوية: غير استباقية واستباقية . تتطلب النوى غير الاستباقية من كل مهمة القيام بشيء ما للتخلي صراحةً عن السيطرة على وحدة المعالجة المركزية. [ 11 ] تُستخدم النواة الاستباقية عندما تكون استجابة النظام أكثر أهمية. ولذلك، فإن نظام μC/OS-II ومعظم نوى أنظمة الوقت الحقيقي التجارية هي نوى استباقية. [ 12 ] تُمنح السيطرة على وحدة المعالجة المركزية دائمًا للمهمة ذات الأولوية الأعلى والجاهزة للتنفيذ.
توزيع المهام
تُعطى المهام ذات معدل التنفيذ الأعلى أولوية قصوى باستخدام جدولة المعدل الرتيب . [ 13 ] تُستخدم خوارزمية الجدولة هذه في أنظمة التشغيل في الوقت الحقيقي (RTOS) مع فئة جدولة ذات أولوية ثابتة . [ 14 ]
إدارة المهام
في مجال الحوسبة ، تُعدّ المهمة وحدة تنفيذ . في بعض أنظمة التشغيل ، تُعتبر المهمة مرادفةً للعملية ، وفي أنظمة أخرى تُعتبر مرادفةً للخيط . في أنظمة معالجة الدفعات الحاسوبية، تُعتبر المهمة وحدة تنفيذ ضمن وظيفة . يستطيع مستخدم نظام μC/OS-II التحكم في المهام باستخدام الميزات التالية:
- ميزة المهام
- إنشاء المهام
- مجموعة المهام وفحص المكدس
- حذف المهمة
- تغيير أولوية المهمة
- تعليق المهمة واستئنافها
- الحصول على معلومات حول مهمة [ 15 ]
إدارة الذاكرة
لتجنب التجزئة ، يسمح نظام التشغيل μC/OS-II للتطبيقات بالحصول على كتل ذاكرة ثابتة الحجم من قسم مُكوّن من منطقة ذاكرة متجاورة. جميع كتل الذاكرة متساوية الحجم، ويحتوي القسم على عدد صحيح من الكتل. يتم تخصيص وإلغاء تخصيص كتل الذاكرة هذه في وقت ثابت، وهو نظام حتمي . [ 16 ]
إدارة الوقت
يتطلب نظام التشغيل μC/OS-II توفير مصدر زمني دوري لتتبع التأخيرات الزمنية والمهلات. يجب أن يحدث النبض بين 10 و1000 مرة في الثانية، أو هرتز . كلما زاد معدل النبض، زاد الحمل الزائد الذي يفرضه نظام μC/OS-II على النظام. يعتمد تردد نبض الساعة على دقة النبض المطلوبة للتطبيق. يمكن الحصول على مصادر النبض بتخصيص مؤقت مادي، أو بتوليد مقاطعة من خط طاقة تيار متردد (50 أو 60 هرتز). يُطلق على هذا المصدر الزمني الدوري اسم نبض الساعة. [ 17 ]
بعد تحديد توقيت بدء المهمة ، يمكن أن تكون المهام كالتالي:
- تأجيل مهمة
- استئناف مهمة مؤجلة
التواصل بين المهام
تتم عملية الاتصال بين المهام أو العمليات في نظام التشغيل μC/OS-II عبر: الإشارات ، وصناديق البريد، وقوائم الانتظار، والمهام، وروتينات خدمة المقاطعة (ISRs). ويمكن لهذه العناصر التفاعل فيما بينها عندما تُرسل مهمة أو روتين خدمة مقاطعة إشارة إلى مهمة أخرى عبر كائن في نواة النظام يُسمى كتلة التحكم في الأحداث (ECB). وتُعتبر هذه الإشارة حدثًا.
μC/OS-III
μC/OS-III هو اختصار لـ Micro-Controller Operating Systems Version 3، الذي تم تقديمه في عام 2009 وإضافة وظائف إلى μC/OS-II RTOS.
يُقدّم نظام التشغيل μC/OS-III جميع ميزات ووظائف نظام التشغيل μC/OS-II . ويكمن الاختلاف الأبرز في عدد المهام المدعومة. يسمح نظام التشغيل μC/OS-II بمهمة واحدة فقط في كل مستوى من مستويات الأولوية البالغ عددها 255، بحد أقصى 255 مهمة. بينما يسمح نظام التشغيل μC/OS-III بأي عدد من مهام التطبيق، ومستويات الأولوية، والمهام في كل مستوى، ولا يحدّ من ذلك سوى وصول المعالج إلى الذاكرة. [ 18 ] [ 19 ]
يتم حاليًا صيانة μC/OS-II و μC/OS-III بواسطة Micrium, Inc.، وهي شركة تابعة لشركة Silicon Labs، ويمكن ترخيصها لكل منتج أو لكل خط إنتاج.
الاستخدامات في الأنظمة المدمجة
الاستخدامات هي نفسها كما في μC/OS-II
حالات المهام
نظام التشغيل μC/OS-III هو نظام تشغيل متعدد المهام . كل مهمة عبارة عن حلقة لا نهائية، ويمكن أن تكون في إحدى خمس حالات (خاملة، جاهزة، قيد التشغيل، مقاطعة، أو معلقة). يدعم μC/OS-III عددًا غير محدود من أولويات المهام، ولكن عادةً ما يكون ضبطه على ما بين 32 و256 أولوية مناسبًا لمعظم الأنظمة المدمجة. [ 20 ]
جدولة التناوب الدوري
عندما تتساوى مهمتان أو أكثر في الأولوية، يسمح نظام التشغيل لإحدى المهمتين بالعمل لفترة زمنية محددة مسبقًا، تُسمى " الكمية" ، ثم يختار مهمة أخرى. تُعرف هذه العملية باسم جدولة التناوب الدوري أو تقسيم الوقت. يُعطي نظام التشغيل التحكم للمهمة التالية في الترتيب إذا:
- لا يوجد عمل يتعين على المهمة الحالية القيام به خلال الفترة الزمنية المخصصة لها، أو
- تكتمل المهمة الحالية قبل نهاية الفترة الزمنية المخصصة لها، أو
- انتهت الفترة الزمنية.
حبوب
وظيفة kernel لـ μC/OS-III هي نفسها لـ μC/OS-II .
إدارة المهام
تُدار المهام بنفس طريقة نظام μC/OS-II . مع ذلك، يدعم نظام μC/OS-III تعدد المهام، مما يسمح للتطبيق بتنفيذ أي عدد من المهام. ويُحدَّد الحد الأقصى لعدد المهام فقط بمقدار ذاكرة الحاسوب (مساحة التعليمات البرمجية والبيانات) المتاحة للمعالج.
يمكن تنفيذ المهمة عن طريق التشغيل حتى اكتمالها المجدول، حيث تقوم المهمة بحذف نفسها عند الانتهاء، أو بشكل أكثر شيوعًا كحلقة لا نهائية، في انتظار حدوث الأحداث ومعالجة تلك الأحداث.
إدارة الذاكرة
تتم إدارة الذاكرة بنفس الطريقة المتبعة في نظام التشغيل μC/OS-II .
إدارة الوقت
يُقدّم نظام التشغيل μC/OS-III نفس ميزات إدارة الوقت التي يُقدّمها نظام التشغيل μC/OS-II . كما يُوفّر خدمات للتطبيقات تُمكّن المهام من تعليق تنفيذها لفترات زمنية يُحدّدها المستخدم. تُحدّد هذه الفترات الزمنية بعدد من نبضات الساعة، أو بالساعات والدقائق والثواني والمللي ثانية .
التواصل بين المهام
في بعض الأحيان، يجب على مهمة أو روتين خدمة معلومات (ISR) تبادل المعلومات مع مهمة أخرى، لأنه من غير الآمن أن تصل مهمتان إلى نفس البيانات أو موارد الأجهزة المحددة في الوقت نفسه. يمكن حل هذه المشكلة عبر نقل المعلومات، والذي يُسمى التواصل بين المهام. ويمكن تبادل المعلومات بين المهام بطريقتين: عبر البيانات العامة، أو عن طريق إرسال الرسائل.
عند استخدام المتغيرات العامة، يجب على كل مهمة أو روتين خدمة مقاطعة (ISR) ضمان الوصول الحصري إلى هذه المتغيرات. في حال وجود روتين خدمة مقاطعة، فإن الطريقة الوحيدة لضمان الوصول الحصري إلى المتغيرات المشتركة هي تعطيل المقاطعات . إذا كانت مهمتان تتشاركان البيانات، فيمكن لكل منهما الحصول على وصول حصري إلى المتغيرات إما عن طريق تعطيل المقاطعات، أو قفل المجدول، أو استخدام إشارة مرور ، أو يُفضل استخدام إشارة مرور للاستبعاد المتبادل . يمكن إرسال الرسائل إما إلى كائن وسيط يُسمى قائمة انتظار الرسائل ، أو مباشرةً إلى مهمة، حيث أن لكل مهمة في نظام μC/OS-III قائمة انتظار رسائل مدمجة خاصة بها. استخدم قائمة انتظار رسائل خارجية إذا كانت عدة مهام ستنتظر الرسائل. أرسل رسالة مباشرةً إلى مهمة إذا كانت مهمة واحدة فقط ستعالج البيانات المستلمة. أثناء انتظار المهمة لوصول رسالة، فإنها لا تستهلك أي وقت من وحدة المعالجة المركزية.
الموانئ
يتضمن منفذ النظام ثلاثة جوانب: وحدة المعالجة المركزية، ونظام التشغيل، وشفرة خاصة باللوحة (BSP). يتوفر لكل من μC/OS-II و μC /OS-III منافذ لمعظم المعالجات واللوحات الشائعة في السوق، وهما مناسبان للاستخدام في الأنظمة المدمجة الحساسة للسلامة ، مثل أنظمة الطيران والأنظمة الطبية والمنشآت النووية. يتطلب منفذ μC / OS -III كتابة أو تعديل محتويات ثلاثة ملفات خاصة بنواة النظام : . ...OS_CPU.HOS_CPU_A.ASMOS_CPU_C.C
تغيير الترخيص
بعد استحواذ شركة Silicon Labs عليها، تحولت شركة Micrium في عام 2020 إلى نموذج ترخيص مفتوح المصدر في فبراير 2020. وهذا يشمل uC/OS III وجميع الإصدارات السابقة وجميع المكونات: USB ونظام الملفات وواجهة المستخدم الرسومية وTCP/IP وما إلى ذلك.
التوثيق والدعم
يتوفر الدعم عبر منتدى دعم نموذجي، بالإضافة إلى العديد من الكتب الشاملة، بعضها مصمم خصيصًا لبنية متحكم دقيق ومنصة تطوير معينة، بصيغة PDF مجانية، أو كنسخة ورقية بسعر منخفض. كما يتوفر دعم مدفوع من شركة ويستون للحلول المدمجة.
مراجع
- ↑ "منصة جيكو 4.2.0.0 GA" (ملف PDF) . 14-12-2022 . تم الاطلاع عليه بتاريخ 04-01-2023 .
- ↑ "إصدارات gecko_sdk على github.com" . GitHub . تم الاطلاع عليه بتاريخ 4 يناير 2023 .
- 1 2 3 "ملاحظات إصدار Cs/OS3" . حلول ويستون المدمجة.
- ↑ "NiosII GCC مع MicroC/OS" . كلية الهندسة الكهربائية وهندسة الحاسوب . جامعة كورنيل. يونيو 2006. تم الاطلاع عليه بتاريخ 25 أبريل 2017 .
- ^ لابروس ، جان ج. (15 يونيو 2002). μC/OS نواة الوقت الحقيقي ( الطبعة الثانية). الصحافة اتفاقية حقوق الطفل. رقم ISBN 978-1578201037.
- ↑ "ما هو ميكريوم؟" . ويستون للحلول المدمجة . تم الاطلاع عليه بتاريخ 4 يناير 2023 .
- ↑ "برنامج ووثائق مايكروم" . تم الاطلاع عليه بتاريخ 2023-01-04 .
- ↑ "لماذا نظام التشغيل Cesium RTOS؟" . حلول Weston Embedded . تم الاطلاع عليه بتاريخ 4 يناير 2023 .
- ↑ لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 77.
- ↑ لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 39.
- 1 2 لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 40.
- ↑ لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 42.
- ↑ ليو، تشونغ لانغ؛ لايلاند، جيمس دبليو. (1973). "خوارزميات الجدولة للبرمجة المتعددة في بيئة زمنية حقيقية صارمة". مجلة ACM . 20 (1): 46-61 . CiteSeerX 10.1.1.36.8216 . doi : 10.1145/321738.321743 . S2CID 59896693 .
- ↑ بوفيه، دانيال. "فهم نواة لينكس" . مؤرشف من الأصل في 2014-09-21.
- ↑ لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 45-49 .
- ↑ لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 273-285 .
- ↑ لابروس، جان ج. MicroC/OS-II: نواة الوقت الحقيقي ( الطبعة الثانية). ص 145-152 .
- ^ "مقارنة ميزات μC/OS-II وμC/OS-III" . ميكرويوم .
- ↑ "نظرة عامة على μC/OS-III" . ميكروم .
- ↑ "نظام التشغيل μC/OS-III™ في الوقت الحقيقي" (ملف PDF) . media.digikey.com .
مصادر
- دعم البروتوكول لنظام التشغيل μC/OS-II من Fusion Embedded
- دليل مستخدم Micrium-uCOS-III - الطبعة الأولى
- نظام التشغيل uC/OS-III: نواة الوقت الحقيقي لجهاز Renesas RX62N
روابط خارجية
- أنظمة التشغيل في الوقت الحقيقي
- أنظمة التشغيل المدمجة
- أنظمة تشغيل ARM
- أنظمة التشغيل القائمة على النواة المصغرة
- النوى الصغيرة
