Systèmes d'Exploitation - Série TD N°1
Université de Bouira - Département d'Informatique
Année universitaire 2018-2019
Module : Systèmes d'Exploitation 1
Première année Master ISIL
Exercice 1 : Découpage et parallélisation d'une expression
Écrire un algorithme puis réaliser un découpage en tâches t1, ..., tn de l'expression suivante :
y := 2 * ((a + b) / (c - d) + (e * f)) + (a + b) * (c - d)
En utilisant la définition de la condition de Bernstein, étudier la possibilité de paralléliser cette expression.
Exercice 2 : Arbre généalogique des processus
Dessiner l'arbre généalogique des processus engendrés par le programme suivant :
#include <unistd.h>#include <stdio.h>int main() {pid_t pid;int i;for (i = 0; i < 5; i++) {pid = fork();if (pid < 0) {printf("Le fork() a échoué\n");} else if (pid == 0) {printf("Je suis le processus : %d, mon père est : %d\n", getpid(), getppid());} else {printf("Je suis le processus : %d, mon père est : %d\n", getpid(), getppid());}}return 0;}Exercice 3 : Création et gestion de processus
Combien de processus le programme suivant crée-t-il ?
#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main() {fork();fork();fork();return EXIT_SUCCESS;}Écrire un programme en C qui lance 5 fils (processus enfants) et attend la fin de leur exécution pour se terminer.