Au démarrage, chaque processeur crée un processus 0
Un processeur n'a pas à proprement parler de notion de processus. C'est une structure organisationnelle qui n'a de sens que du point de vue du système d'exploitation.
Autant que je sache, sur les machines SMP, le premier processeur démarre tout seul et le système se charge de réveiller les autres ensuite. L'ordonnanceur, par contre, fait l'objet d'études poussées que je serais incapable de te décrire en détails dans ce post, mais qui sont en tous points comparables à la planification de l'exécution des différents processus par un processeur seul.
On retiendra quand même la notion d'affinité processeur, qui consiste à exécuter un processus sur un même processeur le plus longtemps possible, car la rotation a un coût, ne serait-ce qu'au niveau des lignes de cache qu'il faut recharger à chaque fois. Ça donne même parfois lieu à des situations cocasses : certains processeurs d'entrée de gamme s'avèrent plus performants que leurs homologues plus évolués car il partagent une même ligne de cache. Dans la plupart des cas de figure, c'est désastreux, mais avec des opérations vectorisées et bien distribuées, ça peut être autant de données en moins à recharger, et autant d'accès bus évités, également.
# Processus != processeur
Posté par Obsidian . En réponse au message Question pour débutant. Évalué à 4.
Un processeur n'a pas à proprement parler de notion de processus. C'est une structure organisationnelle qui n'a de sens que du point de vue du système d'exploitation.
Autant que je sache, sur les machines SMP, le premier processeur démarre tout seul et le système se charge de réveiller les autres ensuite. L'ordonnanceur, par contre, fait l'objet d'études poussées que je serais incapable de te décrire en détails dans ce post, mais qui sont en tous points comparables à la planification de l'exécution des différents processus par un processeur seul.
On retiendra quand même la notion d'affinité processeur, qui consiste à exécuter un processus sur un même processeur le plus longtemps possible, car la rotation a un coût, ne serait-ce qu'au niveau des lignes de cache qu'il faut recharger à chaque fois. Ça donne même parfois lieu à des situations cocasses : certains processeurs d'entrée de gamme s'avèrent plus performants que leurs homologues plus évolués car il partagent une même ligne de cache. Dans la plupart des cas de figure, c'est désastreux, mais avec des opérations vectorisées et bien distribuées, ça peut être autant de données en moins à recharger, et autant d'accès bus évités, également.