Académique Documents
Professionnel Documents
Culture Documents
Enseignant :
Mr.Mahseur.
Réalisée par :
-BENZINE Imene A3
-SAADI Imene A3
-AIT ALI BELKACEM Sonia A3
un thread est une unité d’exécution dans un processus qui peut être exécuté simultané-
ment avec d’autres threads au sein du même processus. Les threads permettent d’effectuer
plusieurs tâches en même temps, en partageant les ressources du système telles que le pro-
cesseur et la mémoire.
Les threads sont couramment utilisés dans les applications qui nécessitent des opérations
simultanées, telles que les applications réseaux , les interfaces utilisateur graphiques, les si-
mulations, les jeux vidéos , les logiciels de traitement d’images et de vidéos, etc.
Ils peuvent être créés et contrôlés par le système d’exploitation ou par la bibliothèque
de programmation utilisée par l’application. Les développeurs peuvent utiliser des threads
pour améliorer l’efficacité et les performances de l’application, mais ils doivent faire preuve
de prudencelors de l’utilisation de threads pour éviter les problèmes de concurrence, tels que
les conditions de concurrence et les deadlocks.
En resumé, les threads sont une méthode courante pour exécuter des tâches simultanées
dans les applications informatiques en partageant les ressources du système. Bien que les
threads puissent améliorer l’efficacité et les performances de l’application, ils peuvent égale-
ment causer des problèmes de concurrence, qui nécessitent une planification et une gestion
appropriées pour qu’elle soit évitée.
TABLE DES MATIÈRES
3 Processus et thread 18
3.1 Communication entre les threads et les processus : . . . . . . . . . . . . . . . 18
3.2 Différence entre processus et thread : . . . . . . . . . . . . . . . . . . . . . . 22
1
TABLE DES FIGURES
2
LISTE DES TABLEAUX
3
LISTE DES ALGORITHMES
4
INTRODUCTION GÉNÉRALE
Une première solution qui a été utilisée dans les systèmes d’exploitation
est la création de processus fils, qui permet d’exécuter des tâches paral-
lèles. Néanmoins, les processus fils sont des processus indépendants, ne se
partageant aucune ressource. Lorsque des ressources sont communes (comme
par exemple des variables globales communes aux processus fils). le système
doit gérer le partage d’une manière efficace.
Une deuxième alternative introduite actuellement est de permettre à un
1
LISTE DES ALGORITHMES
2
CHAPITRE 1
Les threads ne sont intéressants que dans les applications assurant plu-
3
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
4
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
5
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
1. Un navigateur Web peut avoir un thread qui affiche des images ou des
textes, tandis qu’un autre thread récupère des données du réseau.[10]
2. Un traitement de texte peut avoir un thread qui affiche les gra-
phiques, un autre thread pour lire les touches tapées par l’utilisateur
et troisième thread pour effectuer les corrections orthographiques en
arrière-plan.[10]
3. Un serveur Web, recevant plusieurs requêtes de clients pour obtenir
des pages, lance un thread qui attend ces requêtes. Lorsqu’une re-
quête arrive, plutôt que de créer un nouveau processus, il démarre
un autr thread qui s’en occupe.[10]
4. Téléchargement de fichiers en parallèle : lorsque vous téléchargez un
gros fichier depuis Internet, vous pouvez utiliser des threads pour
diviser le téléchargement en plusieurs parties qui sont téléchargées
en parallèle, ce qui accélère le processus de téléchargement.[4]
5. Lecture et écriture de fichiers : si vous avez besoin de lire ou d’écrire
de gros fichiers, vous pouvez utiliser des threads pour accélérer le
processus. Par exemple, vous pouvez lire une partie du fichier en
utilisant un thread tandis qu’un autre thread écrit une autre partie
du fichier.[4]
6. Interface utilisateur : dans une application avec une interface gra-
phique, vous pouvez utiliser des threads pour effectuer des tâches
en arrière-plan afin de ne pas bloquer l’interface utilisateur prin-
cipale. Par exemple, si vous devez effectuer une tâche longue qui
pourrait prendre quelques secondes, vous pouvez l’exécuter dans un
thread distinct pour que l’interface utilisateur reste réactive pendant
l’opération.[4]
7. Calcul intensif : si vous devez effectuer des calculs intensifs dans une
application, vous pouvez utiliser des threads pour les exécuter en
parallèle sur différents processeurs ou cœurs de processeur, ce qui
6
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
7
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
1.3.1 Réactivité :
1.3.3 Économie :
8
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
9
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
10
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
par défaut).
3. Chaque thread dispose d’une fonction à exécuter ,c’est en même
temps sa raison d’être. Cet argument de la fonction pthread_creat
est un pointeur de fonction, il permet de transmettre un pointeur sur
la fonction que le thread devra exécuter.
4. Le dernier argument représente un argument que l’on peut passer à
la fonction que le thread doit exécuter.
1.4.3 Exemple :
11
CHAPITRE 1. GÉNÉRALITÉS SUR LES THREADS
La première chose à avoir en tête est que le programme i.e le "main" est
un thread, donc il va s’exécuter parallèlement au thread créé et lancé
par la routine pthread_create().
Ce dernier, comme on l’a vu ci-dessus, a quatre paramètres : Le premier
paramètre est utilisé pour fournir des informations au thread.
Le second est utilisé pour donner des valeurs à quelques attributs du
thread :dans notre cas ce paramètre vaut "NULL" (pointeur sur une
valeur NULL) pour signifier à la routine thread_creat() de se servir
des valeurs par défaut de tous ses paramètres.
Le troisième paramètre est le nom de la fonction qui sera exécutée par
le thread et le quatrième paramètre est un argument de la fonction exé-
cutée par le thread.
Une fois compilée et exécutée ce programme donne les résultats sui-
vants :[1]
12
CHAPITRE 2
Chaque processus garde trace des informations sur ses threads,en uti-
lisant une table de threads propre à lui.Cette table est modifiée par le
systéme au fur et à mesure de l’exécution du thread et au changement
d’état du thread.Le thread utilisateur est présenter dans la figure 2.1
13
CHAPITRE 2. GESTION ET IMPLÉMENTATION DE THREAD
Avantages Inconvenients
1-Peut être implementé dans un systéme 1-Ils ne peuvent pas être exécutés en paral-
d’exploitation qui ne supporte pas les léle sur des processeurs differents,car ils sont
threads. exécutés dans le même processus.
2-Creation,basculation,synchronisation les 2-Si un thread se bloque,alors tout le proces-
threads sont trés rapides,car elles sont faites sus est bloquée.
sans l’intervention du noyau.
3-Chaque processus peut avoir son propre or- 3-Ils ne peuvent pas beneficier des avantages
donnancement. des systémes des multiprocessus ou de mul-
tithreading, telque la distribution et l’équili-
brage de charge.
14
CHAPITRE 2. GESTION ET IMPLÉMENTATION DE THREAD
Avantages Inconvenients
1- Les threads noyau sont plus efficaces que 1-La gestion(creation,attente,synchronisation)des
les threads utilisateurs en ce qui concerne les threads nécessite des appels systémes.
operations de bas niveau,tellesque les péré-
phiriques l’entrée/sortie,etc.
2-Les threads noyau peuvent accéder à des 2-Les threads noyau ont un accès direct aux res-
ressources materielles ce qui leur permet d’ef- sources matérielles ce qui peut poser des pro-
fectuer des tâches qui ne peuvent être reali- blémes de sécurité.
sées que par le noyau.
3-Le processus n’est bloqué si l’un de ses 3-Les erreurs de programmation dans les threads
threads est bloqué. noyau peuvent entraîner des plantages du SE.
15
CHAPITRE 2. GESTION ET IMPLÉMENTATION DE THREAD
16
CHAPITRE 2. GESTION ET IMPLÉMENTATION DE THREAD
17
CHAPITRE 3
PROCESSUS ET THREAD
Cette communication entre les threads et les processus est une partie
importante de la programmation concurrente et parallèle. Les threads
et les processus peuvent interagir les uns avec les autres pour coordon-
ner leurs activités et échanger des données. Cette communication est
essentiellement nécessaire pour coordonner leurs activités et partager
des données pour accomplir une tâche commune. [3]
18
CHAPITRE 3. PROCESSUS ET THREAD
19
CHAPITRE 3. PROCESSUS ET THREAD
20
CHAPITRE 3. PROCESSUS ET THREAD
21
CHAPITRE 3. PROCESSUS ET THREAD
22
CHAPITRE 3. PROCESSUS ET THREAD
En principe les threads est une partie d’un processus qui permettent
l’exécution de nombreuses taches simultanément Dans un même proces-
sus, plusieurs threads peuvent être exécutés en parallèle, chacun ayant
son propre chemin d’exécution et partageant l’espace mémoire du pro-
cessus. Les threads sont souvent utilisés pour effectuer des tâches en
arrière-plan ou pour améliorer la réactivité d’un programme, car ils
permettent de traiter plusieurs tâches simultanément sans bloquer l’exé-
cution du programme principal.
23
CONCLUSION
24
CHAPITRE 3. PROCESSUS ET THREAD
25
CHAPITRE 3. PROCESSUS ET THREAD
26
BIBLIOGRAPHIE
27