1. Que sont les processus légers
Avant de comprendre les processus légers, nous avons d'abord besoin de processus et de threads. Nous savons tous qu'un processus est essentiellement une collection de données de circuit imprimé, d'espace d'adressage virtuel, de table de pages et de code, c'est-à-dire une collection de données de noyau + de données de code. Cela ressemble à ceci du point de vue de l'utilisateur. Du point de vue du processeur, un processus est l'unité qui alloue les ressources système. Quant au thread, il est exécuté au sein du processus et constitue l'unité de base des appels du système d'exploitation. Bien que le CPU ne sache pas quels processus ou threads processus Linux et noyau de thread lors de la planification, il ne reconnaît que la structure du PCB. C'est-à-dire la version Linux du flux d'exécution, et cette chose est un fil. Différents systèmes d'exploitation peuvent utiliser différentes formes structurelles pour implémenter les threads. Sous Linux, la structure des threads et la structure des processus sont totalement cohérentes. Cela fait que la mémoire vidéo du PCB sous Linux est supérieure ou égale à celle des autres systèmes d'exploitation. Cela fait que le volume de processus de Linux est plus grand que celui des autres systèmes d'exploitation. Ces processus sont des processus légers. La principale différence entre les processus légers (LWP) et les processus normaux est que les LWP partagent le même espace d'adressage et d'autres ressources telles que les fichiers ouverts, etc. Étant donné que certaines ressources sont partagées, ce processus est considéré comme léger par rapport à d’autres processus ordinaires, d’où le nom de processus léger.
2. Identifiant de processus léger et identifiant de processus
Tout d'abord, il est certain que l'ID du processus n'est définitivement pas l'ID d'un processus léger uniquement lorsqu'un processus n'a qu'un seul flux d'exécution, et à ce moment le processus n'a qu'un seul thread principal, l'ID du processus et le poids léger. Les ID de processus à ce moment-là sont également. C'est juste lwp, c'est pareil. Dans d'autres cas, un thread a un processus lwplinux et un noyau de thread, et le processeur planifie également lwp lors de la planification.
3. La relation entre LWP et les threads créés par pthread_create
Lorsque le programme appelle la fonction pthread_create(), il crée un nouveau LWP. Ce nouveau LWP est utilisé pour implémenter le thread nouvellement créé et partager les ressources du même processus avec d'autres threads. Par conséquent, nous pouvons considérer le thread créé par pthread_create comme une sorte de LWP créé dans le programme.
En d'autres termes, LWP correspond au thread créé par pthread_create, et le thread créé par pthread_create est équivalent au LWP dans le système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!