يقوم Popcorn بتطوير نظام تنفيذ الخيوط الموزعة لنواة Linux.

جامعة فرجينيا للتكنولوجيا предложил للمناقشة من قبل مطوري Linux kernel، مجموعة من التصحيحات مع تنفيذ نظام تنفيذ الخيوط الموزعة الفشار (تنفيذ الخيوط الموزعة)، والذي يسمح لك بتنظيم تنفيذ التطبيقات على عدة أجهزة كمبيوتر مع التوزيع والهجرة الشفافة للخيوط بين المضيفين. باستخدام Popcorn، يمكن تشغيل التطبيقات على مضيف واحد ثم نقلها إلى مضيف آخر دون انقطاع. في البرامج متعددة الخيوط، يُسمح بترحيل الخيوط الفردية إلى مضيفين آخرين.

على عكس المشروع كريومن خلال السماح بحفظ حالة العملية واستئناف التنفيذ على نظام آخر، يوفر Popcorn ترحيلًا سلسًا وديناميكيًا بين المضيفين أثناء تنفيذ التطبيق، ولا يتطلب أي إجراء من المستخدم ويضمن اتساق الذاكرة الافتراضية عبر جميع المضيفين الذين يقومون بتشغيل سلاسل العمليات المتزامنة.

شكل مكدس برنامج الفشار بقع إلى نواة لينكس و библиотека مع اختبارات توضح كيفية استخدام مكالمات نظام Popcorn لترحيل سلاسل الرسائل في التطبيقات الموزعة. على مستوى النواة، تم اقتراح امتدادات للنظام الفرعي للذاكرة الافتراضية مع تنفيذ الذاكرة المشتركة الموزعة، والتي تسمح للعمليات على مضيفين مختلفين بالوصول إلى مساحة عنوان افتراضية مشتركة ومتسقة. يتم ضمان تماسك صفحة الذاكرة الظاهرية من خلال بروتوكول يقوم بنسخ صفحات الذاكرة إلى المضيف عند قراءتها وإبطال صفحات الذاكرة عند كتابتها.

يتم التفاعل بين المضيفين باستخدام معالج على مستوى kernel للرسائل المرسلة عبر مقبس TCP. تجدر الإشارة إلى أنه يتم استخدام TCP/IP لتبسيط عملية التصحيح والاختبار أثناء عملية التطوير. يدرك المطورون أنه من منظور الأمان والأداء، فإن TCP/IP ليس أفضل طريقة لنقل محتويات هياكل kernel وصفحات الذاكرة بين الأجهزة المضيفة. يجب أن يتمتع جميع المضيفين الذين يقومون بتشغيل التطبيقات الموزعة بنفس مستوى الثقة. بعد تثبيت الخوارزميات الرئيسية، سيتم استخدام وسيلة نقل أكثر كفاءة.

تم تطوير Popcorn منذ عام 2014 كمشروع بحثي لدراسة إمكانيات إنشاء تطبيقات موزعة يمكن تنفيذ خيوطها على عقد مختلفة في غير متجانسة أنظمة الحوسبة التي يمكنها الجمع بين النوى بناءً على بنيات مجموعة التعليمات المختلفة (Xeon/Xeon-Phi، ARM/x86، CPU/GPU/FPGA). مجموعة التصحيحات المقترحة لمطوري Linux kernel تدعم فقط التنفيذ على الأجهزة المضيفة باستخدام وحدة المعالجة المركزية x86، ولكن هناك أيضًا إصدار أكثر وظيفية من Popcorn Linux، والذي يسمح بتشغيل التطبيقات على الأجهزة المضيفة ذات بنيات مختلفة لوحدة المعالجة المركزية (x86 وARM). لاستخدام الفشار في بيئات غير متجانسة، يجب عليك استخدام خاص مترجم على أساس LLVM. عند التشغيل بشكل موزع على أجهزة مضيفة لها نفس البنية، لا يلزم إعادة البناء باستخدام مترجم منفصل.

يقوم Popcorn بتطوير نظام تنفيذ الخيوط الموزعة لنواة Linux.

بالإضافة إلى ذلك ، يمكن ملاحظته إعلان مشروع مماثل إلى حد ما تليفورك مع تنفيذ نموذج أولي لواجهة برمجة التطبيقات (API) لبدء العمليات الفرعية على أجهزة كمبيوتر أخرى في المجموعة (مثل fork()، ولكنها تنقل العملية المتشعبة إلى كمبيوتر آخر).
الكود مكتوب بلغة Rust ولا يسمح حتى الآن إلا باستنساخ العمليات البسيطة جدًا التي لا تستخدم موارد النظام مثل الملفات. عند إجراء مكالمة telefork، يتم استنساخ الذاكرة والهياكل المرتبطة بالعملية إلى مضيف آخر يقوم بتشغيل معالج الخادم (telepad). باستخدام ptrace، يتم إجراء تسلسل لانعكاس الذاكرة للعملية ونقلها، جنبًا إلى جنب مع حالة العملية والسجلات، إلى مضيف آخر. تسمح لك واجهة برمجة التطبيقات (API) أيضًا بحفظ حالة العملية في ملف واستعادتها من خلاله.

المصدر: opennet.ru

إضافة تعليق