كيفية تعيين أولويات العملية مع اللطيف والتجديد على نظام Linux

تتيح لك الأوامر اللطيفة والرائعة ضبط كيفية تعامل النواة مع عملياتك من خلال تعديل أولوياتها. اقرأ هذا البرنامج التعليمي لتتعلم كيفية استخدامها في Linux وأنظمة التشغيل الشبيهة بـ Unix مثل macOS.

إنها كلها مسألة عملية

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

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

القيمة الجميلة

أحد المعايير المستخدمة لتحديد كيفية تعامل النواة مع عملية ما هو القيمة اللطيفة. كل عملية لها قيمة لطيفة. القيمة اللطيفة هي عدد صحيح في النطاق من -19 إلى 20. يتم إطلاق جميع العمليات القياسية بقيمة لطيفة تبلغ صفر.

  كيفية استخدام bmon لمراقبة النطاق الترددي للشبكة على Linux

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

يمكننا استخدام الأمر nice لتعيين قيمة لطيفة عندما يكون ملف تم إطلاق العملية ويمكننا استخدام renice لضبط القيمة الجميلة لعملية قيد التشغيل.

الأمر الجميل

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

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

./ackermann

يمكننا استخدام الأمر العلوي لعرض البرنامج قيد التشغيل.

top

يمكننا أن نرى تفاصيل برنامج ackermann في الأعلى. القيمة اللطيفة هي الرقم الموجود في “عمود NI”. تم ضبطه على الصفر كما كنا نتوقع.

دعنا نعيد تشغيله وهذه المرة نجعله أقل تطلبًا. سنقوم بتعيين قيمة لطيفة قدرها 15 لبرنامج أكرمان على النحو التالي. اكتب لطيف ، مسافة ، -15 ، مسافة أخرى ، ثم اسم البرنامج الذي ترغب في تشغيله. في مثالنا ، يستخدم المبرمج الوهمي ./ackermann.

nice -15 ./ackermann

لاحظ جيدًا أن “-15” ليس سالب خمسة عشر. إنه إيجابي خمسة عشر. مطلوب “-” للتعبير عن حسن أننا نمرر في المعلمة. للإشارة إلى رقم سالب ، يجب كتابة حرفين “-“.

  كيفية تجربة Microsoft Edge Beta على نظام Linux

إذا بدأنا الآن في القمة مرة أخرى ، يمكننا أن نرى التغيير في سلوك أكرمان.

top

مع قيمة لطيفة تبلغ 15 ، لا يستهلك ackermann معظم وقت وحدة المعالجة المركزية. يستخدم كل من جنوم و Rhythmbox المزيد. لقد كبحنا أكرمان قليلاً.

الآن لنفعل العكس ونعطي ackermann قيمة لطيفة سالبة. لاحظ استخدام حرفين “-“. لجعل التطبيق أكثر أنانية وأقل جمالا ، يجب عليك استخدام sudo. يمكن لأي شخص أن يجعل تطبيقه أكثر جمالًا ، ولكن المستخدمين المتميزين فقط هم من يمكنهم جعل تطبيقه أكثر أنانية.

sudo nice --10 ./ackermann

لنعد إلى القمة ونرى الفرق الذي أحدثه ذلك.

top

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

القيادة الجديدة

يتيح لنا الأمر renice ضبط القيمة الرائعة لعملية التشغيل. لا نحتاج إلى إيقافه وإعادة إطلاقه بلطف. يمكننا تعيين قيمة جديدة بسرعة.

يأخذ الأمر renice معرّف العملية ، أو PID ، للعملية كمعلمة سطر أوامر. يمكننا إما استخراج معرف العملية من عمود “PID” في الأعلى ، أو يمكننا استخدام ps و grep للعثور عليه لنا ، على النحو التالي. من الواضح أنك ستكتب اسم المستخدم الخاص بك بدلاً من ديف واسم العملية التي تهتم بها بدلاً من ackermann.

ps -eu dave | grep ackermann

الآن بعد أن أصبح لدينا PID ، يمكننا استخدام هذا مع renice. سنقوم بإعادة أكرمان إلى سلوك أفضل بقيمة خمسة. لتغيير القيمة الجيدة لعملية جارية ، يجب عليك استخدام sudo. لاحظ أنه لا يوجد “-” في المعلمة 5. لا تحتاج إلى واحد للأرقام الموجبة وتحتاج فقط إلى واحد ، وليس اثنين ، للأرقام السالبة.

sudo renice -n 5 2339

نحصل على تأكيد بأن renice قد غيرت قيمة لطيفة. يظهر لنا القيمة القديمة والقيمة الجديدة.

  كيفية إيقاف البرنامج النصي Bash مؤقتًا باستخدام أمر Linux Sleep

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