Un processeur à multiple processus ?

Résolu/Fermé
gourgeon Messages postés 67 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 27 août 2012 - 12 avril 2012 à 22:36
gourgeon Messages postés 67 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 27 août 2012 - 13 avril 2012 à 16:35
Bonjour,

Suite à de nombreuses discussions que j'ai eu, je me demandais si il existait des processeurs pouvant gérer de multiples processus. J'ai fait quelques petites recherches mais les réponses ne sont pas claires et je manque cruciallement de temps.
En effet, je ne demande pas si un processeur d'Architechture Van Neuman peut traiter deux processus (avec des interruptions de l'OS), mais si en un coup d'horloge, celui-ci peut traiter deux processus en même temps. Étant donné qu'un processeur peut soit lire ou écrire en mémoire, et que les informations les plus redondantes sur le processus actuelles sont situées dans sa cache; je me disais qu'un processus disposant de plusieurs caches pourrait traiter des processus différents dans sa pipeline d'instruction (et non seulement des parties (sous processus) du processus en question).
Je ne sais pas si vous comprenez ma question, mais j'espère que ceux la comprenant pourront me répondre le plus rapidement possible :)

5 réponses

Erwan031284 Messages postés 15131 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 18 mars 2022 2 358
12 avril 2012 à 23:12
" je me demandais si il existait des processeurs pouvant gérer de multiples processus "

Tous le font. Mais ce n'est pas grâce au processeur lui-même, mais au système d'exploitation.

C'est un peu compliqué à expliquer en quelques phrases, mais un processeur, c'est un circuit très complexe manipulant des instructions et des données (ou "opérandes").
L'ordre de ces instructions est gérée par le programme exécuté. Si ce programme comporte des sous-fonctions, des sous-programmes, voire des instructions qui lancent l'execution d'autre programmes, du point de vue du processeur, c'est du pareil au même. Ça reste une instruction avec deux opérandes, puis l'instruction suivante...

Depuis de nombreuses années, l'architecture interne des processeurs a évoluée au point qu'il y a plusieurs unités de calcul indépendantes les unes des autres. Chaque pouvant executer une suite d'instructions différente, ce qui a pour effet d'optimiser le travail. Ces processeurs 'multi-core' sont ainsi devenus 'matériellement' multi-processus. Un processeur 'mono-core' est matériellement mono-processus, mais plusieurs processus peuvent tourner les uns à la suite des autres, à tour de rôle.
Ce tour de rôle est géré par le système d'exploitation, sorte de super-processus. Et la commutation est si rapide entre les processus que du point de vu de l'utilisateur, tous semblent avancer en même temps, alors que ce n'est pas le cas : chacun avance un peu, puis le système d'exploitation 'passe la main' à un autre.

Et pour répondre à ta question de façon très précise : du point de vue de l'UAL, un processus, un autre processus et un sous-processus n'ont aucune différence. C'est au point de vu de l'algorithme qu'il y a une différence.

... ou alors j'ai mal compri la question.
0
tu as du courage sur ce coup, bravo ;-)
0
salut,

tu n'es pas très clair (c'est peu être lié à l'heure avancée et à mon cerveau fatigué), mais ta question n'est elle pas simplement la notion d'exécution simultanée de programme ?
voir http://fr.wikipedia.org/wiki/Processeur
0
gourgeon Messages postés 67 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 27 août 2012 5
Modifié par gourgeon le 12/04/2012 à 23:29
J'ai bien spécifié que je désirais savoir si cela pouvait survenir lors d'un même coup d'horloge et non entre deux interruptions du système d'exploitation (là est toute la subtilité de la question). Car sachant que le processeur peut à l'intérieur diviser en sous processus et les traiter à différents niveaux (un LOAD en même temps qu'une opération arithmétique par exemple), je me demandais si cela pouvait être le cas pour deux processus "globaux".
Je ne m'y connait pas du point de vue de l'algorithme, mais je sais que seul sera stoqué dans ses caches les instructions les plus répétées de la mémoire, du processus demandé en particulier...
Donc pour revenir à la question, ce n'est pas au niveau de l'interruption de l'OS qui m'intéresse (et je ne veux pas savoir que visuellement et ce que l'on observe c'est deux processus en même temps), mais si après un battement de la fréquence, des calculs peuvent avoir été effectués pour deux processus différents à deux différents niveaux du procésseur:D
(Merci d'avoir pris du temps pour répondre à ma question Erwan)
0
Erwan031284 Messages postés 15131 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 18 mars 2022 2 358
13 avril 2012 à 07:18
" je désirais savoir si cela pouvait survenir [traiter des processus différents dans sa pipeline d'instruction] lors d'un même coup d'horloge et non entre deux interruptions du système d'exploitation "

Seulement les processeurs dotés de plusieurs pipeline d'instruction, donc de plusieurs Core.
Un seul pipeline ne peux traiter qu'une seule suite d'instruction à la fois, et un UAL qu'un seule instruction à la fois.
0
gourgeon Messages postés 67 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 27 août 2012 5
13 avril 2012 à 13:56
Donc un processeur à architechture superscalaire doté d'un répartisseur ?
0
Erwan031284 Messages postés 15131 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 18 mars 2022 2 358
13 avril 2012 à 15:33
Pas tout à fait.
L'architecture superscalaire permet la parallélisation de micro-instructions d'un seul processus grâce à l'utilisation de plusieurs pipelines.
Pour executer plusieurs processus en même temps, il faut nécessairement avoir plusieurs UAL, dotées chacune de leur UC (Unité de Contrôle).

Je suis parti du principe qu'un Core ne possède qu'une seule unité de calcul, avec un seul pipeline, mais il suffi de plusieurs pipelines pour que le CPU soit capable d'éxecuter plusieurs opérations à la fois, à chaque cycle d'horloge,donc.
0
gourgeon Messages postés 67 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 27 août 2012 5
13 avril 2012 à 16:35
merci, cela répond à ma question :)
0
tu as la réponse à tes questions dans le paragraphe "exécutions simultanées" de wiki...et il me semble qu'Erwan a répondu avec les multicores des procos intel non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gourgeon Messages postés 67 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 27 août 2012 5
12 avril 2012 à 23:41
Ah oui, merci beaucoup, j'avais manqué le bout sur le répartisseur :)
0