Next: Provenance des signaux Up: Cours Système Previous: La primitive ioctl

Les signaux

Les signaux sont un mécanisme asynchrone de communication inter-processus.

Intuitivement, il sont comparables à des sonneries, les differentes sonneries indiquant des évènements différents. Les signaux sont envoyés à un ou plusieurs processus. Ce signal est en général associé à un évènement.

Peu portables entre BSD et ATT, ils deviennent plus commodes à utiliser et portables avec la norme POSIX qui utilise la notion utile de vecteur de signaux et qui fournit un mécanisme de masquage automatique pendant les procédures de traitement (comme BSD).

Un signal est envoyé à un processus en utilisant l'appel système:

 kill(int pid, int signal);
signal est un numéro compris entre 1 et NSIG (défini dans <signal.h>) et pid le numéro du processus.

Le processus visé reçoit le signal sous forme d'un drapeau positionné dans son bloc de contrôle.
Le processus est interrompu et réalise éventuellement un traitement de ce signal.

On peut considérer les signaux comme des interruptions logicielles, ils interrompent le flot normal d'un processus mais ne sont pas traités de façon synchrone comme les interruptions matérielles.





Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci