Aller au contenu principal

Chapitre 2.10 - Communication Inter-Processus

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Comprendre les mécanismes de communication inter-processus (IPC)
  • Utiliser les signaux pour communiquer
  • Comprendre les pipes et redirections
  • Utiliser les sockets pour la communication réseau

Qu'est-ce que l'IPC?​

IPC (Inter-Process Communication) désigne les mécanismes permettant aux processus de communiquer et synchroniser leurs actions.


Signaux​

Les signaux sont des notifications asynchrones envoyées à un processus.

Signaux courants:

  • SIGTERM (15): Terminaison gracieuse
  • SIGKILL (9): Terminaison forcée (ne peut pas être ignoré)
  • SIGSTOP (19): Suspendre
  • SIGCONT (18): Reprendre
  • SIGHUP (1): Recharger configuration
  • SIGINT (2): Interruption (Ctrl+C)
# Envoyer un signal
kill -SIGTERM PID
kill -15 PID
kill -9 PID # Force

# Voir les signaux disponibles
kill -l

# Ignorer un signal (dans un script)
trap '' SIGINT

Pipes​

Les pipes permettent de rediriger la sortie d'un processus vers l'entrée d'un autre.

Pipes Anonymes​

# Pipe simple
commande1 | commande2

# Exemple
ps aux | grep apache
cat fichier.txt | sort | uniq

Named Pipes (FIFO)​

# Créer un named pipe
mkfifo mon_pipe

# Processus 1 écrit
echo "Hello" > mon_pipe

# Processus 2 lit
cat < mon_pipe

Redirections​

Les redirections permettent de contrôler l'entrée/sortie:

# Redirection sortie
commande > fichier # Écraser
commande >> fichier # Ajouter

# Redirection erreur
commande 2> erreur.log
commande 2>&1 # Erreur vers sortie

# Redirection entrée
commande < fichier

# Here document
commande << EOF
ligne 1
ligne 2
EOF

Sockets​

Les sockets permettent la communication réseau entre processus.

Sockets Unix (Local)​

# Créer un socket Unix
nc -lU /tmp/mon_socket

# Se connecter
nc -U /tmp/mon_socket

Sockets TCP/IP (Réseau)​

# Serveur
nc -l 8080

# Client
nc localhost 8080

Mémoire Partagée​

La mémoire partagée permet à plusieurs processus d'accéder à la même zone mémoire.

Avantages:

  • Communication rapide
  • Pas de copie de données
  • Efficace pour grandes quantités

Outils:

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

Message Queues​

Les message queues permettent l'envoi de messages structurés entre processus.

Caractéristiques:

  • Messages typés
  • File d'attente
  • Persistance optionnelle

Commandes:

# Voir les message queues
ipcs -q

# Supprimer
ipcrm -q ID

Sémaphores​

Les sémaphores permettent la synchronisation entre processus.

Usage:

  • Contrôle d'accès à une ressource
  • Éviter les conditions de course
  • Coordination entre processus

Exemples Pratiques​

Pipeline Complexe​

# Trouver les 10 processus utilisant le plus de CPU
ps aux --sort=-%cpu | head -11 | tail -10

# Compter les lignes dans plusieurs fichiers
cat *.txt | wc -l

# Filtrer et formater
grep ERROR /var/log/app.log | awk '{print $1, $2}' | sort

Communication avec Signaux​

# Script qui gère les signaux
#!/bin/bash
trap 'echo "Signal reçu, nettoyage..."; exit' SIGTERM SIGINT

while true; do
echo "Travail en cours..."
sleep 1
done

Résumé​

Dans ce chapitre, vous avez appris:

IPC: Mécanismes de communication inter-processus
Signaux: Notifications asynchrones (SIGTERM, SIGKILL, etc.)
Pipes: Redirection sortie/entrée (|, >, <)
Sockets: Communication réseau (Unix, TCP/IP)
Mémoire Partagée: Accès mémoire commun
Message Queues: Messages structurés
Sémaphores: Synchronisation


Prochaines Étapes​

Module 3: Système de Fichiers
Module 4: Gestion des Processus


Chapitre créé le: Décembre 2024