Série1 Système D'exploitation
Série1 Système D'exploitation
Série1 Système D'exploitation
Exercice 1
Soit le système de tâches défini par S= {(T1, T2, T3, T4), T1<T2, T1<T3, T4<T3} .
1. Donner les comportements possibles de ce système.
2. Donner les valeurs des variables pour certains comportements du système avec
l'interprétation suivante des tâches:
T1: Lire(x); T2: Y X/2; T3: Z X+Y; T4: Lire(Y);
Exercice 2
Ecrire les programmes parallèles correspondants aux graphes de précédence suivants en utilisant les
outils: Fork/Join et Parbegin/Parend.
T1 T2 T1 T1 T2 T1 T2 T3 T4
T2 T3 T4 T3 T4 T5 T6
T3 T4
T6 T6 T7 T7
T5 T5 T8
Exercice 3
Pour calculer la somme des éléments d’un tableau on utilise deux processus. Le premier parcourt les
éléments d’indice impair et l’autre les éléments d’indice pair comme suit :
Const M = … // Taille du tableau
var T : Tableau[1..M] de entier ;
Somme : entier init 0 ;
Processus P1 Processus P2 Programme principal
var i : entier // i variable locale à P1 var j : entier // j variable locale à P2
Début Début Début
i := 1 ; j := 2 ; ParBegin
Tant que (i ≤ M) faire Tant que (j ≤ M) faire P1 ; P2 ;
Somme := Somme + T[i] ; Somme := Somme + T[j] ; ParEnd
i := i + 2 ; j := j + 2 ; Fin
FinTantque FinTantque
Fin Fin
1) Quel est le problème posé par cette solution ? Justifier.
2) Proposer une solution afin de résoudre ce problème.
3) Une autre variante de la solution précédente consiste à utiliser deux variables globales Somme1 et
Somme2. La première variable sera utilisée uniquement par P1 pour calculer la somme des
éléments d’indice impair et Somme2 sera utilisée uniquement par P2 pour calculer la somme des
éléments d’indice pair. Le résultat final (Somme1+Somme2) sera calculé par un nouveau processus
P3. Le programme principal proposé sera :
Début
ParBegin
P1 ; P2 ; P3 ;
ParEnd
Fin
Donner les modifications nécessaires pour P1 et P2 ainsi que le code de P3.