نظم الزمن الحقيقي
1. ماذا نقصد بالمعالجة بالزمن الحقيقي؟
لنفترض أنه لدينا نظام رقمي (برنامج معالجة صورة مثلاً)، له عدة مداخل (عدة كاميرات مراقبة مثلاً)، وعدة مخارج (شاشة عرض مثلاً).
بالتعريف، فإن زمن الاستجابة Response Time: هو الزمن الذي يستهلكه النظام لإنجاز المعالجة المطلوبة على المعطيات الواردة إلى المداخل وإخراجها على جميع المخارج.
نقول عن نظام إنه يعمل في الزمن الحقيقي إذا حقق زمن استجابته مجموعة من القيود Constraints تحددها طبيعة المعالجة المطلوبة، ونؤكد على هذه القيود وذلك لإزالة الاعتقاد الخاطئ القائل بأن نظام الزمن الحقيقي يجب أن ينفذ عملية المعالجة بسرعة كبيرة، فيمكن أن يوجد لدينا نظامان لهما زمن الاستجابة نفسه، ولكن نقول إن أحدهما هو نظام يعمل بالزمن الحقيقي أمّا الآخر فلا، فمثلاً: لنفترض وجود نظامين أحدهما يعالج الفيديو والآخر مسؤول عن قيادة صاروخ فضائي، وزمن الاستجابة لكليهما من رتبة 30 Millisecond، عندئذ فإن نظام معالجة الفيديو هو نظام زمن حقيقي أما الآخر فلا.
يمكن القول _ضمن التعريف السابق _ إن كل نظام هو نظام يعمل بالزمن الحقيقي إذا كان القيد على زمن الاستجابة مثلاً :
يوجد اعتقاد خاطئ وهو أنّه ليس هناك من داعٍ لدراسة نظم الزمن الحقيقي، ويمكن حل مشكلة القيد على زمن الاستجابة باستخدام عتاد صلب Hardware أسرع ولغة برمجة تسمح بالاستغلال الأمثل للعتاد الصلب، ولكن المشكلة هي عدم التمكن دائماً من إيجاد هذا العتاد ولغة البرمجة المناسبة.
2. أنواع نظم الزمن الحقيقي:
يمكننا تصنيف نظم الزمن الحقيقي متعددة المهام Multitask في فئتين وذلك اعتماداً على طبيعة القيود المفروضة على زمن تنفيذ كل مهمة Task، وهاتان الفئتان هما:
1. قاسية Hard: ينفذ هذا النوع من النظم المهام الموكلة إليه ضمن الزمن المحدد تماماً، وتحقيق هكذا نظام يتطلب أن تكون أزمنة التأخير Delay Time محددة من حيث نقل المعطيات من الدخل (وسائط التخزين مثلاً) إلى الزمن الذي يتطلبه النظام لتنفيذ العمليات المطلوبة. يجب استخدام عتاد صلب يساعد على بلوغ هذه الغاية، فمثلاً، استعمال وسائط التخزين المؤقتة يؤدي إلى زيادة زمن التأخير وعوضاً عنها نستخدم وسائط أسرع (الذاكرة الخابئة Cache Memory).
2. لينة Soft: ينفذ هذا النوع من النظم المهام بقيود أقل "حدة" من القاسية مع المحافظة على تصغير زمن التأخير قدر الإمكان، فمثلاً: يمكن استخدام الأولوية بين المهام المطلوب تنفيذها، ويعني استخدام الأولوية أنّه إذا كان النظام ينفذ مهمة ذات أولوية منخفضة وأتت مهمة ذات أولوية أعلى فإن النظام ينتقل لتخديم المهمة الجديدة.
3. قضايا هامة في تصميم نظم الزمن الحقيقي Real-Time Design Issues:
يجب أن يأخذ مصمم نظام الزمن الحقيقي بعين الاعتبار العديد من القضايا منها:
1. اختيار العتاد الصلب Hardware والبرمجي Software أو خلطهما معاً بحيث تبقى التكلفة منخفضة والأداء جيداً.
2. اختيار العمل بين أنظمة جاهزة أوالبدء بتصميم نظام جديد.
3. حساب تقدير وقياس استهلاك زمن وحدة المعالجة CPU بغية الوصول إلى استثمار أمثلي.
4. اختيار لغة البرمجة المناسبة لتصميم النظام: وهنا يجب أن نوافق ما بين سهولة ومرونة لغة البرمجة مع الأداء، فمثلاً، لغة المجمع هي من أفضل لغات البرمجة من حيث الاستثمار الأمثلي لـCPU لكنها بحاجة إلى جهد كبير، في حين أن لغة C أقل تعقيداً وذات أداء مقبول.
5. زيادة وثوقية النظام باتباع طرق جيدة واختبار النظام ضمن مختلف الظروف المتوقعة لعمل النظام.





