0% ont trouvé ce document utile (0 vote)
12 vues22 pages

Processus

Le document traite de l'importance des threads dans les applications modernes, soulignant leur légèreté par rapport aux processus et leur capacité à améliorer la réactivité et l'efficacité. Il aborde également les défis de la programmation multicœurs et les différents modèles de multithreading, ainsi que les bibliothèques de threads disponibles. Enfin, il présente les Pthreads comme une API standard pour la création et la gestion de threads.

Transféré par

abraxes0707
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues22 pages

Processus

Le document traite de l'importance des threads dans les applications modernes, soulignant leur légèreté par rapport aux processus et leur capacité à améliorer la réactivité et l'efficacité. Il aborde également les défis de la programmation multicœurs et les différents modèles de multithreading, ainsi que les bibliothèques de threads disponibles. Enfin, il présente les Pthreads comme une API standard pour la création et la gestion de threads.

Transféré par

abraxes0707
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Threads : Motivation

 La plupart des applications modernes sont « multithreadées ».


 Les threads s'exécutent au sein de l'application.
 Plusieurs tâches de l'application peuvent être implémentées par des threads
distincts.
• Mise à jour de l'affichage.
• Récupération de données.
• Vérification orthographique.
• Réponse à une requête réseau.
 La création de processus est lourde, tandis que la création de threads est légère.
 Peut simplifier le code et améliorer l'efficacité.
 Les noyaux sont généralement « multithreadés ».

07/11/2025 Systèmes d'Exploitation 93


Threads : Motivation

07/11/2025 Systèmes d'Exploitation 94


Threads : Motivation

07/11/2025 Systèmes d'Exploitation 95


Architecture serveur multithread

Processus monothread et multithread

07/11/2025 Systèmes d'Exploitation 96


Processus monothread et multithread

Processus monothread et multithread

07/11/2025 Systèmes d'Exploitation 97


Bénéfice threads

 Réactivité – peut permettre une exécution continue si une partie du


processus est bloquée, ce qui est particulièrement important pour les
interfaces utilisateur.
 Partage des ressources – les threads partagent les ressources du
processus, ce qui est plus simple que la mémoire partagée ou la
transmission de messages.
 Économie – moins cher que la création de processus, le changement de
contexte pour les threads est moins couteux que le changement de
contexte pour les processus.
 Passage à l’échelle (Scalability) – le processus peut tirer parti des
architectures multicœurs.

07/11/2025 Systèmes d'Exploitation 98


Exécution simultanée (concurrente) vs. Parallélisme

Exécution simultanée (concurrente) sur un système monocœur :

Parallélisme sur un système multicœur :

07/11/2025 Systèmes d'Exploitation 99


Programmation multicœurs

 Les systèmes multicœurs ou multiprocesseurs mettent la


pression sur les programmeurs plutôt que sur le système
d’exploitation. Parmi les défis à relever figurent :
• Division des activités
• Équilibrage
• Fractionnement des données
• Dépendance des données
• Tests et débogage

07/11/2025 Systèmes d'Exploitation 100


Programmation multicœurs

 Types de parallélisme
• Parallélisme des données : répartition de sous-ensembles de données
identiques sur plusieurs cœurs, chaque opération étant identique.
• Parallélisme des tâches : répartition des threads sur plusieurs cœurs,
chaque thread effectuant une opération unique.

07/11/2025 Systèmes d'Exploitation 101


Parallélisme de données et parallélisme de tâches

07/11/2025 Systèmes d'Exploitation 102


La loi d’Amdahl

07/11/2025 Systèmes d'Exploitation 103


Threads utilisateur et threads noyau

 Threads utilisateur : gestion assurée par la bibliothèque de threads utilisateur


 Trois bibliothèques de threads principales :
• Pthreads POSIX
• Threads Windows
• Threads Java
 Threads noyau : pris en charge par le noyau
 Exemples : pratiquement tous les systèmes d’exploitation à usage général,
notamment :
• Windows
• Linux
• iOS
• Android

07/11/2025 Systèmes d'Exploitation 104


Threads utilisateur et threads noyau

07/11/2025 Systèmes d'Exploitation 105


Modèles multithreading

 Plusieurs à un
 Un à un
 Plusieurs à plusieurs

07/11/2025 Systèmes d'Exploitation 106


Plusieurs à un

 Plusieurs threads utilisateur sont mappés sur un seul thread du noyau.


 Le blocage d'un thread entraîne le blocage de tous les threads.
 Plusieurs threads peuvent ne pas s'exécuter en parallèle sur un système multicœur, car
un seul thread peut être présent simultanément dans le noyau.
 Actuellement, peu de systèmes utilisent ce modèle.

07/11/2025 Systèmes d'Exploitation 107


Un à un

 Chaque thread utilisateur est mappé à un thread noyau.


 La création d'un thread utilisateur crée un thread noyau.
 Le nombre de threads par processus est parfois limité en raison de la surcharge.
 Exemples :
• Windows
• Linux

07/11/2025 Systèmes d'Exploitation 108


Plusieurs à plusieurs

 Permet de mapper plusieurs threads utilisateur à plusieurs threads noyau.


 Permet au système d'exploitation de créer un nombre suffisant de threads noyau.
 Peu courant.

07/11/2025 Systèmes d'Exploitation 109


Modèle à deux niveaux

 Similaire à Plusieurs à plusieurs, sauf qu'il permet à un thread utilisateur d'être lié au
thread du noyau

07/11/2025 Systèmes d'Exploitation 110


Librairies threads

 La librairie de threads fournit aux programmeurs une API pour créer et


gérer des threads.
 Deux principales méthodes d'implémentation
• Librairie entièrement dans l'espace utilisateur
• Librairie au niveau du noyau prise en charge par le système d'exploitation

07/11/2025 Systèmes d'Exploitation 111


Pthreads

 Peut être fourni au niveau utilisateur ou au niveau noyau.


 Une API standard POSIX pour la création et la synchronisation de threads.
C’est une Spécification, et non une implémentation.
 L'API spécifie le comportement de la bibliothèque de threads ;
l'implémentation dépend du développement de la librairie.
 Implémenté par UNIX (Linux).

07/11/2025 Systèmes d'Exploitation 112


Pthreads : Exemple

07/11/2025 Systèmes d'Exploitation 113


Pthreads : Exemple

07/11/2025 Systèmes d'Exploitation 114

Vous aimerez peut-être aussi