QP (إطار العمل)

QP ( منصة الكم ) هي عائلة من أطر العمل المدمجة مفتوحة المصدر في الوقت الحقيقي (RTEFs) وبيئات التشغيل ، وتعتمد على الكائنات النشطة (الممثلين) وآلات الحالة الهرمية ( مخططات حالة UML ). تتكون عائلة QP من إطاري العمل الخفيفين QP/C وQP/C++، المكتوبين بلغة C ( C99 ) وC++ ( C++11 ) على التوالي. [ 1 ]

الكائنات النشطة (الفاعلون) للوقت الحقيقي

تُعد QP RTEFs تطبيقًا لنموذج الكائن النشط (Actor) للحوسبة، وهو مصمم خصيصًا لأنظمة الوقت الحقيقي المضمنة (RTE).

يمكن دمج الكائنات النشطة (الجهات الفاعلة) مع مجموعة واسعة من نماذج الترابط، بما في ذلك نواة أنظمة التشغيل في الوقت الحقيقي (RTOS). في الحالة الأخيرة، يُطلق على هذا الدمج، المصمم لأداء حتمي، اسم إطار العمل المدمج في الوقت الحقيقي (RTEF). يستخدم هذا الإطار تجريدات ذات مستوى أعلى من نظام التشغيل في الوقت الحقيقي (RTOS) في النمذجة الرسومية وتوليد التعليمات البرمجية للأنظمة المدمجة، مما يُنتج تطبيقات أكثر أمانًا واستجابة .

مقارنة بنظام التشغيل في الوقت الحقيقي

بالمقارنة مع إطار العمل (الآني)، عند استخدام نظام تشغيل في الوقت الحقيقي ( RTOS )، يمكن كتابة الجزء الرئيسي من كل سلسلة عمليات فردية في التطبيق نفسه، ويمكن استدعاء خدمات نظام التشغيل المختلفة من هناك (مثل تأخير زمني أو إشارة مرور). [ 2 ]

عند استخدام إطار عمل، فإنك تعيد استخدام البنية العامة (مثل حلقة الأحداث لجميع الخيوط الخاصة بالكائنات النشطة) وتكتب فقط الكود الذي يستدعيه إطار العمل. يؤدي هذا إلى عكس التحكم، مما يسمح لإطار العمل بفرض أفضل ممارسات البرمجة المتزامنة تلقائيًا.

آلات الحالة الهرمية

يُحدد سلوك الكائنات النشطة (الفاعلين) في البرمجة التربيعية (QP) باستخدام آلات الحالة الهرمية ( مخططات حالة UML ). تدعم هذه الأطر البرمجة اليدوية لآلات حالة UML بلغة C أو C++ ، بالإضافة إلى توليد الكود تلقائيًا بالكامل باستخدام أداة نمذجة QM الرسومية المجانية. [ 3 ]

تُستخدم أطر عمل البرمجة التربيعية وأداة نمذجة ميكانيكا الكم في الأجهزة الطبية ، والدفاع والفضاء، والروبوتات ، والإلكترونيات الاستهلاكية ، والاتصالات السلكية واللاسلكية ، والأتمتة الصناعية ، والنقل ، وغيرها الكثير.

بنية ومكونات QP

يتكون QP من معالج أحداث عالمي متوافق مع UML (QEP)، وإطار عمل محمول يعتمد على الأحداث ويعمل في الوقت الحقيقي (QF)، ومجموعة مختارة من النوى المدمجة في الوقت الحقيقي (QV أو QK أو QXK)، ونظام تتبع البرامج (QS).

الشكل 1: مخطط كتلي يوضح مكونات QP وعلاقتها بالأجهزة والتطبيق
الشكل 1: مخطط كتلي يوضح مكونات QP وعلاقتها بالأجهزة والتطبيق

QEP (معالج أحداث QP) هو معالج أحداث عالمي متوافق مع لغة النمذجة الموحدة (UML)، يُمكّن من كتابة مخططات حالة UML مباشرةً بلغة C أو C++ سهلة الصيانة، حيث يتم ربط كل عنصر من عناصر مخطط الحالة بالرمز بدقة ووضوح ومرة ​​واحدة فقط ( إمكانية التتبع ). يدعم QEP بشكل كامل تداخل الحالات الهرمي ، مما يُتيح إعادة استخدام السلوك عبر حالات متعددة بدلاً من تكرار نفس الإجراءات والانتقالات مرارًا وتكرارًا.

