حرف N

أولوية التنفيذ (Nice)

Nice

آخر تحديث: 2026-10-24
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أن المعالج (CPU) في حاسوبك هو طبيب في مستشفى، والبرامج أو العمليات (Processes) هي المرضى الذين ينتظرون العلاج. أولوية التنفيذ (Nice) هي ببساطة موظف الاستقبال الذي يقرر من يدخل للطبيب أولا. إذا أعطيت برنامجا قيمة أولوية منخفضة، فهذا يعني أنك تخبر البرنامج أن يكون لطيفا (Nice) ويسمح للبرامج الأخرى بالدخول قبله. أما إذا أعطيته قيمة أولوية عالية جدا، فإنه سيتجاوز الطابور ويأخذ موارد المعالج فورا. في نظام لينكس (Linux)، تتراوح هذه القيمة من سالب 20 وهي الأولوية القصوى، إلى موجب 19 وهي الأقل أولوية لتنفيذ المهام.

الشرح التقني المتقدم

يعد مفهوم أولوية التنفيذ (Nice) من الأساسيات في إدارة الموارد داخل نظام لينكس (Linux)، حيث يتحكم في كيفية تخصيص وقت المعالج (CPU) للعمليات (Processes) المختلفة. تعمل جدولة المهام (Process Scheduling) بناء على هذه القيمة لتحديد أي عملية يجب أن تحصل على الموارد أولا.

فهم قيم الأولوية وجدولة المهام

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

مجدول المهام في النواة (Kernel): يلعب مجدول المهام الدور الرئيسي هنا، حيث يقرأ هذه القيم لضمان توزيع الموارد بكفاءة ودون تعليق النظام (System Hang).

استخدام الأوامر العملية لتعديل الأولوية

يمكنك تشغيل برنامج بأولوية معينة باستخدام أمر التعيين، أو تعديل أولوية برنامج يعمل بالفعل باستخدام أمر التعديل (Renice).

لتشغيل عملية جديدة مع أولوية منخفضة جدا بحيث لا تستهلك موارد الخادم بكثافة:

nice -n 15 tar -czf backup.tar.gz /var/log

ولتعديل أولوية عملية تعمل حاليا (بمعرف العملية 1234) لإعطائها أولوية قصوى (تحتاج لصلاحيات الجذر):

sudo renice -n -10 -p 1234

أهم الفروقات والقواعد التقنية التي يجب مراعاتها أثناء إدارة العمليات:

  • المستخدم العادي (Regular User): يمكنه فقط زيادة قيمة الأولوية (جعل العملية ألطف من 0 إلى 19) لعملياته الخاصة فقط، ولا يمكنه إعطاء أفضلية سالبة.
  • المستخدم الجذر (Root User): يمكنه تعيين أي قيمة من -20 إلى 19، ويمكنه تعديل عمليات أي مستخدم آخر في النظام.
  • الفرق عن الأولوية الفعلية (Priority): قيمة أولوية التنفيذ هي مجرد تلميح، بينما الأولوية الفعلية (PR) التي تراها في أدوات مثل top أو htop تحسب تقنيا بجمع الرقم 20 مع قيمة أولوية التنفيذ.

ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)

لا تقم بتعيين قيمة -20 لعمليات ثقيلة جدا إلا إذا كنت تدرك تماما ما تفعله، لأن ذلك قد يؤدي إلى حرمان العمليات الأساسية للنظام من المعالج (CPU Starvation)، مما يجعل النظام غير مستجيب. استخدم هذه الأداة بحكمة لتشغيل مهام النسخ الاحتياطي في الخلفية بقيم موجبة لضمان استقرار أداء الخادم.