Threads et CPU : comment ça marche ?
Bonjour
J'ai une question pas très facile à poser.
Lorsque le noyau éxecute un thread, comment le CPU (on part du principe qu'il n'y a qu'un seul coeur) sait-il qu'à tel moment il faut passer la main et revenir au noyau afin qu'il fasse tourner un autre thread ?
Y a-t-il un système d'interruption matérielle, ou autre chose ?
Je suppose que le schéma fonctionne comme cela :
noyau -> thread 1 -> arrêt -> noyau -> thread 2 -> arrêt -> ... -> noyau -> thread 1 -> arrêt -> ...
J'ai fouillé dans les sources linux mais à aucun endroit je ne trouve d'instructions (assembleur) qui communiquent directement avec le matériel. Je ne trouve que des fonctions. Du coup, je me demande comment tout cela fonctionne.
Merci pour vos infos.