في مقالة حوسبة الزمن الحقيقي عرفنا أنظمة الوقت الحقيقي و كيف أنها مقيدة بزمن استجابة معينة ، و ذكرنا أنه من أجل تلبية مثل هذه المتطلبات فإن تم تطوير أنظمة تشغيل خاصة بالوقت الحقيقي ، و اليوم سنركز بشكل أكثر على هذه الأنظمة.
أنظمة التشغيل الوقت الحقيقي Real-Time Operating System (RTOS) ، هي أنظمة تشغيل متعددة المهام موجهة لتطبيقات الوقت الحقيقي ، مثل الأنظمة المضمنة ، و الروبورتات ، و سفن الفضاء ، و المتحكمات الصناعية ، و معدات البحث العلمي.
تسهل أنظمة RTOS عملية إنشاء أنظمة وقت الحقيقي ، ولكنها لا تضمن أن النتيجة النهائية ستكون نظام وقت حقيقي بل هي مسؤولية المطورين ليضمن ذلك ، وليس بالضرورة أن تكون لهذه الأنظمة سعة معالجة كبيرة ، ولكنها تقدم تسهيلات لو استغلت بالشكل الصحيح فإنها تضمن أن النظام سيستجيب للأحدث في الوقت المحددة له.
و تستعمل أنظمة RTOS عادة خوارزميات متخصصة لجدولة العمليات من أجل تزويد المطورين بالأدوات اللازمة لإنتاج أنظمة وقت حقيقية قاسية ، و هي تتفاضل فيما بينها في مدى سرعة و طبيعة الاستجابة للحدث وليس في كمية العمل المنجز في فترة زمنية معينة كما هي الحال في أنظمة التشغيل العامة. و يعتبر تقليل مدة تأخير المقاطعة interrupt latency و مدة تأخير التبديل بين الخيوط thread switching latency من أهم الأشياء في أنظمة تشغيل الوقت الحقيقي.
ولكي تؤدي أنظمة التشغيل الوقت الحقيقي مهمتها فإنها تتبع عدة طرق من بينها :
- تقوم بتنفيذ عدد قليل من المهام ؛ حتى تتمكن من ضمان أن المهام ستنفذ في قبل انتهاء وقتها.
- تقوم بإسقاط أو تقليل بعض الوظائف المعينة ، عندما لا يمكن أن تنفذ في المدة الزمنية المحددة ("load shedding")
- تقوم بمراقبة المدخلات بشكل مستمر و مع مراقبة الوقت
- تقوم بمراقبة الموارد ، و يمكن أن تقاطع العمليات الخلفية كما احتيج إلى ضمان تنفيذ في الوقت الحقيقي.
- تقوم بتوقع الطلبات المهمة ، و بعدها تحرر بعض موارد النظام بما يكفي لتنفيذها في الوقت المحدد.
- تقوم بمتابعة كيفية استهلاك مورد من موارد الجهاز في أسوء الظروف بواسطة المهام الحالية ، و ترفض استقبال أي مهمة جديدة إلا إذا كانت تتناسب مع المصادر الحرة المتبقية.
عادة تكون أنظمة تشغيل الوقت الحقيقي مسيرة بواسطة الأحداث أو أنها متشاركة الوقت ، في الحالة الأولى يتم التبديل بين المهام فقط عندما تكون هناك مهمة ذات أولوية أعلى يجب أن يستجاب لها ، أما في الحالة الثانية فإن النظام يبدل بين المهام بشكل دوري مع الوقت ؛ مما يوهم العملية بأنها هي المستخدم الوحيد للنظام.
المصادر :