École Supérieure des Sciences et de la Technologie de Hammam Sousse
TP : Système D’exploitation 2 Durée : 1h30 / Classe : LI1
Enseignant : Ben Khlifa Hamza Année universitaire : 2025-2026
💻 TP6 : Communication Inter-Processus (Signaux)
✨ Introduction et Rappels Théoriques
🔍 Qu'est-ce qu'un signal ?
Un signal est une notification logicielle envoyée à un processus pour lui indiquer qu’un événement s’est
produit. Le processus peut alors réagir à cet événement.
⚡ Types de comportements d’un processus face à un signal
Comportement par
Signal Description Utilisation typique
défaut
Arrêter un programme
SIGINT Interruption clavier (Ctrl+C) Arrête le processus
manuellement
SIGKILL Tue immédiatement un processus Tuer le processus
Forcer l'arrêt d’un processus
(non interceptable) bloqué
SIGUSR1 Signal personnalisé (utilisateur 1) Déclencher une action spécifique
Terminer le processus
personnalisée
SIGUSR2 Signal personnalisé (utilisateur 2) Terminer le processus Idem, 2ème canal utilisateur
SIGTERM Demande polie pour terminer un Tuer le processus Fermer proprement un processus
processus
Nettoyer les processus zombies
SIGCHLD Envoyé au parent lorsque son fils Ignoré (par défaut)
termine (wait())
🔗 Bibliothèques C à utiliser 📚
#include <signal.h> // pour signal(), SIGINT, etc.
#include <unistd.h> // pour getpid(), sleep()
#include <stdio.h> // pour printf()
#include <stdlib.h> // pour exit()
⚙️ Fonctions C importantes 🛠️
Fonction Description
signal(int sig, sighandler_t func) Définit le comportement d’un signal.
kill(pid_t pid, int sig) Envoie un signal à un processus donné.
getpid() Récupère le PID du processus courant.
1/4
TP : Système D’exploitation 2 Durée : 1h30 / Classe : LI1
Enseignant : Ben Khlifa Hamza Année universitaire : 2025-2026
💻 TP6 : Communication Inter-Processus (Signaux)
✨ Introduction et Rappels Théoriques
🔍 Qu'est-ce qu'un signal ?
Un signal est une notification logicielle envoyée à un processus pour lui indiquer qu’un événement s’est
produit. Le processus peut alors réagir à cet événement.
⚡ Types de comportements d’un processus face à un signal
Comportement par
Signal Description Utilisation typique
défaut
Arrêter un programme
SIGINT Interruption clavier (Ctrl+C) Arrête le processus
manuellement
SIGKILL Tue immédiatement un processus Tuer le processus
Forcer l'arrêt d’un processus
(non interceptable) bloqué
SIGUSR1 Signal personnalisé (utilisateur 1) Déclencher une action spécifique
Terminer le processus
personnalisée
SIGUSR2 Signal personnalisé (utilisateur 2) Terminer le processus Idem, 2ème canal utilisateur
SIGTERM Demande polie pour terminer un Tuer le processus Fermer proprement un processus
processus
Nettoyer les processus zombies
SIGCHLD Envoyé au parent lorsque son fils Ignoré (par défaut)
termine (wait())
🔗 Bibliothèques C à utiliser 📚
#include <signal.h> // pour signal(), SIGINT, etc.
#include <unistd.h> // pour getpid(), sleep()
#include <stdio.h> // pour printf()
#include <stdlib.h> // pour exit()
⚙️ Fonctions C importantes 🛠️
Fonction Description
signal(int sig, sighandler_t func) Définit le comportement d’un signal.
kill(pid_t pid, int sig) Envoie un signal à un processus donné.
getpid() Récupère le PID du processus courant.
1/4