Sorbonne Université Master 2017 2018
PR : Travaux sur Machine 10. Signaux Temps Réel


1 Synchronisation par signaux temps réel

Ecrire un programme qui crée une chaîne de N processus, N étant l’argument du programme. Chaque processus créé doit afficher son Pid ainsi que son ordre de création, mais l’ordre des affichages se fait dans l’ordre inverse des créations. Cet ordre sera imposé en utilisant des signaux POSIX 4. N.B : vous n’utiliserez pas de processus coordinateur pour effectuer cette synchronisation.

Exemple d'appel :
$PWD/bin/creation_tr 4
Fichier à créer : src/creation_tr.c

2 Remontée de valeurs par signaux

Reprenez à nouveau l’exercice Remontée de valeurs par partage de mémoire pour que les valeurs aléatoires transmises par les fils soient échangées avec le père en envoyant des signaux temps réel POSIX 4.

Exemple d'appel :
$PWD/bin/remonte_signal 4
Fichier à créer : src/remonte_signal.c

3 Barrière temps réel

Reprenez l’exercice Barrière par sémaphores en utilisant des signaux temps réel. Question : est-il possible de résoudre cet exercice sans utiliser l’un des processus comme coordinateur ? En fonction de votre réponse, programmez la fonction wait_barrier.

Exemple d'appel :
$PWD/bin/signale_barriere 4
Fichier à créer : src/signale_barriere.c

4 Annexes


makefile
Format de l'envoi : src/creation_tr.c
Répertoires autorisés : src/remonte_signal.c src/signale_barriere.c