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

Comment cloner un disque dur

Comment cloner un disque dur

À l’ère numérique moderne, où les données constituent un atout précieux, le clonage d’un disque dur sous Windows peut être un processus crucial pour beaucoup. Ce guide complet

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Êtes-vous confronté au message d'erreur lors du démarrage de votre ordinateur indiquant que le pilote WUDFRd n'a pas pu se charger sur votre ordinateur ?

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Rencontrez-vous le code d’erreur 0x0003 de l’expérience NVIDIA GeForce sur votre bureau ? Si oui, lisez le blog pour savoir comment corriger cette erreur rapidement et facilement.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Comment supprimer un GPU dun PC Windows en 2023

Comment supprimer un GPU dun PC Windows en 2023

Avez-vous besoin de retirer le GPU de votre PC ? Rejoignez-moi pour expliquer comment supprimer un GPU de votre PC dans ce guide étape par étape.

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Vous avez acheté un nouveau SSD NVMe M.2 mais vous ne savez pas comment l'installer ? Lisez la suite pour savoir comment installer un SSD NVMe sur un ordinateur portable ou un ordinateur de bureau.

Quest-ce quune bombe logique ?

Quest-ce quune bombe logique ?

Une bombe logique est un incident de sécurité où un attaquant met en place une action différée. Continuez à lire pour en savoir plus.

Quest-ce que Stuxnet ?

Quest-ce que Stuxnet ?

Stuxnet était un ver auto-propagé. Il s'agissait de la première utilisation d'une cyber-arme et du premier malware.

Quest-ce quun hacker éthique ?

Quest-ce quun hacker éthique ?

Un hacker éthique est un hacker qui agit dans les limites de la loi. Continuez à lire pour en savoir plus sur le sujet.

Quest-ce que le chiffrement symétrique ?

Quest-ce que le chiffrement symétrique ?

Il existe de nombreuses parties différentes de la cryptographie. Si vous souhaitez chiffrer certaines données, vous pouvez utiliser deux types d'algorithmes : symétrique