Vous êtes sur la page 1sur 1

TP3.

Programmation système UNIX

Les tubes de communication

Exercice1:
Père

P1 P2 P3

On vous demande d'écrire un programme « PereFils.c » (où un processus père crée 3


processus fils) assurant une transmission bidirectionnelle d’informations entre les trois
processus fils via des tubes de communication sans nom (les pipes unidirectionnels).

Le fils P1 envoie deux entiers au fils P2 ainsi qu’au fils P3. Le fils P2 affiche ces entiers
reçus puis renvoie à P1 ces entiers multipliés par 2. De même le fils P3 affiche ces entiers reçus
puis renvoie à P1 la somme des entiers. P1 devra afficher ces d oubles et cette somme sur écran.

Exercice2:

On vous demande d’écrire deux programmes nommés « Client.c » et « Serveur.c ». Le


programme « Serveur.c » est destiné faire le suivant :

• Créer deux tubes nommés : « tube_requête » pour lire la requête du client et un autre
tube « tube_réponse » pour écrire la réponse qui sera par la suite reçue par le client.
Ces deux tubes seront supprimés par le serveur en fin d’exécution.
• A travers le tube « tube_requête », le serveur reçoit d’abord un message "question", et
puis une requête de type "a op b" (un entier, l’opérateur op qui peut être un ‘+’, un ‘-‘,
un ‘*’, ou un ‘/’ et un deuxième entier). L'arrêt de la communication se fait quand le
programme client envoie le message "Bye" (au lieu du message "question").
• A travers « tube_réponse », le serveur envoie la réponse à cette requête.
• Le processus « Client.c » est censé envoyer un message "question" puis une requête de
type "a op b" à travers le tube « tube_requête ». La réponse sera lue via le tube
« tube_réponse ».

Vous aimerez peut-être aussi