Edito
Voila voila, je refais mon infra… Et j'ai donc envie de participer a une oeuvre commune :
Antoine.
Pub
Désolé de vous incommoder avec cela, c'est un mal aujourd'hui nécessaire. Je le souhaite juste utile, on verra.
Ceci est une ancienne révision du document !
Ok… donc les excerices en cours sont : 9.1 9.5 et 9.10 is traitent sur les signaux, forcement en utilisant l'API POSIX
À l’aide des primitives V7POSIX, écrivez un programme qui incrémente et affiche un compteur à chaque fois qu’il reçoit le signal SIGINT . Au bout de 5 fois, il doit s’arrêter. L’incrémentation et l’affichage du compteur ne doivent pas être réalisés dans la fonction main.
É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
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 V7POSIX, avec le signal SIGALRM pour tout ce qui est temporisation.
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 :
Cette fonction envoie les 8 bits constituant un octet au processus désigné.
Cette fonction prépare le récepteur à recevoir un octet.
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.