Vous êtes sur la page 1sur 2

Module : Système d’exploitation et

programmation système. 2022/2023


TP N°3 : Processus et parallélisme

Objectifs :
Création et communication entre processus

Exercice 1 : Création de processus


Que réalisent les programmes suivants. Combien de processus sont créés ? Indiquez le résultat à
l’écran.
1.1

1. #include<stdio.h>
2. #include<sys/types.h>
3. #include<unistd.h>
4.
5. int main(int argc, char **argv) {
6. int p1, p2, p3;
7. p1 = fork();
8. p2 = getpid();
9. p3 = getppid();
10. printf("p1=%d - p2=%d - p3=%d\n",p1,p2,p3);
11. return 0;
12. }

1.2

1. #include<stdio.h>
2. #include<sys/types.h>
3. #include<unistd.h>
4.
5. int main(int argc, char **argv) {
6. int p1, p2, p3;
7. p2 = getpid();
8. p3 = getppid();
9. p1 = fork();
10. printf("p1=%d - p2=%d - p3=%d\n", p1, p2, p3);
11. return 0;
12. }

1.3

1. #include<stdio.h>
2. #include<sys/types.h>

1 TP N°3
3. #include<unistd.h>
4.
5. int main(int argc, char **argv) {
6. int pid;
7. int x = 2;
8. printf("x=%d\n",x);
9. pid = fork();
10. x = x+1;
11. printf("x=%d\n",x);
12. if (pid != 0) {
13. waitpid(pid, 0, 0);
14. }
15. return 0;
16. }

Exercice 2 : La fonction execl()


2.1 Donnez le code source C d'un programme print.c qui affiche à l'écran la chaîne de caractères qui
lui est passée en paramètre en ligne de commande, par exemple print coucou. Compiler et tester ce
programme.
2.2 Ecrire un programme prog1 qui crée un processus fils qui exécute print avec l’argument salut. On
utilisera la fonction execl.

Exercice 3 : La fonction kill()


Ecrire un programme qui crée un processus fils qui affiche à chaque seconde le nombre de secondes
écoulées. Le processus père arrête le processus fils au bout de 10 secondes.

Exercice 4 : La fonction wait()


Ecrire un programme qui crée 2 processus, l’un faisant la commande ls -l, l’autre ps -l. Le père devra
attendre la fin de ses deux fils et afficher quel a été le premier processus à terminer.

2 TP N°3

Vous aimerez peut-être aussi