ما هو برنامج SimSo مزاياه وخصائصه وعيوبه
برنامج SimSo.
وظائف أنظمة التشغيل في هذه الأوقات مختلفة ومتعددة، وكَثُرت معها الأدوات والبرمجيات المساعدة في تحسين بارامترات الأداء (performance parameters). ولكن يبقى أداء هذه الأنظمة مقيد، مالم يتم مراعاة شروط استجابة الزمن الفعلي أو الحقيقي (Real Time).
كما تعتبر أنظمة الوقت الفعلي من الأنظمة التي تعتمد على تحقيق استجابة، ضمن قيود زمنية متعلقة بأدنى فترة تأخير (Delay) ممكنة. أو بأقصر وقت استجابة متوقع (Response Time) وغيرها من معاملات الشبكة الأخرى. بالتالي تعتمد بعض هذه الأنظمة على خوارزميات تنفيذ المهام، وبشكل أدق خوارزميات نظام التشغيل المتبعة في جدولة المهام (scheduling algorithm).
وفكرة هذا المقال تتمحور حول موضع هذا البرنامج (SimSo) من هذه المعلومات وفائدته، لذا لنتابع معاً لنتعرف أكثر حول هذه البرمجية الفريدة.
ما هو برنامج SimSo؟
SimSo هو محاكي (simulator) جدولة هياكل نظم التشغيل متعددة المعالجات في الوقت الحقيقي أو الفعلي. بالتالي يعتمد في عمله على محاكاة عمل خوارزميات النظام المستخدمة في جدولة المهام المتعددة والقائمة على تعدد المعالجات (multiprocessor). كما وتمّ إطلاقه في 9 مارس من عام 2016.
وهو من البرامج التي تمّ إنشاؤها بناء على مفهوم نظام تشغيل الزمن الحقيقي. أي أنه بوجود المدخلات التي تمثل المهام المنشأة ضمن هذا البرنامج. والمخرجات التي تمثل نتيجة تنفيذ المهام والمعاملات المستهلكة حتى انتهاء التنفيذ. إضافة إلى بعض القيود الزمنية، ينتج لدينا برنامج محاكاة نظام زمن حقيقي.
كما ويأخذ بعين الاعتبار مجموعة من النفقات المترتبة على تنفيذ هذه المهام. على سبيل المثال، قرارات الجدولة الصادرة عن المجدول. فضلاً عن عمليات تبديل السياق (context switching)، المتعلقة بدخول المهمة ذات الأولوية الأعلى في منطقتها الحرجة (critical section).
وهو برنامج مفتوح المصدر، ومتاح للاستخدام بموجب تراخيص CECILL، كما أنه من التراخيص المتوافقة مع GPL. وقد تمت برمجته باستخدام لغة بايثون، وقابل للاستخدام على أنظمة التشغيل المختلفة بمجرد تثبيت التبعيات (dependencies). وهو ذات حجم يصل إلى 24 ميغا بايت فقط.
كما يعد من البرامج التي تدعم إنشاء المهام المتعددة واختيار المجدول وخوارزميات التوجيه التي تريدها. بالتالي، يقدم لك مجموعة من خوارزميات جدولة المهام، التي تمكنك من إنشاء المهام بسهولة واختيار الخصائص التي تريدها. أو قد ترغب بإنشاء المهام عن طريق ملفات XML مثلاً. كما أنه قادر على استيراد مخططات XSD مع الكود المصدري لها حتى لو لم تكن مكتملة.
بالإضافة إلى إتاحة الخيار للمستخدم في إنشاء سياسات الجدولة (Scheduling Policy) التي يريدها. وهذه السياسة ما هي إلا عبارة عن كود بايثون يتم تضمينه داخل هذا البرنامج، بما يدعم الهدف المطلوب.
النماذج المستخدمة في برنامج SimSo
يدعم برنامج SimSo نوعين من النماذج المستخدمة في إنشاء المهام:
النموذج الأول: إنشاء المهام باستخدام نموذج الواجهات GUI Mode ويتم إنشاء المهام باستخدام الأزرار الموضحة على واجهات هذا البرنامج.
النموذج الثاني: إنشاء المهام باستخدام Script Mode ويتم إنشاء المهام باستخدام الأكواد البرمجية المكتوبة بلغة بايثون.
ما هي مزايا برنامج SimSo؟
يتميز هذا البرنامج بمجموعة من الميزات التي تخص نظم التشغيل في الوقت الفعلي، ومن هذه الميزات نذكر:
- يحتوي على خوارزميات الجدولة وحيدة المعالج، على سبيل المثال: EDF, RM, FP, static-EDF, CC-EDF.
- يحوي على خوارزميات وحيدة المعالج والقابلة للتكيّف مع المعالجات المتعددة، على سبيل المثال: Global-EDF, Global-RM, EDZL, LLF, MLLF, priD, EDF-US, G-FL.
- يدعم المهام المتفرقة (sporadic tasks).
- تحديد سرعة كل معالج منتظم (UNIFORM).
- إمكانية تحديد وقت بدء تنفيذ المهام.
- تحديد عدد الدورات(cycles) بالميلي ثانية.
ما هي خصائص برنامج SimSo؟؟
- تحديد deadline خاص بكل مهمة، أي تحديد زمن انتهاء المهمة من عملها.
- تحديد wect، وهي مدة إنجاز المهمة لعملها.
- Act date) Activate date)، وهي اللحظة التي تبدأ فيها المهمة بالتنفيذ.
- بالنسبة للمهام المتفرقة يمكن إضافة المهام التي ستنفذ لاحقاً.
- يمكن تهيئة إعدادات المهام والجدولة يدوياً، أو من خلال ملف إعدادات وتمريره كوسيط لأحد توابع البايثون المكتوبة في Script Mode.
- كما يمكن إدخال نماذج ذاكرة الكاش (cache memory) في عمليات الجدولة باستخدام الحقل cache model.
- لكل برنامج محاكاة نظم زمن حقيقي، مجموعة من خوارزميات التقسيم المستخدمة في المجدول. بالتالي تساعد هذه الخوارزميات في تقسيم المهام عبر أزمنة محددة ضمن كل خوارزمية، ومن هذه الخوارزميات: First-Fit, Next-Fit, Best-Fit, Worst-Fit.
ما هي الفئة المستهدفة من برنامج SimSo؟
هناك ثلاث فئات مستهدفة على وجه الخصوص من هذا البرنامج وهم:
أولاً: شركات صناعة الأنظمة والبرامج:
كما ذكرنا سابقاً، إن برنامج SimSo موجه لمحاكاة أنظمة التشغيل في الوقت الفعلي. بالتالي يعتبر هذا البرنامج من ميادين تجريب الأنظمة الضخمة المتعلقة بالمهام التي تتطلب الاستجابة اللحظية. أي يقوم مصمموا البرامج بتجربة أنظمتهم ومراقبة أدائها واكتشاف أخطائها قبل إطلاقها كأنظمة مستقرة.
ثانياً: الباحثين في مجالات الشبكات
يمكن للباحثين في هذه المجالات تجريب أبحاثهم العلمية المختلفة ضمن الخدمات التي يقدمها هذا البرنامج. بغية ضمان سلامة العمل بما يوافق القيود المفروضة.
ثالثاً: الطلاب
بسبب الإمكانيات التي يقدمها هذا البرنامج، فإنه يعتبر من أفضل البرامج التي تحاكي عمل الأنظمة الفعلية التي نراها على أرض الواقع. على سبيل المثال: المصاعد وحساسات الطائرة. لذلك يمكن القول أنه من البرامج التعليمية التي تساعد في فهم كيفية عمل هذه الأنظمة.
ما هي متطلبات برنامج SimSo؟
حتى تتمكن من الاستفادة من الخدمات المقدمة من هذا البرنامج لابدّ من توافر المكتبات التالية:
- +Python 2.7.
- SimPy 2.3.1 وهو غير متوافق مع SimPy 3.
- +NumPy 1.6.
- +PyQt4 4.9.
ما هي عيوب برنامج SimSo؟
- لا يمكن تحديد السرعة المتعلقة بتنفيذ المهمة في المعالجات غير المتجانسة (heterogeneous).
- أي خطا في خوارزمية الجدولة يمكن أن يؤدي إلى فشل عام في تنفيذ المهام.
ختاماً
وممّا سبق نجد أن العوامل المتعلقة بنظام تشغيل الزمن الحقيقي متعددة. ويعود السبب في ذلك إلى أهمية هذه الأنظمة في حياتنا. ولاسيما أن مثل هذه الأنظمة باتت مستخدمة في الكثير من العمليات الحساسة.
بالتالي هو أمر يستوجب الدقة في عملها لأن الخطأ الصغير يؤول إلى نتائج كارثية. ونترك التعليق للسادة الزوار لإبداء رأيهم عن هذا المحاكي الرائع.