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
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
A voir également:
- Un processeur à multiple processus ?
- Temperature processeur - Guide
- Vitesse processeur - Guide
- Planification de processeur graphique à accélération matérielle - Guide
- Liste déroulante choix multiple excel - Guide
- Ecran multiple pc - Guide
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
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.
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.
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
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
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
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)
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)
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
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.
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.
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
13 avril 2012 à 13:56
Donc un processeur à architechture superscalaire doté d'un répartisseur ?
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
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.
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.
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
13 avril 2012 à 16:35
merci, cela répond à ma question :)
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 ?
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
12 avril 2012 à 23:41
Ah oui, merci beaucoup, j'avais manqué le bout sur le répartisseur :)
12 avril 2012 à 23:18