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

الفصل 2.10 - الاتصال بين العمليات

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

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

  • فهم آليات الاتصال بين العمليات (IPC)
  • استخدام الإشارات للتواصل
  • فهم الأنابيب وإعادة التوجيه
  • استخدام المقابس للاتصال بالشبكة

ما هو IPC؟​

يشير IPC (الاتصال بين العمليات) إلى الآليات التي تسمح للعمليات بالتواصل ومزامنة أفعالها.


الإشارات​

الإشارات هي إشعارات غير متزامنة تُرسل إلى عملية.

الإشارات الشائعة:

  • SIGTERM (15): إنهاء لطيف
  • SIGKILL (9): إنهاء قسري (لا يمكن تجاهله)
  • SIGSTOP (19): تعليق
  • SIGCONT (18): استئناف
  • SIGHUP (1): إعادة تحميل التكوين
  • SIGINT (2): مقاطعة (Ctrl+C)
# إرسال إشارة
kill -SIGTERM PID
kill -15 PID
kill -9 PID # قسري

# عرض الإشارات المتاحة
kill -l

# تجاهل إشارة (في سكربت)
trap '' SIGINT

الأنابيب​

الأنابيب تسمح بإعادة توجيه مخرجات عملية إلى مدخلات أخرى.

الأنابيب المجهولة​

# أنبوب بسيط
commande1 | commande2

# مثال
ps aux | grep apache
cat fichier.txt | sort | uniq

الأنابيب المسماة (FIFO)​

# إنشاء أنبوب مسمى
mkfifo mon_pipe

# العملية 1 تكتب
echo "Hello" > mon_pipe

# العملية 2 تقرأ
cat < mon_pipe

إعادة التوجيه​

إعادة التوجيه تسمح بالتحكم في المدخلات/المخرجات:

# إعادة توجيه المخرجات
commande > fichier # استبدال
commande >> fichier # إضافة

# إعادة توجيه الأخطاء
commande 2> erreur.log
commande 2>&1 # خطأ إلى مخرج

# إعادة توجيه المدخلات
commande < fichier

# مستند هنا
commande << EOF
ligne 1
ligne 2
EOF

المقابس​

المقابس تسمح بالاتصال الشبكي بين العمليات.

مقابس يونكس (محلي)​

# إنشاء مقبس يونكس
nc -lU /tmp/mon_socket

# الاتصال
nc -U /tmp/mon_socket

مقابس TCP/IP (شبكة)​

# خادم
nc -l 8080

# عميل
nc localhost 8080

الذاكرة المشتركة​

الذاكرة المشتركة تسمح لعدة عمليات بالوصول إلى نفس منطقة الذاكرة.

المزايا:

  • اتصال سريع
  • لا نسخ للبيانات
  • فعال للكميات الكبيرة

الأدوات:

  • shmget, shmat (System V)
  • /dev/shm (tmpfs)

طوابير الرسائل​

طوابير الرسائل تسمح بإرسال رسائل منظمة بين العمليات.

الخصائص:

  • رسائل ذات نوع
  • قائمة انتظار
  • استمرارية اختيارية

الأوامر:

# عرض طوابير الرسائل
ipcs -q

# حذف
ipcrm -q ID

إشارات المرور​

إشارات المرور تسمح بالمزامنة بين العمليات.

الاستخدام:

  • التحكم في الوصول إلى مورد
  • تجنب حالات السباق
  • التنسيق بين العمليات

أمثلة عملية​

خط أنابيب معقد​

# العثور على 10 عمليات تستخدم معظم وحدة المعالجة المركزية
ps aux --sort=-%cpu | head -11 | tail -10

# عد الأسطر في عدة ملفات
cat *.txt | wc -l

# التصفية والتنسيق
grep ERROR /var/log/app.log | awk '{print $1, $2}' | sort

الاتصال بالإشارات​

# سكربت يتعامل مع الإشارات
#!/bin/bash
trap 'echo "إشارة مستلمة، تنظيف..."; exit' SIGTERM SIGINT

while true; do
echo "العمل جارٍ..."
sleep 1
done

ملخص​

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

IPC: آليات الاتصال بين العمليات
الإشارات: إشعارات غير متزامنة (SIGTERM, SIGKILL, إلخ.)
الأنابيب: إعادة توجيه المخرجات/المدخلات (|, >, <)
المقابس: الاتصال الشبكي (يونكس، TCP/IP)
الذاكرة المشتركة: الوصول إلى ذاكرة مشتركة
طوابير الرسائل: رسائل منظمة
إشارات المرور: المزامنة


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

الوحدة 3: نظام الملفات
الوحدة 4: إدارة العمليات


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