|
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:328
|
|
08-06-2015, 10:58 AM
المشاركة 7
|
|
نظام تشغيل الزمن الحقيقى (الفعلى) RTOS :
نظام تشغيل الزمن الحقيقى (الفعلى) RTOS :
تبنى أنظمة تشغيل الزمن الحقيقى حول نواة متعددة المهام والتى تسيطر على تخصيص شرائح زمنية للمهام . الشريحة الزمنية هى الفترة الزمنية التى تمتلكها مهمة معينة للتنفيذ قبل أن يتم إيقافها واستبدالها بمهمة أخرى . هذه المهمة ، والتى تعرف أيضا باسم "تبديل السياق أو الحالة" context switching ، تتكرر باستمرار . عندما يحدث تبديل السياق ، يتم إيقاف تنفيذ المهمة ، ويتم حفظ سجلات المعالج فى الذاكرة ، يتم تحميل سجلات المهمة التالية المتاحة إلى وحدة المعالجة المركزية ، ويبدأ تنفيذ المهمة الجديدة . كما يوفر نظام RTOS أيضا مرور الرسائل من مهمة إلى مهمة ، وتزامن المهام ، وتخصيص مشاركة الموارد للمهام .
الأجزاء الأساسية لنظام RTOS هى :
• الجدولة Scheduler .
• خدمات نظام RTOS .
• أدوات التزامن والرسائل .
الجدولة Scheduler :
الجدولة هى قلب كل نظام RTOS ، حيث أنها توفر الخوارزميات (خطوات البرنامج) لاختيار المهام لتنفيذها . الثلاثة خوارزميات الأكثر شيوعا (استخداما) وهى :
• الجدولة التعاونية Cooperative scheduling .
• جدولة الذهاب والإياب Round-robin scheduling .
• الجدولة الوقائية (الاستباقية) Preemptive scheduling .
الجدولة التعاونية :
لعلها تكون أبسط خوارزمية جدولة متاحة . فكل مهمة يتم تشغيلها حتى تكتمل وتتخلى عن وحدة المعالجة المركزية طوعا . الجدولة التعاونية لا يمكن أن تلبى احتياجات نظام ROTS ، حيث لا يمكنها أن تدعم تحديد أولويات المهام حسب الأهمية . أيضا ، فإن مهمة واحدة قد تستخدم وحدة المعالجة المركزية وقتا طويلا وتترك القليل من الوقت للمهام الأخرى . كما أن المجدول لا يوجد لديه السيطرة على زمن تنفيذ مختلف المهام . مخطط الحالة هو نموذج بسيط لتقنية الجدولة التعاونية .
جدولة الذهاب والإياب :
فى جدولة الذهاب والإياب ، لكل مهمة يتم تخصيص (تعيين) حصة متساوية من وقت وحدة المعالجة المركزية ، كما هو مبين بالشكل التالى :
يوجد عداد counter يتتبع شريحة الوقت لكل مهمة . فعند اكتمال شريحة الوقت لمهمة ما ، فإنه يتم مسح (تصفير) العداد ويتم وضع المهمة فى نهاية الدورة . المهام المضافة حديثا يتم وضعها فى نهاية الدورة مع تصفير العدادات الخاصة بها . وهذا يشبه الجدولة التعاونية ، من حيث أنه غير مفيد بشكل جيد فى نظام RTOS ، حيث أنه فى كثير من الأحيان تستغرق بعض المهام عدة ملى ثوانى فى حين أن البعض الآخر يتطلب مئات الملى ثوانى أو أكثر .
الجدولة الاستباقية (الوقائية) :
تعتبر الجدولة الاستباقية هى خوارزمية جدولة الزمن الحقيقى . فهى قائمة على الأولوية ، وكل مهمة تعطى أولوية معينة كما فى الشكل التالى :
المهمة ذات الأولوية الأعلى تحصل على وقت وحدة المعالجة المركزية . بشكل عام ، تدعم أنظمة RTOS مستويات ولوية تتراوح من 0 إلى 255 ، حيث الصفر هو الأعلى أولوية و 255 هو الأدنى أولوية .
فى بعض أنظمة RTOS حيث يمكن أن يكون هناك أكثر من مهمة واحدة على نفس المستوى من الأولوية ، عندئذ يتم مزج الجدولة الاستباقية مع جدولة الذهاب والإياب . فى مثل هذه الحالات ، المهام التى عند مستويات الأولوية الأعلى يتم تشغيلها قبل التى لها مستويات أقل ، والمهام التى عند نفس مستوى الأولوية يتم تشغيلها عن طريق الجدولة ذهابا وإيابا . إذا سبقت مهمة بواسطة مهمة ذات أولوية أعلى ، فإنه يتم حفظ عداد زمن التشغيل وبعد ذلك يتم إستعادته عندما يعود لها اليسطرة على وحدة المعالجة المركزية .
فى بعض النظم يتم تعريف فئة أولوية زمن حقيقى بشكل صارم حيث المهام فوق هذه الفئة قد تعمل لتكتمل ( أو تستمر فى العمل حتى يصبح المورد غير متوفر ) حتى لو كانت هناك مهام أخرى على نفس مستوى الأولوية .
فى نظام الوقت الحقيقى يمكن أن تكون المهمة فى أى من الحالات التالية , كما هو موضح بالشكل أدناه :
• متأهب (مستعد – جاهز) للتشغيل Ready to run .
• تشغيل Running .
• ممنوع (محظور) Blocked .
عند بداية إنشاء المهمة ، فهى عادة ما تكون جاهزة للتشغيل ويتم إدخالها فى قائمة المهام . من هذه الحالة ، ورهنا بخوارزمية الجدولة ، يمكن أن تصبح المهمة ، مهمة قيد التشغيل . ووفقا لشروط الجدولة الاستباقية ، سوف يتم تشغيل المهمة إذا كان لها الأولوية الأعلى فى النظام ولا تنتظر من أجل المورد .
المهمة قيد التشغيل تصبح مهمة محظورة إذا احتاجت مورد غير متوفر . على سبيل المثال ، مهمة قد تحتاج بيانات من محول من تناظرى لرقمى ADC ويتم حجزها (منعها) حتى تتوفر هذه البيانات . بمجرد أن يمكن الوصول للمورد ، تصبح المهمة الممنوعة مهمة قيد التشغيل إذا كانت مهمة الأولوية الأعلى فى النظام ، وإن لم تكن كذلك ، فإنها تنتقل إلى حالة الاستعداد (جاهز) ready . فقط ، يمكن أن يتم منع المهمة قيد التشغيل . لا يمكن منع المهمة فى حالة الاستعداد .
عندما تنتقل مهمة من حالة إلى أخرى ، فإن المعالج يحفظ سياق المهمة قيد التشغيل فى الذاكرة ، ويحمل سياق المهمة الجديدة من الذاكرة ، وبعد ذلك يتم تنفيذ التعليمات الجديدة على النحو المطلوب .
عادة توفر النواة kernel واجهة لمعالجة عمليات المهمة . عمليات المهمة النموذجية هى :
• إنشاء المهمة .
• حذف المهمة .
• تغيير أولوية المهمة .
• تغيير حالة المهمة .
خدمات نظام RTOS :
|