L'architecture des processeurs : CPU, Cœur, Processus et Thread
Le CPU (Central Processing Unit), ou processeur, est le cerveau de l’ordinateur. Il est responsable de l’exécution des instructions des programmes informatiques.
Un cœur est une composante du CPU. Chaque cœur est capable d’exécuter des instructions de manière indépendante des autres. Ainsi, un CPU multicœur peut exécuter plusieurs instructions simultanément, ce qui augmente significativement ses performances.
Un processus est une instance d’un programme qui est en cours d’exécution sur un ordinateur. Chaque processus est doté de son propre espace d’adressage isolé, ce qui signifie qu’il ne peut pas accéder directement aux données d’un autre processus. De plus, chaque processus se voit attribuer ses propres ressources système, comme la mémoire, par le système d’exploitation.
Prenons l’exemple de Google Chrome. Chaque onglet ouvert dans Chrome est géré comme un processus distinct. Cela permet à chaque onglet de fonctionner indépendamment des autres. Ainsi, si un onglet rencontre un problème, il n’affecte pas les autres onglets ouverts.
Un processus peut contenir un ou plusieurs threads. Un thread est la plus petite unité d’exécution au sein d’un processus. Tous les threads d’un même processus partagent l’espace d’adressage du processus. Cela signifie qu’ils peuvent accéder aux mêmes variables et structures de données, facilitant ainsi la communication entre les threads.
Un thread (ou fil d’exécution) est une séquence d’instructions que le cœur peut exécuter.
Qu'est-ce que le multithreading ?
Lorsqu’un cœur dispose de plusieurs threads, il peut passer d’un thread à un autre lorsqu’un thread est en attente (par exemple, en raison d’une opération de lecture/écriture en attente d’une donnée depuis la mémoire). Cela permet au core de continuer à effectuer du travail plutôt que de rester inactif pendant ces périodes d’attente, améliorant ainsi l’utilisation globale du core.
Les opérations parallèles (core to core)
Les opérations parallèles se produisent lorsque plusieurs cores effectuent des opérations distinctes simultanément. Chaque core fonctionne de manière indépendante pour exécuter ces opérations.
Les opérations concurrentes (core to thread)
Les opérations concurrentes peuvent se produire lorsque plusieurs threads s’exécutent sur un seul core en alternance, partageant les ressources du core et donnant l’impression d’une exécution simultanée. Cependant, chaque thread n’est pas exécuté exactement en même temps, mais plutôt de manière séquentielle rapide, ce qui donne l’illusion d’une exécution simultanée.
Aucune page ou chapitre n'a été ajouté à cet article.