الأخبار التكنولوجية والاستعراضات والنصائح!

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux

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

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

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

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

قيمة الغرامة

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

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

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

الأمر الجيد

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

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

./ackermann

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

أعلى

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 1

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

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

جميل -15 ./ackermann

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 2

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

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

أعلى

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 3

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

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

لطيفة sudo -10 ./ackermann

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 4

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

أعلى

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 5

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

Renice Command

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

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

ps -eu ديف | سيطر أكرمان

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 6

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

محمد عبدالمجيد. 2339

كيفية تحديد أولويات العملية باستخدام Nice و renice على Linux 7

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

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