Le nombre de processus qu'un processeur peut *vraiment* exécuter simultanément est limité par le nombre de cœurs physiques c’est le cas.
Voici une répartition :
* Cœurs physiques : Un cœur physique est une unité de traitement complète au sein du processeur. Si vous disposez d'un processeur avec 4 cœurs physiques, il peut véritablement exécuter 4 instructions différentes (ou parties de 4 processus différents) *exactement en même temps*.
* Threads (cœurs logiques) : Les processeurs modernes utilisent souvent une technologie appelée multithreading simultané (SMT). , avec l'implémentation d'Intel appelée Hyper-Threading . Cela permet à un seul cœur physique d'apparaître sous la forme de deux cœurs logiques (threads) pour le système d'exploitation. Bien que cela ne double pas les performances, cela permet au cœur d'utiliser plus efficacement les parties inutilisées de lui-même. Considérez-le comme un seul chef (noyau physique) qui peut travailler sur plusieurs plats (fils) simultanément en basculant entre eux lorsqu'une tâche est en attente (par exemple, attendre que l'eau bout). Un processeur à 4 cœurs avec Hyper-Threading apparaîtra sous la forme de 8 cœurs logiques.
* Système d'exploitation et processus : Le système d'exploitation gère tous les processus et threads exécutés sur l'ordinateur. Il bascule rapidement entre eux, donnant à chacun une petite tranche de temps CPU (c'est ce qu'on appelle le partage du temps ou le multitâche). Cela crée l'*illusion* d'exécuter plusieurs processus simultanément, même si le processeur ne travaille activement que sur un nombre limité à un instant donné.
En résumé :
* Un processeur peut véritablement exécuter simultanément un nombre de processus égal à son nombre de *cœurs physiques*.
* Hyper-Threading (ou SMT) *améliore* la capacité de chaque cœur physique à gérer plus de travail en exécutant plusieurs *threads* simultanément.
* Le système d'exploitation gère un nombre de processus et de threads beaucoup plus important que le processeur ne possède de cœurs, créant ainsi l'apparence d'une véritable simultanéité grâce à un changement de contexte rapide.
Exemple :
Un CPU doté de 8 cœurs physiques et Hyper-Threading (16 cœurs logiques) peut :
* *Vraiment* exécutez 8 instructions différentes exactement en même temps (une sur chaque cœur physique).
* *Efficace* gérez jusqu'à 16 threads en même temps, en utilisant mieux les ressources de chaque cœur.
* *Semble* exécuter des centaines ou des milliers de processus simultanément, car le système d'exploitation bascule rapidement entre eux.
Considérations importantes :
* Glots d'étranglement : D'autres facteurs, tels que la RAM, les E/S disque et la vitesse du réseau, peuvent également limiter les performances globales d'un système, même si le processeur est puissant.
* Charge de travail : Certains processus sont plus gourmands en CPU que d’autres. Un système peut être capable de « gérer » simultanément de nombreux processus légers, mais avoir du mal à en gérer quelques-uns très exigeants.
Par conséquent, la réponse est techniquement le nombre de *cœurs physiques*, mais il est important de comprendre le rôle des threads et du système d'exploitation dans la création de l'impression d'exécuter plusieurs processus simultanément.
|