Threads vs Cores
Dire si j'ai un processeur comme cette qui dit # cœurs = 4, # threads = 4 et sans Hyper-threading soutien.
Est-ce à dire que je peux courir 4 simultanée programme/processus (depuis un noyau est capable de fonctionner avec un seul thread)?
Ou est-ce à dire que je peux courir 4 x 4 = 16 programme/processus simultanément?
De mon creuser, si pas de l'Hyper-threading, il y aura 1 seul thread (processus) par cœur. Corrigez-moi si je me trompe.
source d'informationauteur teonghan
Vous devez vous connecter pour publier un commentaire.
C'est fondamentalement correcte, avec l'évidente qualificatif que la plupart des systèmes d'exploitation vous permettent d'exécuter beaucoup plus de tâches en même temps qu'il y a des cœurs ou des fils, qui ils ont à accomplir par l'entrelacement de l'exécution des instructions.
Un système avec l'hyperthreading a généralement deux fois plus nombreux threads matériels comme les cœurs physiques.
Un thread diffère d'un processus. Un processus peut avoir plusieurs threads. Un thread est une séquence de commandes qui ont un certain ordre. Une logique de base peut exécuter une séquence de commandes. Le système d'exploitation distribue tous les fils de tous les noyaux logiques disponibles, et si il y a plus de threads que de cœurs, les threads sont traitées dans un fast-cue, et le cœur de bascule de l'un à l'autre très rapidement.
Il ressemblera à tous les threads s'exécutent simultanément, alors qu'en réalité, le système d'exploitation distribue de temps PROCESSEUR entre eux.
Avoir plusieurs cœurs donne l'avantage que moins de threads simultanés seront placés sur un seul core, moins de commutation entre les threads = plus de vitesse.
Hyper-threading crée 2 noyaux logiques sur 1 physique de base, et permet de commuter entre les threads beaucoup plus rapide.
Le terme thread est généralement utilisé comme une description d'un système d'exploitation concept qui a le potentiel pour exécuter indépendamment des autres threads. Si elle ne dépend si elle est bloquée en attente d'un événement (disque ou de l'écran I/O, le message de la file d'attente), ou si il y a assez de Processeurs physiques (hyperthread ou pas) pour permettre de l'exécuter dans le visage de l'autre non-threads en attente.
L'Hyperthreading est un PROCESSEUR vendeur terme qui signifie un seul noyau, qui permet de multiplexer son attention entre les deux calculs. Le moyen le plus facile de penser à un noyau hyperthreaded est comme si vous aviez deux Processeurs, à la fois légèrement plus lent que ce que la fabrication dit le noyau peuvent réellement faire.
Fondamentalement, c'est jusqu'à l'OS. Un thread est un haut-niveau de la construction de la tenue d'un pointeur d'instruction, et où le système d'exploitation place une threads d'exécution sur un processeur logique. Donc, avec 4 cœurs, vous pouvez en principe exécuter 4 instructions en parallèle. Où, comme un fil tout simplement contient des informations sur les instructions à exécuter et les instructions de placement en mémoire.
Une application utilise normalement un seul processus en cours d'exécution et les OS des commutateurs entre les processus de donner à tous les processus de "l'égalité" processus de temps. Lorsqu'une application déploie de multiples threads du processus alloue plus d'un emplacement pour l'exécution, mais partage de la mémoire entre les threads.
Normalement, vous faites une différence entre simultanée et parallèle de l'exécution. Où parallèle de l'exécution, c'est quand vous avez réellement physiquement exécuter des instructions de plus d'un processeur logique et une exécution simultanée est le fréquente de commutation d'un seul processeur logique de donner l'apperence de parallèle de l'exécution.