Programmation concurrente - IS
TP1
Lors de ce TP, pensez à appeler vos enseignants chaque fois que vous terminez un exercice pour leur demander de vérifier la solution. N'hésitez pas également à ajouter des affichages de PID/PPID et des sleep dans votre code pour simuler des traîtements et vérifier la concurrence ainsi que la synchronisation.
Exercice 1
- Écrire un programme avec un processus père qui crée un processus fils. Le processus fils utilisera la fonction rand pour générer 10 nombres aléatoires et les afficher.
- Modifiez le programme précédent pour que le père et le fils communiquent via un tube. Le fils transmettra les nombres générés au père, qui en fera la somme. Après la terminaison du fils, le père affiche la somme.
Correction : tp1-1.c.
Exercice 2
- Créez un père qui va créer deux processus fils. Le premier de ses fils affichera tous les entiers de 0 à 10, le second tous les entiers de 0 à 100. Attention à la synchronisation.
- Modifiez le programme précédent pour que chacun des fils communiquent avec le père via un tube. Les fils transmettent les entiers au père, qui fera la somme de tous les entiers reçus.
Correction : tp1-2.c.
Exercice 3
Modifiez l'exercice sur cp vu en cours pour que la lecture du fichier et la copie soient exécutés par deux processus différents qui communiquent via un tube : un père lit le contenu du fichier, et le transmet via un tube à un fils qui copie ce contenu dans le nouveau fichier.
Correction : tp1-3.c.