QF (QP Active Object Framework) هو إطار عمل تطبيقات عالي النقل، يعتمد على الأحداث، ويعمل في الوقت الحقيقي، للتنفيذ المتزامن للكائنات النشطة المصممة خصيصًا للأنظمة المدمجة في الوقت الحقيقي .

QV (النواة التعاونية) هي نواة تعاونية صغيرة مصممة لتنفيذ الكائنات النشطة بطريقة التشغيل حتى الاكتمال (RTC).

QK (النواة الاستباقية) هي نواة صغيرة استباقية غير مانعة مصممة خصيصًا لتنفيذ آلات الحالة بطريقة التشغيل حتى الإكمال (RTC).

QXK (نواة الوضع المزدوج) هي نواة حظر استباقية صغيرة مصممة للتطبيقات الهجينة التي تتكون من كائنات نشطة وخيوط حظر تقليدية.

QS (QP/Spy) هو نظام تتبع برمجي يمكّن من المراقبة المباشرة لتطبيقات QP التي تعتمد على الأحداث بأقل قدر من موارد النظام المستهدف ودون إيقاف الكود أو إبطائه بشكل كبير.

تشغيل مستقل (بدون استخدام المعدن)

يمكن تشغيل أطر عمل QP RTEFs بشكل مستقل، لتحل محل أنظمة التشغيل التقليدية في الوقت الحقيقي (RTOS) تمامًا. تحتوي هذه الأطر على مجموعة مختارة من نواة الوقت الحقيقي المدمجة، مثل نواة QV التعاونية، ونواة QK الاستباقية غير الحظرية، ونواة QXK الفريدة الاستباقية ثنائية الوضع (حظر/عدم حظر). تتوفر منافذ QP مستقلة وأمثلة جاهزة للاستخدام لمعالجات ARM Cortex-Mas، بالإضافة إلى معالجات أخرى.

التكامل التقليدي لأنظمة التشغيل في الوقت الحقيقي

يمكن لوحدات QP RTEFs العمل أيضًا مع العديد من أنظمة التشغيل التقليدية التابعة لجهات خارجية. تتوفر منافذ QP وأمثلة جاهزة للاستخدام للعديد من أنظمة التشغيل (مثل Segger Microcontroller Systems#embOS و ThreadX و FreeRTOS و uC/OS-II وغيرها).

إن أهم سبب قد يدفعك إلى التفكير في استخدام نواة نظام تشغيل في الوقت الحقيقي (RTOS) تقليدية لتشغيل تطبيقات QP القائمة على الأحداث هو التوافق مع البرامج الحالية. على سبيل المثال، صُممت العديد من حزم بروتوكولات الاتصال (TCP/IP، USB، CAN، إلخ) للعمل مع نواة تقليدية تعتمد على الحظر. بالإضافة إلى ذلك، يتطلب الكثير من البرامج القديمة آليات حظر، مثل الإشارات أو التأخيرات الزمنية. يتيح لك نظام التشغيل في الوقت الحقيقي التقليدي تشغيل مكونات البرامج الحالية كخيوط "حظر" عادية بالتوازي مع كائنات QP™ النشطة القائمة على الأحداث.

تكامل نظام التشغيل للأغراض العامة

يمكن أيضًا لـ QP RTEFs العمل مع أنظمة التشغيل ذات الأغراض العامة، مثل Linux ( POSIX ) و Windows و macOS .

تُعدّ منافذ QP لأنظمة التشغيل العامة ذات أهمية خاصة. فعلى سبيل المثال، يدعم منفذ QP لنظام POSIX امتدادات الوقت الحقيقي ويعمل مع أنظمة Linux المدمجة، وأنظمة POSIX الفرعية لأنظمة التشغيل في الوقت الحقيقي مثل: QNX و INTEGRITY و VxWorks وغيرها. وبالمثل، يمكن لمنفذ QP لنظام Windows العمل مع Windows IoT أو Windows Embedded Compact.

لكن دعم نظام التشغيل قد يكون مثيرًا للاهتمام أيضًا لتطوير التعليمات البرمجية المضمنة بعمق على محطات العمل المكتبية، وهو ما يسمى "الاستهداف المزدوج". [ 4 ]

الترخيص

إطار عمل QP مرخص بترخيص مزدوج، يشمل رخصة GPLv3 مفتوحة المصدر ومجموعة مختارة من التراخيص التقليدية مغلقة المصدر. يمكن للمستخدمين الراغبين في توزيع QP (مثل تضمينه داخل الأجهزة) الاحتفاظ بوضع الملكية الفكرية لبرمجياتهم من خلال التقدم بطلب للحصول على ترخيص تجاري.

انظر أيضاً

مراجع