باستخدام RT kernel (زمن انتقال منخفض)

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

الكثير نواة RT تسمح أ الأداء الأمثل في بعض حالات معينةعلى سبيل المثال ، تحرير الصوت أو استخدام الآلات الموسيقية الافتراضية.

نواة تعدد المهام

نواة Linux ، مثل معظم أنظمة التشغيل الحديثة ، متعددة المهام. هذا يعني أن العديد من البرامج تعمل في نفس الوقت.

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

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

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

يأتي تبديل المهام بتكلفة

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

الكمون والأداء

لنفترض أن طباخنا عليه أن يقشر 20 كيلوغرامًا من القريدس وأن يحفر 20 كيلوغرامًا من الزيتون. كيف يتم التخطيط للعمل؟

في الحالات القصوى ، يقوم أولاً بتقشير جميع القريدس ، وغسل يديه حتى لا يخلط النكهات ، ثم ينقر كل الزيتون. سوف نمثلها على النحو التالي:

GGGGGGGGGGGGGGGGGGGGG… ج AAAAAAAAAAAAAAAAAAAAA ...

في الطرف المقابل ، كان يقشر جمبريًا ، ويغسل يديه ، ويحفر زيتونًا ، ويغسل يديه ... جمبري ، زيتون ، جمبري ، زيتون ...

GCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCAC ...

يمثل الحرف "C" التغيير في السياق: غسل اليدين ، وتغيير الأدوات ...

في الوقت نفسه ، يجمع النادل طلبات العملاء: "واحد مع القريدس!" ... "واحد مع الزيتون!" ... وينقلها إلى المطبخ.

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

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

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

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

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

الأولويات

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

Kernel RT (أو زمن انتقال منخفض)

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

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

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

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

متى يكون من المهم استخدام RT kernel؟

في حالتين:

1) عندما نحتاج إلى زمن انتقال منخفض جدًا ، أي ردود فعل سريعة جدًا للآلة. أوضح مثال على ذلك هو أداء الآلات الافتراضية ، حيث تحتاج إلى أن تصدر الآلة صوتًا على الفور عند الضغط على مفتاح في لوحة مفاتيح MIDI.

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

ومع ذلك ، بشكل عام ، حسنت النوى الأحدث التي لا تتبع RT بشكل كبير جدولة المهام وإدارة الأولويات. إذا لم يكن لديك وحدة المعالجة المركزية في حدود إمكانياتها (قل استخدام أقل من 50 ٪) أو إذا كنت لا تمانع في حدوث قطع صغير صغير (نقرة) في الصوت (أكثر من xruns اللعين) ، نواة عادي يعطي أداءً مقبولاً تمامًا.

ما هو الكمون المستحسن؟

شخصيًا ، أي شيء أقل من 10 مللي ثانية مناسب لي ومن 20 مللي ثانية بدأت بالفعل في ملاحظة التأخير بوضوح. هناك أناس أكثر تطلبا.

تركيب

على أوبونتو ومشتقاتها:

sudo apt-get install linux-headers-lowlatency.png
sudo apt-get install linux-lowlatency.xlsx
سودو التحديث- grub

عند بدء التشغيل ، سيكون لديك كلا الخيارين (النواة العادية والنواة ذات زمن الوصول المنخفض).

في القوس ومشتقاته:

yaourt -S لينكس- RT
سودو التحديث- grub

مصدر: هيسبسونيك


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   جوردي فديز قال

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

  2.   كارلوس قال

    مقالة ممتازة والتفسير لا يمكن أن يكون أفضل. في صحتك

  3.   كارليسا 25 قال

    مرحبًا: مثير جدًا للاهتمام ، سأختبره في مهام الحوسبة المكثفة CPU + GPU.

    كما يمكنك ترك نظام التشغيل Ubuntu 12.0 كما كان من قبل ، أي قم بإلغاء تثبيت "linux-headers-lowlatency". مع تحياتي.

  4.   ث3Gh057 قال

    شكرا جزيلا على هذه المقالة. من المثير للاهتمام حقًا معرفة كيفية عمل النوى منخفضة زمن الوصول. لقد كنت مهتمًا بمعرفة المزيد عنها وفائدتها. في صحتك

  5.   أوليفر قال

    مقال رائع! بمجرد أن سمعت أن kernel منخفض الكمون كان مطلوبًا لتشغيل لوحة مفاتيح أكثر استجابة ولكن لم يكن لدي أي فكرة عن سبب وكيفية القيام بذلك. التشبيه واضح جدا.

  6.   الشجاعة: قال

    نعم سيدي ، صحيح تمامًا.

    إنه أمر حيوي تمامًا في إنتاج الموسيقى أيضًا ، كما يقال في استخدام VST ، على سبيل المثال في الأداء الحي باستخدام وحدة تحكم MIDI ، يتعين علينا الذهاب في نفس الوقت الذي يمكن أن تلعب فيه الآلات الأخرى ووقت الاستجابة العالي خدعة علينا.

    أو ليس بالضرورة في استخدام الأدوات الافتراضية ، ولكن في التسجيل ، يحدث زمن انتقال من خلال الواجهة والذي يمكن أن يربكنا عند تفسير الأدوات

  7.   رايون قال

    مقالة رائعة ، لم يكن لدي أي فكرة عما يعنيه زمن الانتقال المنخفض في النواة (على الرغم من أنني ربطته بزمن انتقال في وحدات ذاكرة الوصول العشوائي)

  8.   جيراردو أزونيوس قال

    جيد جدا ... لقد أحببته حقا.
    تغيير الموضوع ، شخص ما يعرف كيف يحل مشكلة الواي فاي (اللاسلكي في حضني) الذي لا يسمح لي بالعمل في الأماكن العامة ، والإشارة منخفضة للغاية.
    لدي نظام ubuntu 11.10 و حضني هو: Dell inspiron n4110.
    شكرا لك مقدما.

  9.   ميكيل مايول طور قال

    شكرًا لك ، لإضافة أن Sabayon يحمل هذه النواة ، التي تم تجميعها افتراضيًا عند 1000 هرتز ، وهي أيضًا مثالية لخوادم ألعاب FPS وألعاب FPS نفسها ولأي واحدة تتطلب الكثير ، باستثناء ربما تلك التي تستخدم قواعد البيانات ، على الرغم من أنني في فجرني Sabayon freeciv بعيدا ..

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

    يتعلق الأمر بتثبيتها ، واختبارها لمدة أسبوع ، والعودة إلى النواة - عادية - ورؤية كيف سارت ، وأيها نفضلها ، وكذلك استخدامها في المهام المحددة التي يكون كل منها أفضل.

  10.   غوستافو تريبات قال

    مقال ممتاز ، شرح جيد جدا
    غراسياس.

  11.   ستيفن قال

    شرح ممتاز ، شكرا جزيلا لك ، لقد ساعدني كثيرا 🙂

  12.   كارلوس مارتينيز قال

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

  13.   يوليو قال

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