الفصل 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