Note: sur une machine multi-processeur un processus ne tourne pas forcément toujours sur le même processeur.
Le processeur est une ressource comme les autres et est alloué dynamiquement.
On essaie effectivement de faire tourner le même code sur le même processeur le plus souvent pour maintenir une haute cohérence de cache mais dès qu'il y a changement de processus ce cache est « perdu », donc recharger un processus sur le même processeur n'apporterait rien (sauf applis spécifiques sur machines spécifiques avec caches sauvegardables et/ou lignes de caches monstrueuses).
Ensuite il y a plusieurs niveaux de threading. « user-space » où les threads se partagent le quantum de temps d'un seul processus, « kernel-based » où les threads sont autant de processus et les solutions intermédiaires où n threads se répartissent sur m processus et donc m quanta de temps processeur.
Mais ça n'a rien à voir avec le fait de tourner sur un processeur où un autre, le noyau alloue des laps de temps de calcul et se fout de savoir sur quel processeur ça tourne (sauf cas bien particuliers une fois encore).
[^] # Re: Autres applis et pthreads
Posté par Jean-Yves B. . En réponse à la dépêche performances MySQL sous OpenBSD. Évalué à 4.
Le processeur est une ressource comme les autres et est alloué dynamiquement.
On essaie effectivement de faire tourner le même code sur le même processeur le plus souvent pour maintenir une haute cohérence de cache mais dès qu'il y a changement de processus ce cache est « perdu », donc recharger un processus sur le même processeur n'apporterait rien (sauf applis spécifiques sur machines spécifiques avec caches sauvegardables et/ou lignes de caches monstrueuses).
Ensuite il y a plusieurs niveaux de threading. « user-space » où les threads se partagent le quantum de temps d'un seul processus, « kernel-based » où les threads sont autant de processus et les solutions intermédiaires où n threads se répartissent sur m processus et donc m quanta de temps processeur.
Mais ça n'a rien à voir avec le fait de tourner sur un processeur où un autre, le noyau alloue des laps de temps de calcul et se fout de savoir sur quel processeur ça tourne (sauf cas bien particuliers une fois encore).