Vous êtes sur la page 1sur 2

Université Cadi Ayyad Module : Système d’exploitation

Faculté des Sciences et Techniques Filières : IRISI - S3


Année Universitaire : 2021-2022 Professeur : Abdessamad EL BOUSHAKI

TP 2 : Ordonnancements des Pthreads


Exercice :

On considère un ensemble de sept threads {T1, T2, T3, T4, T5, T6, T7}. Il est demandé d’écrire un
programme qui permet de créer, de définir les paramètres d’ordonnancement, et de spécifier le travail
de chaque thread en respectant les exigences suivantes :

1. Création des threads


Les threads sont créés selon l’arborescence de la figure 1 où :
 Les liens présentent la relation père-fils, e.g Le thread T1 est le père des threads T2 et T3,
autrement dit, les threads T2 et T3 sont les fils du thread T1.
 Le thread T1 est le thread principal qui exécute la fonction main. Les autres threads sont des
threads annexes
2. Ordonnancement des threads
Les threads T2 et T7 héritent la priorité et la politique d’ordonnancement de leur père. Par contre,
comme indiqué dans le tableau ci-contre :
 Les threads T3 et T6 sont créés avec des paramètres d’ordonnancement spécifiques.
 les threads T4 et T5 modifient (après leur création) leur priorité et leur politique
d’ordonnancement.

Threads Portée Priorité Politique


T6 Processus 20 FIFO
T3 Processus 10 FIFO
T4, T5 Processus 20 RR

1
3. Traitement des threads
L’objectif de ce programme est de calculer l'expression suivante : E= ((A*B)-(C*D)) / ((A+B)*(C-D))
(présentée par l’arbre de la figure 2) de deux manières différentes :
 Cas 1 : où la transmission des résultats intermédiaires entre les threads se fera par un appel à la
primitive « pthread_join ».
 Cas 2 où la transmission des résultats intermédiaires entre les threads se fera par un rajout d’au
plus 4 variables globales R1, R2, R3, R4.

Vous aimerez peut-être aussi