Vous êtes sur la page 1sur 1

Groupe 1

14/01/2015

Exercice 1

On considère le programme suivant :

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(void)
{
fork(); printf("fork1\n");
fork(); printf("fork2\n");
fork(); printf("fork3\n");
return(0);
}

1- Expliquez l’exécution de ce programme. Précisez en particulier le nombre total de


processus engendrés par cette exécution. Combien d’occurrences de chaque type
de messages fork i sont affichées ? Quel est l’ordre d’apparition des différents types
de messages ?
2- Expliquer la commande ps -Af. L'utiliser pour reconstituer manuellement l’arbre
de processus correspondant.

Exercice 2

Ecrire un programme C équivalent aux commandes shell suivantes :

a- commande_1 & commande_2 & commande_3


b- commande_1 ; commande_2 ; commande_3

commande_1, commande_2 et commande_3 sont données via la ligne de


commande

Exercice 3

Soit la recherche par dichotomie dans une matrice n x m; les valeurs n et m sont
données via la ligne de commande. Le contenu de la matrice est rempli d'une
manière aléatoire (sans saisie).

1- Implémenter en langage C une recherche séquentielle. Donner le temps


d'exécution de la fonction recherche
2- Implémenter une recherche parallèle sachant la fonction fork. Chaque fils doit
renvoyer au père le résultat de sa recherche (trouvé ou pas, valeur trouvée, temps
d'exécution de la fonction recherche).
3- Comparer les deux résultats.