Académique Documents
Professionnel Documents
Culture Documents
Multithreading
Hyperthreading
01
Motivation – Notions générales
02
Threading
03
Multithreading
04
Hyperthreading
Motivation
Une application est généralement mise en œuvre comme un processus distinct avec un ou plusieurs threads de
contrôle.
3
Notions générales
Processeur Cœur
(CPU) (CORE)
Système
Processus
d’exploitation
Les
Le mot thread peut se traduire
différents threads d'une
par « fil
application
d'exécution », c'est-à-dire un
partagent un même
déroulement
espace d'adressage en
particulier du code du
ce qui concerne leurs
programme qui se
données.
produit parallèlement à
d'autres entités en
cours de progression.
6
Types des Threads
• Threads utilisateurs (User) : Les threads utilisateurs sont des threads qui ne sont pas liés au
système d'exploitation. Ceux-ci sont gérés à l'intérieur d'un processus, par une bibliothèque
logicielle. Celle-ci s'occupe de la création et la suppression des threads, ainsi que de leur
ordonnancement. Le système d'exploitation ne peut pas les ordonnancer et n'a donc pas besoin de
mémoriser les informations des threads. Par contre, chaque thread doit se partager le temps alloué
au processus lors de l'ordonnancement.
• Threads noyaux (Kernel) : Les threads noyaux sont gérés par le système d'exploitation, qui peut
les créer, les détruire ou les ordonnancer. L'ordonnancement est donc plus efficace, vu que chaque
thread est ordonnancé tel quel. Il est donc nécessaire de disposer d'une table des threads pour
mémoriser les contextes d'exécution et les informations de chaque thread.
7
Avantages et Inconvénients
Les programmes qui utilise les threads sont plus rapide que
les programmes architecturés classiquement (les machines
comportant plusieurs processeurs)
8
Utilisation
01 Les threads sont utilisés dans les interfaces graphiques des programmes comme dans la
télécommunication et les calculs intensifs
(Encodage d’une vidéo, simulation mathématique …)
Dans certains programmes, l’utilisation de plusieurs threads permet de paralléliser le traitement, ce qui permet de
rendre le traitement plus rapide
9
Processus et Thread
Un processus est une exécution d’un programmes mais un thread est une séquence d’exécution
unique dans le processus. Un processus peut être un ou plusieurs threads.
Processus Processus
Monothread MultiThread
10
MultiThreading
Un processeur est dit multithread s'il est capable d'exécuter efficacement plusieurs threads simultanément.
Contrairement aux systèmes multiprocesseurs (tels les systèmes multi-cœur), les threads doivent partager les
ressources d'un unique cœur
Processus
11
Modèles du MultiThreading
K K K
• Many-to-Many : Plusieurs threads utilisateurs peuvent être mappés à plusieurs threads noyau
12
K K K
Avantages du MultiThreading
Economique
01 Il est économique car ils partagent les mêmes ressources de processeur. Il faut moins de
temps pour créer des threads
Réactivité
03 Il augmente la réactivité vis-à-vis de l'utilisateur car elle permet au programme de continuer à
fonctionner même si une partie de celui-ci effectue une longue opération ou est bloquée.
Evolutivité
04
Il augmente le parallélisme sur les machines à CPU multiples. Il améliore les
performances des machines multiprocesseurs.
13
HyperThreading
Hyper-threading consiste à créer deux processeurs logiques sur une seule puce, chacun doté de ses propres
registres de données et de contrôle, et d’un contrôleur d’interruptions particulier.
Ces deux unités partagent les éléments du cœur de processeur, le cache et le bus système. Ainsi, deux sous-
processus peuvent être traités simultanément par le même processeur.
Le premier processeur qui supporte cette technologie est lancé en 2002 (Intel Pentium 4)
14
HyperThreading
15
16
Threads
Multithreading
Hyperthreading