Vous êtes sur la page 1sur 1

Université Sidi Mohamed Ben Filière 

: SMI-S4
Abdellah Année : 2020-2021
Faculté des sciences Systèmes d’exploitation 2
Fés

TD1 : Systèmes d’exploitation 2


Exercice 1 :
1. Préciser le nombre de processus créé par les programmes ci-dessous :

Code 1 Code 2 Code 3


int main(){ int main(){ int main() {int cpt=0;
fork(); if (fork() > 0) while (cpt < 3)
fork(); fork();} {if (fork() > 0)
fork();} cpt++;
else cpt=3;}
2. Dans le programme « code1.c » :
a) Remplacez le premier appel à « fork » par un appel à « execl() » qui exécute le programme
lui-même. Que se passe-t-il ?
b) Remplacez le deuxième appel à « fork » par un appel à « execl() » qui exécute le
programme lui-même. Que se passe-t-il ?
Exercice 2 :
Qu'affiche l'exécution du programme suivant :
int main() {
pid_t pid;
int x = 1;
pid = fork();
if (pid == 0) {
printf("Dans fils : x=%d\n", ++x);
exit(0);}
printf("Dans père : x=%d\n", --x);
exit(0);}
Exercice 3 :
Ecrire un programme où un processus crée un fils, ce fils exécutant la commande ls –l. Le
père attend la fin de son fils. Par ailleurs, chacun des processus affiche son pid ; le fils affiche
le pid de son père et le père affiche le pid de son fils.
Exercice 4 :
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.
Exercice 5:
On crée deux tâches (threads) pour exécuter chacune des deux fonctions : une affichera des
entiers de 1 à N et l’autre calcule leur somme.

Page 1 sur 1

Vous aimerez peut-être aussi