pourquoi le changement de contexte est-il mauvais pour les performances de l'ordinateur ?
why is context switching bad for computer performance?
context switching, which occurs when a process is paused by the cpu and another process starts running can affect performance of a computer systems for a couple of reasons. The act of switching the context is not in itself very time consuming. The real performance hit comes from the fact that different processes have different virtual memory address spaces so all the caches in the system need to be invalidated and flushed. Since there is such a huge difference in how fast a cpu can run compared to how fast instructions and data can be retrieved from main memory, these things are cached close to the cpu in onboard caches. Even a pointer to a mapping of virtual addresses to physical addresses are cached so that memory access is faster. When a new process gets loaded by the cpu with a different address space and mapping of virtual to physical addresses, all of the data in the caches is invalid and needs to be flushed. This leaves the cpu with empty caches that have to be rebuilt from scratch for the new process, meaning there will be a big slowdown in retrieving instructions and data since these will now be coming from main memory, which is much slower than the cpu's cache.
Le changement de contexte, qui se produit lorsqu'un processus est mis en pause par le processeur et qu'un autre processus commence à s'exécuter, peut affecter les performances d'un système informatique pour plusieurs raisons. Le changement de contexte ne prend pas beaucoup de temps en soi. Le véritable impact sur les performances vient du fait que les différents processus ont des espaces d'adressage de mémoire virtuelle différents, de sorte que tous les caches du système doivent être invalidés et vidés. Étant donné que la vitesse d'exécution d'un processeur est très différente de la vitesse à laquelle les instructions et les données peuvent être extraites de la mémoire principale, ces éléments sont mis en cache à proximité du processeur dans des caches embarqués. Même un pointeur sur une correspondance entre des adresses virtuelles et des adresses physiques est mis en cache pour que l'accès à la mémoire soit plus rapide. Lorsqu'un nouveau processus est chargé par l'unité centrale avec un espace d'adressage et un mappage d'adresses virtuelles et physiques différents, toutes les données contenues dans les caches ne sont plus valides et doivent être vidées. L'unité centrale se retrouve donc avec des caches vides qui doivent être reconstruits à partir de zéro pour le nouveau processus, ce qui signifie que la récupération des instructions et des données sera fortement ralentie puisqu'elles proviendront désormais de la mémoire principale, qui est beaucoup plus lente que le cache de l'unité centrale.
open_qa
fr