Verifying Correctness of Shared Channels in a Cooperatively Scheduled Process-Oriented Language
Pedersen, Chalmers
Correct concurrent behaviour is important in understanding how components will act within certain conditions. In this work. we analyse the behaviour of shared communicating channels within a coorporatively scheduled runtime. We use the refinement checking and modelling tool FDR to develop both specifications of how such shared channels should behave and models of the implementations of these channels in the cooperatively scheduled language ProcessJ. Our results demonstrate that although we can certainly implement the correct behaviour of such channels, the outcome is dependant on having adequate resources available to execute all processes involved. We conclude that modelling the runtime environment of concurrent components is necessary to ensure components behave as specified in the real world.
academic
التحقق من صحة القنوات المشتركة في لغة موجهة للعمليات مع جدولة تعاونية
تحلل هذه الورقة سلوك القنوات المشتركة للاتصال في بيئة تشغيل ذات جدولة تعاونية. استخدمت الدراسة أداة التحقق الرسمي FDR لتطوير مواصفات سلوك القنوات المشتركة ونماذج تنفيذ القنوات في لغة ProcessJ. أظهرت النتائج أنه بينما يمكن تنفيذ السلوك الصحيح للقنوات، فإن النتائج تعتمد على توفر موارد كافية لتنفيذ جميع العمليات ذات الصلة. خلصت الدراسة إلى أن نمذجة بيئة التشغيل للمكونات المتزامنة ضرورية لضمان أن تتصرف المكونات وفقاً للمواصفات في العالم الحقيقي.
أهمية صحة البرامج المتزامنة: السلوك الصحيح للأنظمة المتزامنة حاسم لفهم كيفية عمل المكونات في ظروف معينة. على الرغم من أن طرق الاختبار التقليدية تُستخدم على نطاق واسع، إلا أنها قد تفشل في اكتشاف جميع الأخطاء المتزامنة المحتملة.
ضرورة التحقق الرسمي: يستشهد المؤلفون ببرنامج مستكشف المريخ كمثال، موضحين أن خطأ بسيط في الجمود قد يتطلب انتظار 8 ملايين ثانية (أكثر من 90 يوماً) لاحتمالية 50% من اكتشافه عند الاختبار، بينما يمكن للتحقق الرسمي باستخدام CSP و FDR اكتشاف مثل هذه الأخطاء فوراً.
تحديات التحقق من نظام التشغيل: نظراً لأن عدداً كبيراً من البرامج مبنية على أنظمة التشغيل للغات البرمجة، أصبح ضمان خلو نظام التشغيل من الأخطاء والتصرف وفقاً للمواصفات حاسماً.
إهمال بيئة التنفيذ: لم تقم طرق التحقق التقليدية المستندة إلى أنظمة القنوات بنمذجة نظام التشغيل أو نظام التنفيذ أو الأجهزة وغيرها، بافتراض أن أحداث الجاهزية ستبقى متاحة حتى يتم جدولتها.
افتراض ندرة الموارد: تفترض طرق النمذجة القياسية أن الأحداث يمكن أن تحدث فوراً، مما يعني أن الموارد متاحة عند تنفيذ الحدث، لكن هذا الافتراض المتطرف لا ينطبق في الواقع.
تأثير بيئة الجدولة: يجب على العمليات الانتظار في نهاية قائمة الجاهزية ليتم جدولتها، وأحداثها لن تكون متاحة فوراً، لكن الطرق التقليدية لم تأخذ هذا في الاعتبار.
ProcessJ هي لغة برمجة موجهة للعمليات تستند إلى دلالات CSP، وتستخدم جدولة تعاونية وتعمل على JVM. تهدف هذه الورقة إلى التحقق من صحة تنفيذ القنوات المشتركة في وقت تشغيل ProcessJ، مع التركيز بشكل خاص على تأثير بيئة الجدولة على سلوك القنوات.
التحقق من صحة تنفيذ القنوات المشتركة في ProcessJ: أثبتت أن تنفيذ القنوات المشتركة في ProcessJ باستخدام جدولة تعاونية موجودة صحيح، من خلال التحقق من تحسين الترجمة CSP والنموذج المشترك للقنوات المشتركة.
تطوير إثبات جبري موسع لمواصفات القنوات المشتركة: توفير إثبات رسمي بأن مواصفات القنوات المشتركة تتصرف بالفعل كقنوات مشتركة CSP.
إثبات إضافي للعلاقة بين الموارد والعمليات النشطة: إظهار مرة أخرى العلاقة بين الموارد المتاحة وعدد العمليات النشطة لتحقيق المواصفات، مما يثبت أن عدد جدولات العمليات المتاحة يجب أن يكون مساوياً أو أكبر من عدد العمليات في النظام.
SCHEDULER =
rqdequeue?p → -- إزالة عملية من قائمة الانتظار
run.p → -- تشغيلها
yield.p → -- انتظار الاستسلام
SCHEDULER -- تكرار
SCHEDULE_MANAGER =
schedule?pid → -- انتظار حدث الجدولة
rqenqueue!pid → -- وضع العملية في قائمة التشغيل
SCHEDULE_MANAGER -- تكرار
نظرية كفاية الموارد: عندما يكون عدد جدولات العمليات مساوياً أو أكبر من إجمالي عدد العمليات، يمكن تحقيق التحسين في كلا الاتجاهين في نموذج الفشل.
تأثير نقص الموارد:
عندما تكون جدولات العمليات غير كافية، يمكن الحصول على تحسين الآثار فقط وليس تحسين الفشل
هذا لا يعني أن النظام سيتعطل، بل أن بعض الآثار لن تكون قابلة للتنفيذ
تأثير قائمة الجدولة: تفرض قائمة التشغيل ترتيباً طبيعياً على العمليات، وعندما تكون جدولات العمليات غير كافية، قد لا تتضمن مجموعة القبول الكلية للنظام مجموعات قبول بعض العمليات.
تستشهد هذه الورقة بـ 51 مرجعاً ذا صلة، تتضمن بشكل أساسي:
نظرية أساسيات CSP: الأعمال الكلاسيكية لـ Hoare حول CSP والنظرية ذات الصلة
أدوات التحقق الرسمي: أداة FDR وطرق التحقق ذات الصلة
لغات البرمجة المتزامنة: الأبحاث المتعلقة بلغات JCSP و occam-π و Go و Erlang وغيرها
خوارزميات الجدولة: الأعمال ذات الصلة بخوارزميات الاستبعاد المتبادل والخوارزميات المتزامنة
الأعمال السابقة للمؤلفين: سلسلة من الأبحاث حول التحقق من وقت تشغيل ProcessJ
الملخص: تقدم هذه الورقة مساهمة مهمة في مجال التحقق الرسمي، خاصة في مجال التحقق من الأنظمة المتزامنة التي تأخذ بيئة التنفيذ في الاعتبار. على الرغم من وجود بعض القيود، فإن طريقتها واكتشافاتها لها قيمة مهمة لتحسين موثوقية الأنظمة المتزامنة.