Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

docs:programation_system:signaux [2020/03/19 17:25]
127.0.0.1 édition externe
docs:programation_system:signaux [2020/03/19 19:01] (version actuelle)
Ligne 15: Ligne 15:
  * Les signaux peuvent arriver a n'importe quel moment !   * Les signaux peuvent arriver a n'importe quel moment !
  * Par consequant, le code dans les gestionnaire de signaux doit etre le plus succint possible   * Par consequant, le code dans les gestionnaire de signaux doit etre le plus succint possible
 +  * le cas presque particulier de SIGALRM
 +    * tout les signaux ont une signification: ils tirent leur sonnette en fonction de cas precis,
 +    * SIGALRM, ce n'est pas tout a fait pareil... lui sont declencheur c'est le temps... et donc pour l'armer c'est alarm(en secondes)
 +    * a un detail pret cependant : on l'arme pour les X _prochaines_ seconde, et c'est tout, donc, il faut le rearmer par la suite,si on en a encore besoin
 +
 +  * Lorsque l'on fork un process, les configuration des signaux sont, eux aussi copié a l'identique.
 +(18:48:41) Antoine_Delaporte: il faut lancer le handler dans le pere
 +(18:48:51) X: C'est ce qui me semblait
 +(18:49:05) Antoine_Delaporte: car sinon il peut y avoir des pertes de signaux
 +(18:49:23) Antoine_Delaporte: hmm ma phrase n'est pas clair...
 +(18:51:28) Antoine_Delaporte: en gros si jamais le fils n'a pas fini de s'initialiser et qu'a ce moment la le pere lui envoie le signal... donc le fils le loupe
====== Exercices ====== ====== Exercices ======
Ligne 24: Ligne 35:
===== Exercice 9.5 ===== ===== Exercice 9.5 =====
-Écrivez un programme composé de deux processus. Le processus père génère un processus fils qui doit exécuter une fonction traite toutes les secondes, qui ne fait qu’afficher un message. Au bout d’une minute, le +Écrivez un programme composé de deux processus.  
-processus père affiche un message et prévient le fils qu’il doit s’arrêter en lui envoyant le signal SIGUSR1. +  - Le processus père génère un processus fils qui doit exécuter une fonction traite toutes les secondes, qui ne fait qu’afficher un message. 
-Lorsque le processus fils reçoit l’ordre du père, il affiche un message et s’arrête effectivement, provoquant alors la terminaison du père. Vous utiliserez les primitives <del>V7</del>POSIX, avec le signal SIGALRM pour tout ce qui est temporisation.+  - Au bout d’une minute, le processus père affiche un message et prévient le fils qu’il doit s’arrêter en lui envoyant le signal SIGUSR1. 
 +Lorsque le processus fils reçoit l’ordre du père 
 +  - il affiche un message et s’arrête effectivement, provoquant alors la terminaison du père. 
 +Vous utiliserez les primitives <del>V7</del>POSIX, avec le signal SIGALRM pour tout ce qui est temporisation.
===== Exercice 9.10 ===== ===== Exercice 9.10 =====
-On désire simuler un mécanisme matériel comparable à un coupleur série à l’aide des signaux POSIX. Un 0 (zéro) est matérialisé par le signal SIGUSR1 , un 1 (un) est matérialisé par le signal SIGUSR2 . Un octet est transmispar une succession de 8 bits (0 ou 1). À chaque fois qu’il reçoit un bit, le récepteur doit envoyer en retour un acquittement (signal SIGUSR1 ) pour prévenir l’émetteur qu’il peut passer au bit suivant.+On désire simuler un mécanisme matériel comparable à un coupleur série à l’aide des signaux POSIX. 
 +  * Un 0 (zéro) est matérialisé par le signal SIGUSR1 , un 1 (un) est matérialisé par le signal SIGUSR2. 
 +  * Un octet est transmispar une succession de 8 bits (0 ou 1). 
 +  * À chaque fois qu’il reçoit un bit, le récepteur doit envoyer en retour un acquittement (signal SIGUSR1 ) pour prévenir l’émetteur qu’il peut passer au bit suivant. 
Écrivez les fonctions suivantes : Écrivez les fonctions suivantes :
  * void envoyer (pid_t recepteur, int octet)   * void envoyer (pid_t recepteur, int octet)
Ligne 38: Ligne 56:
  * int recevoir (pid_t emetteur)   * int recevoir (pid_t emetteur)
  Cette fonction attend que suffisamment de bits soient reçus pour constituer un octet, et renvoie alors la valeur reçue.   Cette fonction attend que suffisamment de bits soient reçus pour constituer un octet, et renvoie alors la valeur reçue.
 +  
Rédigez un programme de test dans lequel le processus père envoie une valeur (passée en argument du programme) et le fils affiche la valeur reçue. Rédigez un programme de test dans lequel le processus père envoie une valeur (passée en argument du programme) et le fils affiche la valeur reçue.
docs/programation_system/signaux.1584635134.txt.gz · Dernière modification: 2020/03/19 17:44 (édition externe)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki