الفصل 4.1 - مقدمة إلى العمليات
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم ما هي العملية
- شرح دورة حياة العملية
- تحديد العمليات الجارية
- فهم تسلسل العمليات
ما هي العملية؟
العملية هي مثيل لبرنامج قيد التشغيل. كل عملية لديها مواردها الخاصة: الذاكرة، الملفات المفتوحة، إلخ.
الخصائص:
- PID (معرف العملية): معرف فريد
- PPID (معرف العملية الأصلية): العملية الأصلية
- مساحة الذاكرة: معزولة عن العمليات الأخرى
- الموارد: الملفات المفتوحة، الشبكة، إلخ.
مشكلة الإدارة
بدون إدارة مناسبة:
- كيف ترى البرامج التي تعمل؟
- كيف توقف برنامجًا لا يستجيب؟
- كيف تدير الموارد المستخدمة؟
- كيف تفهم التسلسل؟
الحل: أدوات الإدارة
يوفر لينكس العديد من الأدوات لإدارة العمليات:
دورة حياة العملية
الحالات:
- Created: تم إنشاء العملية (fork)
- Ready: جاهز للتنفيذ
- Running: قيد التشغيل
- Blocked: في انتظار (I/O، إشارة)
- Terminated: منتهية
تسلسل العمليات
تشكل العمليات شجرة:
الخصائص:
- init/systemd: PID 1، الأصل للجميع
- العمليات الفرعية: تم إنشاؤها بواسطة fork()
- العمليات اليتيمة: تتبناها init إذا مات الأصل
- العمليات الزومبي: منتهية ولكن لم يتم تنظيفها
الأوامر الأساسية
ps - عرض العمليات
# جميع العمليات
ps aux
# عمليات المستخدم
ps
# تنسيق مخصص
ps -eo pid,ppid,cmd,%mem,%cpu
# حسب المستخدم
ps -u user1
# شجرة العمليات
ps auxf
ps -ejH
top - مراقبة في الوقت الحقيقي
# واجهة تفاعلية
top
# الخيارات
top -u user1 # حسب المستخدم
top -p 1234 # عملية محددة
top -d 2 # تحديث كل ثانيتين
الأوامر في top:
q: خروجk: قتل عمليةr: تغيير الأولويةM: ترتيب حسب الذاكرةP: ترتيب حسب CPU
htop - نسخة محسنة
# واجهة أكثر ودية
htop
# تثبيت إذا لزم الأمر
sudo apt install htop # أوبونتو/ديبيان
sudo yum install htop # ريد هات/سينتوس
ملخص
في هذا الفصل، تعلمت:
العملية: مثيل لبرنامج قيد التشغيل
PID/PPID: معرفات فريدة، تسلسل
دورة الحياة: Created → Ready → Running → Blocked → Terminated
التسلسل: شجرة مع init كجذر
الأدوات: ps، top، htop لعرض ومراقبة
الخطوات التالية
الفصل 4.2: عرض العمليات
الفصل 4.3: التحكم في العمليات
تم إنشاء الفصل في: ديسمبر 2024