Multithreading et multitraitement sont des termes associés à la vitesse à laquelle les programmes informatiques fonctionnent . Les deux sont des méthodes qui nécessitent un mariage de connaissances en programmation et développement de matériel afin d'être correctement utilisé . Les deux termes ne sont pas toujours mutuellement exclusifs , ils sont utilisés en tandem pour augmenter l'efficacité d'un ordinateur. Différences matérielles
multitraitement exige, comme son nom l'indique , de multiples cœurs de traitement physiques. Auparavant, plusieurs mères de processeur est venu avec plusieurs emplacements distincts à l'entrée unités centrales de traitement ( CPU) . Aujourd'hui , les nouvelles technologies de fabricants tels que AMD et Intel permettent de multiples cœurs de traitement pour être intégrées dans un seul CPU " puce ". Multithreading n'est pas sans son propre matériel , mais ne requiert cartes mères qui supportent des instructions de code de multithreading . La plupart des cartes mères modernes comprennent cette capacité.
Programme individualisé Versus système d'exploitation
programmeurs utilisent outil de multithreading fixe pour permettre aux programmes d'effectuer plusieurs tâches en parallèle. Ce traitement « pipeline » donnent l'illusion de deux fonctions simultanées , mais utilise en fait la grande quantité de puissance de traitement et des algorithmes efficaces d'alterner rapidement entre une fonction à l'autre. En tant que tel , l'utilisation de multithreading dépend du code du programme lui-même.
Multitraitement , en revanche, dispose d'un accès plus transparent à la puissance de multiples flux de traitement. Un individu fonctions du programme d'accès aux multiprocesseurs sous les auspices du système d'exploitation , comme Mac OS d'Apple ou Microsoft Windows . En tant que tel , les programmes n'ont pas besoin d' être particulièrement optimisés avec des commandes de multithreading à utiliser la puissance de traitement parallèle. Multithreading peut effectivement être utilisé en conjonction avec le multitraitement .
Indépendant par rapport Pipeline Processing
multitraitement et le multithreading diffèrent fondamentalement la façon dont les instructions de programme sont traitées. En multitraitement , deux ou plusieurs instructions peuvent être exécutées simultanément , grâce à un processus appelé « traitement parallèle ». Multithreading , cependant, ouvre des pipelines individuels pour chaque instruction , et distribue la puissance de traitement entre ces conduites périodiquement.
Cette différence est en grande partie invisible lorsque la charge processeur est faible. Toutefois, les instructions gourmandes en temps processeur simultanées vont commencer à bégayer dans un environnement de multithreading pure. Les mêmes fonctions seront plus à l'abri de ces effets dans un environnement multiprocesseur .
Error Correction
Multithreading ouvre volets distincts au sein d'un processus unique. Les cours d'eau ressemblent à des processus individuels , mais utilisent un espace d'adressage partagé sur la mémoire de l'ordinateur dans le même processus . Multitraitement , cependant, ouvre processus multiple pour exécuter des fonctions simultanées et ces processus ont chacun leur propre parcelle de mémoire . Quand un seul processus échoue dans un environnement multiprocesseur , tous les autres procédés sont épargnés , mais les défauts chez un individu "fils" n'est pas isolée des autres threads, et, finalement, faire tomber l'ensemble du processus . Le résultat est le risque de défaillances plus grandes dans des conditions de multithreading .