أجهزة الإدخال / الإخراج الحديثة أسرع من المعالجات. نظرة عامة على المادة


أريد التحدث عن المقالة "I / O أسرع من وحدة المعالجة المركزية - دعنا قسم الموارد
و القضاء على (معظم) تجريدات نظام التشغيل " ، المنشورة على الصفحة الشخصية لأحد مطوري ScyllaDB ، Pekka Enberg. لقد اكتشفت ذلك من الفيديو .


كان من المفترض أن يقدم مؤلفو هذه المقالة عرضًا تقديميًا في ورشة عمل HOTOS17 (الموضوعات الساخنة في أنظمة التشغيل) يومي 12-15 مايو 2019. على حد علمي ، فإنهم يناقشون التطورات هناك في المراحل المبكرة من حياتهم.


مقالتي عبارة عن أخبار من أجل إثارة عقول فضولية للتفكير في هذا الموضوع والتفكير في التعليقات.


النقطة العامة


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


يقترح المؤلفون بنية نظام التشغيل الخاصة بهم المسماة parakernel ، وهي تقضي على معظم تجريدات نظام التشغيل وتوفر واجهة للتطبيقات حتى يتمكنوا من استخدام الإمكانات الكاملة للمعدات. يعمل Parakernel على تسهيل التزامن على مستوى التطبيق من خلال مشاركة الموارد بشكل آمن ومضاعفة الموارد المشتركة.


تم اختراع بنية أنظمة التشغيل الحديثة عندما كانت سرعة الإدخال / الإخراج أقل بكثير ، وكانت التطبيقات في انتظار الإدخال / الإخراج. حاليًا ، يمكن لأجهزة I / O تشبع المعالج بسهولة.


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


متطلبات الأجهزة


يمكن أن تتلقى بطاقة الشبكة الحديثة بسرعة 40 جيجابت في الثانية حزمة متناسبة مع خط ذاكرة التخزين المؤقت كل 5 ثوانٍ ، والتأخير في الوصول إلى معالجات LLC (ذاكرة التخزين المؤقت للمستوى الأخير) حوالي 15 نانو ثانية.


على سبيل المثال ، طور Linux واجهة POSIX AIO ، والتي يجب أن توفر واجهة I / O غير متزامنة بسيطة وفعالة. اتضح أن تنفيذ ودعم وتطبيق مثل هذه الواجهة مع الحفاظ على دلالات POSIX أمر صعب للغاية وتم التخلي عنه لصالح التصميم الجديد.


ما هو الحل المقترح


تم تصميم بنية نظام التشغيل الجديد ، والتي يطلق عليها المؤلفون parakernel ، لتبسيط عملية موازنة المهام. يتم تخصيص الموارد للتطبيقات ولديها سيطرة كاملة عليها ، والموارد التي لا يمكن مشاركتها يتم مضاعفة بواسطة kernel.


تتطلب مشاركة الموارد في الأنظمة متعددة النواة التزامن بين مراكز المعالج ، مما يمنع التزامن على مستوى التطبيق. يمكن تقليل هذه العقبة عن طريق تقسيم الموارد بين مراكز المعالج.


النتائج


بعض تجريدات نظام التشغيل تحد من أداء I / O. يقدم المؤلفون بنية نظام تشغيل تشارك الموارد المشتركة وتعدد المصادر الموارد المشتركة. يبسط Parakernel التزامن على مستوى التطبيق ، ويكمل تصميم مؤشر الترابط إلى النواة .


النموذج parakernel هو مكتوب في الصدأ وهو حاليا قيد التطوير. في المقالة ، لم أر اسم نظام التشغيل ، لكنني وجدت مواد أخرى من أحد مؤلفي نظام التشغيل Manticore وأخلص إلى أن هذا هو مستودع هذا التطور.


ما في بقية العالم


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


  • يسمح لك جهاز إدارة حجم الصوت من Intel (Intel VMD) - بالعمل مباشرة مع محركات NVM Express ، "إعطاء" الجهاز مباشرة إلى نظام التخزين. ونتيجة لذلك ، أصبح من الممكن وضع SSD كامل قابلاً للتبديل السريع ومؤشر الحالة واستخدام تقنية Intel VROC.
  • إنتل الظاهري RAID على وحدة المعالجة المركزية (إنتل VROC). يتيح لك إنشاء RAID من محركات أقراص NVMe باستخدام المعالج ، حيث يمكنك رفض حلول البرامج أو المحولات الإضافية لإنشاء صفيفات PCIe SSD عالية السرعة.
  • بروتوكول RDMA واسع النطاق للإنترنت (iWARP). يتم الآن دعم امتداد RDMA بواسطة محولات الشبكة المدمجة Intel X722 ، لأن المعالج يدعم أربعة منافذ إيثرنت بسرعة 10 جيجابت (أو جيجابت). اسمحوا لي أن أذكرك بأن RDMA يحصل على الوصول إلى البيانات عبر الشبكة مباشرة من الذاكرة ، متجاوزًا النواة ونظام التشغيل.

من المثير للاهتمام دائمًا التعرف على المفاهيم الجديدة في الأنظمة ذات الجذور بالفعل.


يرجى الكتابة عن الأخطاء والإضافات اللازمة.


محدث : يجري تعديل هذا المقال من قبل المجتمع.


شكرا للمساعدة:



مجموعة من الإعلانات لبودكاست Zinc Prod الذي سنناقش فيه هذه المقالة على أساس كل موضوع على حدة.

Source: https://habr.com/ru/post/ar451966/


All Articles