LWP (processus léger) et Fils sont deux mécanismes utilisés pour obtenir la concurrence ou le parallélisme dans un programme, mais ils diffèrent par leur implémentation et leurs propriétés :
LWP (processus léger) :
- Un LWP est une unité d'exécution virtuelle qui s'exécute dans le contexte d'un seul processus de système d'exploitation traditionnel.
- Les LWP sont entièrement gérés par la bibliothèque de l'espace utilisateur, sans implication du noyau du système d'exploitation.
- Les LWP partagent le même espace mémoire et les mêmes ressources système que le processus parent.
- Les frais généraux liés à la création d'un LWP sont comparativement inférieurs à ceux des threads.
- Les LWP sont moins portables sur différents systèmes d'exploitation car ils sont généralement implémentés à l'aide de bibliothèques d'espace utilisateur spécifiques.
- Les LWP étaient couramment utilisés dans des systèmes comme Sun Solaris, mais sont devenus moins répandus dans les systèmes d'exploitation modernes.
Thèmes :
- Un thread est une unité d'exécution légère et autonome au sein d'un processus.
- Les threads sont gérés et planifiés par le noyau du système d'exploitation, ce qui leur donne un accès plus direct aux ressources système.
- Les threads d'un même processus partagent la mémoire, mais ils ont des piles distinctes.
- La création et la destruction de threads impliquent plus de surcharge que les LWP en raison de l'implication du noyau.
- Les threads sont plus portables sur différents systèmes d'exploitation car ils sont standardisés par POSIX et d'autres API.
- Les threads sont devenus le mécanisme prédominant de concurrence et de parallélisme dans les systèmes d'exploitation modernes.
Résumé :
- Les LWP sont gérés dans l'espace utilisateur, tandis que les threads sont gérés par le noyau du système d'exploitation.
- Les LWP partagent toutes les ressources du processus parent, tandis que les threads partagent la mémoire mais ont des piles séparées.
- Les LWP ont une surcharge de création et de destruction inférieure à celle des threads.
- Les threads sont plus portables et standardisés sur tous les systèmes d'exploitation.
- Les threads constituent le mécanisme le plus largement utilisé pour la concurrence et le parallélisme dans les systèmes d'exploitation modernes.
|