Quest-ce quun changement de contexte ?

Au début de l'informatique, les processeurs étaient des machines purement séquentielles. Cela a aidé à garder les conceptions simples. Cependant, cela a également limité les performances. De nombreux processus devront demander des données à partir de la RAM système ou du disque dur. Bien que la RAM système soit rapide, elle n'est toujours pas aussi rapide que le CPU, ce qui la laisse inactive, attendant les données jusqu'à ce que la réponse revienne de la RAM. La situation est encore pire pour les données demandées sur le disque dur, un périphérique de stockage beaucoup plus lent que la RAM. Ici, le processeur peut être inactif pendant des périodes importantes, en attendant une réponse. Malheureusement, avec les processeurs séquentiels, ce problème est tout simplement inévitable.

Heureusement, les processeurs modernes ne sont plus séquentiels. Ils offrent de nombreuses fonctionnalités avancées, telles que l'exécution dans le désordre et plusieurs threads. L'exécution dans le désordre permet au processeur d'analyser les instructions à venir et de les réorganiser pour maximiser l'efficacité. Le multi-threading permet au processeur d'exécuter de nombreux threads ou processus différents.

En dehors d'avoir plusieurs cœurs, le processeur ne peut pas en exécuter plus d'un à la fois. Il peut cependant le faire ressembler en basculant régulièrement entre eux pour s'assurer qu'ils obtiennent chacun une quantité appréciable de temps CPU constant. Le processus de basculement entre les threads est appelé un changement de contexte.

Comment fonctionne un changement de contexte ?

Un changement de contexte se compose de deux parties, la commutation du thread précédent et la commutation du nouveau. Pour changer l'ancien thread, la CPU doit enregistrer son état actuel dans un bloc de contrôle de processus ou un châssis de commutateur. Cela inclut les valeurs de tous les registres CPU pertinents et consiste toujours en la valeur du compteur de programme. Une fois que le thread a été stocké, un descripteur peut être ajouté à une file d'attente prête pour lui permettre d'être restauré en cas de besoin.

La commutation dans le fil suivant est le même processus en sens inverse. Un thread est sélectionné soit dans la file d'attente des prêts, en fonction de la pondération. Alternativement, il peut être choisi par une interruption indiquant qu'un événement que le thread attendait est maintenant prêt ou terminé. Les données du thread sont ensuite copiées dans les registres corrects et le thread est restauré. À ce stade, le nouveau thread est prêt à reprendre l'opération là où il s'est arrêté.

Impact sur les performances

Le processus de lecture et d'écriture de données lors de l'activation ou de la désactivation d'un thread prend un certain temps, mais pas beaucoup, car la mémoire utilisée est généralement à grande vitesse. Il y a cependant des coûts de performance supplémentaires. Lors du changement de thread, les données dans les caches et les tampons du processeur du thread précédent peuvent ne pas être pertinentes pour le nouveau thread. Cela peut entraîner une augmentation significative du TLB ( Translation Lookaside Buffer ) et des échecs de cache.

Cet effet n'est pas significatif si les deux threads ont été générés par le même processus, car ils sont susceptibles de partager des éléments de mémoire considérables. Le TLB doit être vidé entièrement lors du basculement entre les threads de différentes méthodes. Cela conduit à un taux d'échec TLB de 100 % tandis que le taux de succès du cache CPU est également considérablement réduit.

Alors que les processeurs offrent un support matériel pour la commutation de contexte, les systèmes d'exploitation ne l'utilisent généralement pas. La commutation de contexte matériel ne tient pas compte de la pertinence des données. Par conséquent, il doit stocker et restaurer tous les registres, ce qui augmente le temps pris et l'espace de stockage requis.

De plus, la commutation de contexte matériel ne stocke pas les données des registres à virgule flottante, fonctionnalité qui peut être nécessaire. La commutation de contexte logiciel est donc généralement utilisée. Il permet de conserver les données de tous les registres, y compris les registres à virgule flottante. Les commutateurs de contexte logiciel ont une compréhension de la pertinence des données. Cela signifie qu'il peut choisir ceux à stocker selon les besoins.

Conclusion

Un changement de contexte est un processus par lequel un processeur moderne change le thread qu'il exécute. Le processus implique de stocker les données pertinentes du thread actuel et de restaurer les données pertinentes du nouveau thread. La commutation de contexte s'accompagne d'un coût de performance lié au temps nécessaire pour effectuer la commutation, et à l'augmentation du taux de cache et d'échecs TLB car ceux-ci ne sont pas stockés. Les changements de contexte se produisent soit pour s'assurer que tous les threads disposent d'une bonne quantité de temps CPU, soit à cause d'une interruption indiquant qu'un événement que la ligne attendait est terminé.



Leave a Comment

Fix Always on Display ne fonctionne pas sur Galaxy Watch

Fix Always on Display ne fonctionne pas sur Galaxy Watch

Pour résoudre les problèmes de Always on Display sur Samsung Galaxy Watch, désactivez le mode d

La mémoire du Chromebook peut-elle être mise à niveau ?

La mémoire du Chromebook peut-elle être mise à niveau ?

Découvrez si la mémoire du Chromebook peut être mise à niveau et comment optimiser ses performances avec la gestion de la RAM.

Comment numériser sur Canon MX492

Comment numériser sur Canon MX492

Apprenez à numériser à partir de limprimante et du scanner multifonctions Canon MX492.

Principes de base de limpression 3D : astuces pour lisser les impressions PLA

Principes de base de limpression 3D : astuces pour lisser les impressions PLA

Vous avez du mal à lisser les impressions PLA ? Ce guide convivial pour les débutants vous montrera comment vous pouvez le faire facilement avec des méthodes efficaces.

Correction dune erreur Chromebook lors de la configuration de limprimante

Correction dune erreur Chromebook lors de la configuration de limprimante

Si votre Chromebook indique qu

Quest-ce que le TDP ?

Quest-ce que le TDP ?

Découvrez ce qu

Comment réinitialiser la clé Amazon Fire TV aux paramètres dusine

Comment réinitialiser la clé Amazon Fire TV aux paramètres dusine

Découvrez comment effectuer une <strong>réinitialisation d

Comment utiliser Spotify dans le nouveau Garmin Venu

Comment utiliser Spotify dans le nouveau Garmin Venu

Découvrez comment connecter votre montre Garmin Venu à Spotify et profitez de vos playlists préférées tout en restant actif !

Comment utiliser Samsung Flow

Comment utiliser Samsung Flow

Découvrez comment utiliser Samsung Flow pour connecter votre smartphone Samsung à votre PC et bénéficier de fonctionnalités avancées telles que le partage de fichiers et la synchronisation des notifications.

Comment faire une capture décran sur un ordinateur portable Chromebook

Comment faire une capture décran sur un ordinateur portable Chromebook

Découvrez comment faire une capture d