Accès concurrentiel vs parallélisme - quelle est la différence ? Des exemples
Réponses
Trop de publicités?La simultanéité est quand les deux tâches peuvent démarrer, exécuter, et de terminer dans le chevauchement des périodes de temps. Ça ne veut pas forcément dire qu'ils vont jamais être exécuter à l'instant même. Par exemple. le multitâche sur un single-core de la machine.
Le parallélisme est lorsque les tâches littéralement exécuter en même temps, par exemple. sur un processeur multicœur.
Citant le Soleil est de la Programmation Multithread Guide:
Parallélisme: Une condition qui survient lorsque au moins deux threads s'exécutent simultanément.
Concurrence: Une condition qui existe lorsqu'au moins deux fils ont fait des progrès. Une forme plus générale de parallélisme qui peut comprendre le découpage comme une forme de virtuel parallélisme.
Il existe une Confusion parce que les définitions de ces deux mots sont presque les mêmes:
- Concomitante: existantes, passe, ou faire en même temps(dictionary.com)
- Parallèle: très similaire et qui se produit souvent en même temps(merriam webster).
Mais la manière dont ils sont utilisés dans l'informatique et la programmation sont assez différentes. Voici mon interprétation:
- Simultanéité: Interruptability
- Parallélisme: Independentability
Donc, ce que je veux dire par définitions ci-dessus? Je vais préciser un monde réel analogie. Disons que vous avez à faire 2 tâches très importantes en une seule journée
- Obtenir un passeport
- Obtenir une présentation
Maintenant le problème est une tâche 1 exige que vous goto extrêmement bureaucratique bureau du gouvernement, qui vous fait attendre pendant 4 heures dans une ligne pour obtenir votre passeport. Alors que la tâche 2 est requis pour votre bureau et elle est critique. Ces deux doivent être finis sur un jour spécifique.
Cas 1: Exécution Séquentielle Habituellement, vous vous rendrez au bureau des passeports pour 2 heures, à attendre en ligne pendant 4 heures, obtenir la tâche accomplie, retour deux heures, rentrer à la maison, rester à l'écart de 5 heures de plus et obtenir de présentation.
Cas 2: L'Exécution En Simultané: Mais vous êtes intelligent. Vous planifier à l'avance. Ce que vous faire est de vous munir d'un ordinateur portable avec vous, et en attendant dans la ligne, vous commencez à travailler sur votre présentation. De cette façon, une fois que vous obtenez de retour à la maison, vous avez juste besoin de travailler une heure de plus au lieu de 5 heures de plus. Dans ce cas, les tâches sont fait par vous, juste en morceaux. Vous avez interrompu le passeport tâche lors de l'attente dans la ligne et a travaillé sur la présentation. Alors que lorsque votre numéro est appelé, vous avez interrompu la présentation de la tâche et sont passés à passeport tâche. Le gain de temps a été essentiellement possible en raison de interruptability de ces deux tâches. La simultanéité, de l'OMI, doit être pris comme "l'isolement" dans l'ACIDE propriétés d'une base de données.Deux transactions de base de données satisfaire isolation demande si vous effectuez des sous-opérations dans chaque en tout entrelacé manière et le résultat final est le même que si les deux tâches ont été faites en série. Rappelez-vous, que pour le passeport et la présentation des tâches, vous êtes le seul bourreau.
Cas 3: Exécution Parallèle Maintenant, puisque vous êtes un smart fella, évidemment, vous êtes un plus haut et vous avez un assistant. Maintenant, avant de vous quitter pour faire le passeport de la tâche, vous l'appeler et de lui dire de préparer la première ébauche de la présentation. Vous passez toute votre journée et la finition de passeport de la tâche, de revenir et de voir vos mails et vous trouverez la présentation du projet. Il a fait un travail très efficace et avec quelques modifications dans 2 heures et plus, de la finaliser. Maintenant, depuis que, votre compagnon est tout aussi intelligent que vous, il a été en mesure de travailler de façon indépendante, sans avoir à vous poser pour la constante de précisions. Ainsi, la cause de la independentability des tâches, elles ont été exécutées dans le même temps par deux bourreaux.
Toujours avec moi? Bon ..
Cas 4: Cumul Mais Pas En Parallèle Souvenez-vous de votre passeport lorsque vous avez à attendre en ligne? Dans ce cas, l'avis que, comme il est de votre passeport, de votre assistant ne peut pas attendre en ligne pour vous. Ainsi, le passeport tâches a interruptability (vous pouvez l'arrêter lors de l'attente dans la ligne et le reprendre plus tard si votre numéro est appelé), mais pas de independentability(votre assistant ne peut pas attendre à votre place).
Cas 5: Parallèle, Mais Ne Sont Pas Simultanées Dire, le bureau du gouvernement a un contrôle de sécurité à l'entrée dans les lieux. Ici, vous devez enlever tous les appareils électroniques et de les soumettre à des agents qui vous récupérer après la fin de votre tâche. Dans ce, cas, le passeport tâche n'est ni indépendant, ni interruptible. Même si vous êtes en attente dans la ligne, vous ne pouvez pas travailler sur autre chose parce que vous ne disposez pas de l'équipement nécessaire. De même, dire que la présentation est donc hautement mathématiques dans la nature que vous avez besoin de 100% de concentration pendant au moins 5 heures. Vous ne pouvez pas le faire en attendant en ligne pour le passeport de la tâche, même si vous avez votre ordinateur portable avec vous. Dans ce cas, la présentation de la tâche est indépendant(vous ou votre compagnon peut mettre 5 heures d'effort ciblé), mais non interruptible.
Cas 6: Concurrente et Exécution Parallèle Maintenant dire qu'en plus de l'affectation d'un assistant à la présentation, vous pouvez également transporter un ordinateur portable avec vous pour un passeport de la tâche. Lors de l'attente dans la ligne, vous voyez que l'assistant a créé le premier 10 diapositives dans une commune de pont. Vous envoyer des commentaires à lui, de la corriger. Donc, maintenant, quand vous obtenez de retour à la maison, au lieu de l'investissement de 2 heures pour finaliser le projet, vous avez juste besoin de 15 minutes. Cela a été possible parce que la présentation de la tâche a independentability(soit l'un de vous peut le faire) et interruptability(vous pouvez arrêter et reprendre plus tard). Si vous avez exécuté simultanément à la fois la tâche et exécutés uniquement à la présentation des tâches en parallèle.
Disons, que le bureau du gouvernement est corrompu en plus d'être trop bureaucratique. Ainsi, vous pouvez l'indiquer, montrer vos papiers d'identité, commencer en attendant en ligne pour votre numéro à appeler, donner de l'argent pour la garde et de faire à quelqu'un de tenir votre position dans la ligne, se faufiler hors de, de revenir avant votre numéro est appelé, et le reprendre.
Dans ce cas, vous pouvez effectuer à la fois le passeport et la présentation tâches simultanément et en parallèle. Vous pouvez se faufiler hors de et votre de position par votre assistante. Tous les deux, vous pouvez travailler sur la présentation etc.
De retour au domaine de l'Informatique: Dans le monde de l'informatique, l'un des voit souvent de cas-1, par exemple, interrompre le traitement.
Cas 2 quand il y a un seul processeur, mais tous de l'exécution des tâches des temps d'attente en raison d'I/O.
Cas 3 est souvent lorsque nous parlons de réduire la carte ou des clusters hadoop.
Je pense au cas 4 est rare, il arrive rarement qu'une tâche est simultanées mais pas en parallèle. Mais il pourrait se produire parce que dire que votre tâche requiert l'accès à un circuit de calcul qui peuvent être accédés uniquement par processeur-1. Ainsi, même si le processeur-2 est gratuit et processeur-1 est d'effectuer une autre tâche, le calcul de la tâche ne peut pas continuer sur le processeur-2.
Cas 5, est également rare, mais pas aussi rare que le cas-4. Un non-simultanées code peut être une région critique protégée par un mutex. Une fois qu'il est démarré, il a complètement exécuter. Cependant, deux régions critiques peuvent évoluer simultanément sur deux processeurs différents.
Cas 6: OMI, la plupart du temps, lorsque nous parlons de parallèle ou de la programmation simultanée, nous sommes fondamentalement parlant de ce dernier cas 6 de mélange et de match à la fois parallèle et simultanée des exécutions.
La simultanéité et d'Aller: Si vous voyez pourquoi Rob Pike est dire la simultanéité est le meilleur, vous devez comprendre que la raison en est, vous avez vraiment un travail de longue haleine dans lequel il y a plusieurs périodes d'attente où vous attendez pour certaines opérations extérieures comme la lecture de fichier, téléchargement de réseau. Dans sa conférence, tout ce qu'il dit, c'est que, juste briser cette longue séquentielle des tâches telles que vous pouvez faire quelque chose d'utile pendant que vous attendez. C'est pourquoi il parle de différentes organisations avec différents gaufres. Maintenant la force d'Aller de cette rupture vraiment facile avec "aller" de mots clés et de canaux. Il y a aussi un excellent support sous-jacent dans le moteur d'exécution pour la planification de ces goroutines.
Mais, pour l'essentiel, est la simultanéité de mieux que le parallélisme?
Les pommes préféré plus que les oranges?
J'aime Rob Pike parler: la Simultanéité n'est pas de Parallélisme (c'est mieux!) (diapositives) (parler)
Rob parle des Aller et en général les adresses de la question de la Simultanéité vs Parallélisme dans un visuel et une explication intuitive! Voici un court résumé:
Tâche: nous allons brûler un tas de vieux manuels de langue! Un à la fois!
Concurrence: Il existe de nombreux simultanément décompositions de la tâche! Un exemple:
Parallélisme: La configuration précédente se produit en parallèle, si il y a au moins 2 gaufres de travail en même temps ou pas.
Si plusieurs processus sont en cours d’exécution en parallèle, ils sont tous accomplir leurs tâches simultanément et indépendamment les uns des autres. Par exemple :
Toutefois, si plusieurs processus sont en cours d’exécution simultanément, chacun d’eux se relaient pour atteindre leurs objectifs de travail.
Simultanéité peut souvent apparaître comme le parallélisme si la commutation entre les processus est assez rapide.