0% ont trouvé ce document utile (0 vote)
5 vues2 pages

Programmation Système : Tubes Anonymes

Le document présente des exercices pratiques sur la programmation système avec des tubes anonymes en C. Les exercices incluent l'écriture et la lecture de données entre processus père et fils, ainsi que la communication entre plusieurs processus. Les étudiants doivent compléter des programmes pour réaliser ces tâches et observer les capacités des tubes sur leur système.

Transféré par

Gilbert Bere
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues2 pages

Programmation Système : Tubes Anonymes

Le document présente des exercices pratiques sur la programmation système avec des tubes anonymes en C. Les exercices incluent l'écriture et la lecture de données entre processus père et fils, ainsi que la communication entre plusieurs processus. Les étudiants doivent compléter des programmes pour réaliser ces tâches et observer les capacités des tubes sur leur système.

Transféré par

Gilbert Bere
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD /TP – Initiation à la Programmation système : Tubes

Exercice 1
Que fait le programme ci-dessous. Que pouvez-vous dire de la capacité des tubes
anonymes sur votre système.
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
main () {
char c='a';
int p[2];
int i;
pipe(p);
printf("Ecriture dans le tube ");
i=0;
while(write(p[1],&c,1)==1){
i=i+1;
printf("PIPE_BUF=%d Le nombre d'octets écrits est %d \n",PIPE_BUF,i);
}
}

Exercice 2
Compléter le programme ci-dessous afin que le père et le fils communiquent par
l'intermédiaire d'un tube anonyme. Le père envoie au fils N nombres entiers. Le fils calcule
la somme et l'envoie au père qui l'affiche à l'écran.
#include <stdio.h>
#include <stdlib.h>
# define N 10 // on suppose que N < la limite maximale
# define NN N*sizeof(int)
main () {
int *c, *s;
int somme=0,som;
/* on peut utiliser la même variable */
int p1[2],p2[2];
int i, nb_lus, nb_ecrits;
c=(int *)malloc(N*sizeof(int));
s=(int *)malloc(N*sizeof(int));
pipe(p1); /* création du premier tube */
pipe(p2); /* création du deuxieme tube */
if (fork()!=0) { /* le père */

}
else { // le fils

}
sleep(5);
}

Exercice 3
Le but est de faire communiquer deux processus entre eux en utilisant les tubes anonymes.
Écrire un programme dans lequel :
- Le processus père crée un processus fils et lui envoie un message.
- Le processus fils lit le message et ensuite répond au processus père.
- Le processus père attend la réponse de son fils avant de se terminer.
Exercice 4
Le but est de faire communiquer le processus père avec ces deux processus fils.
Écrire un programme dans lequel :
 le processus père crée deux processus fils « pid1 » et « pid2 » et ensuite écrit dans
un tube les 26 lettres de l’alphabet (chaque lettre minuscule est suivie de la même
lettre majuscule : aAbBcC….).
 les processus fils lisent les lettres une à une ensuite les affichent.

Vous aimerez peut-être aussi