الفصل 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
الاتصال بين العمليات
يمكن للعمليات التواصل عبر:
- الإشارات: kill, SIGTERM, SIGKILL
- الأنابيب:
|(سطر الأوامر) - المقابس: اتصال الشبكة
- الملفات المشتركة: ذاكرة مشتركة
- قوائم الرسائل: 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