انتقل إلى المحتوى الرئيسي

الفصل 2.5 - إدارة العمليات

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • فهم كيفية إدارة Linux للعمليات
  • شرح حالات العمليات
  • فهم التخطيط (scheduling)
  • تحديد الأولويات وقيم nice

ما هو العملية؟​

العملية هي مثيل لبرنامج قيد التشغيل. كل عملية لديها:

  • PID (معرف العملية) فريد
  • PPID (معرف العملية الأم)
  • مساحة ذاكرة خاصة
  • ملفات مفتوحة
  • موارد النظام

حالات العمليات​

يمكن أن تكون العملية في حالات مختلفة:

الحالات:

  • Running (R): قيد التشغيل أو جاهز
  • Sleeping (S): في انتظار حدث
  • Stopped (T): موقوف (Ctrl+Z)
  • Zombie (Z): انتهى ولكن لم يتم تنظيفه
  • Uninterruptible (D): في انتظار I/O القرص

تخطيط العمليات​

يقرر المجدول في Linux (CFS - Completely Fair Scheduler) أي عملية يتم تشغيلها:

معايير التخطيط:

  • الأولوية (قيمة nice)
  • وقت استخدام المعالج
  • وقت الانتظار
  • توافق المعالج

الأولويات وقيم Nice​

تحدد أولوية العملية وصولها إلى المعالج:

قيم Nice:

  • -20 إلى +19 (أقل = أكثر أولوية)
  • 0: الأولوية الافتراضية
  • -20: أولوية عالية (للمستخدم الجذر فقط)
  • +19: أولوية منخفضة جدًا
# عرض الأولوية
ps -o pid,ni,comm

# تغيير الأولوية عند البدء
nice -n 10 commande

# تغيير أولوية عملية موجودة
renice 10 PID

# عمليات الوقت الحقيقي (الجذر)
chrt -f 50 commande

تسلسل العمليات​

تشكل العمليات تسلسل هرمي (شجرة):

الخصائص:

  • يمكن للعملية الأم إنشاء أطفال (fork)
  • إذا ماتت الأم، يصبح الأطفال أيتامًا (يتبناهم init)
  • عملية zombie إذا لم تسترد الأم الحالة

أوامر الإدارة​

# عرض العمليات
ps aux
top
htop

# قتل عملية
kill PID
kill -9 PID # بالقوة
killall nom_processus

# إيقاف/استئناف
kill -STOP PID
kill -CONT PID

# عرض شجرة العمليات
pstree
ps auxf

الاتصال بين العمليات​

يمكن للعمليات التواصل عبر:

  1. الإشارات: kill, SIGTERM, SIGKILL
  2. الأنابيب: | (سطر الأوامر)
  3. المقابس: اتصال الشبكة
  4. الملفات المشتركة: ذاكرة مشتركة
  5. قوائم الرسائل: IPC System V

الملخص​

في هذا الفصل، تعلمت:

العمليات: مثيل لبرنامج قيد التشغيل
الحالات: Running, Sleeping, Stopped, Zombie
المجدول: CFS يخطط لتنفيذ العمليات
الأولويات: قيم Nice من -20 إلى +19
التسلسل الهرمي: شجرة مع init كجذر
الإدارة: ps, top, kill, nice, renice


الخطوات التالية​

الفصل 2.6: عمليات Init و systemd
الفصل 2.7: الخدمات وdaemon


تم إنشاء الفصل في: ديسمبر 2024