Quelle est la différence entre le modèle d'acteur de la concurrence et la communication des processus séquentiels

26

J'essaie de comprendre quelles sont les véritables différences entre le modèle d'acteur de la concurrence et le modèle de communication des processus séquentiels (CSP).

Jusqu'à présent, le meilleur que j'ai pu trouver est que le modèle d'acteur permet au nombre et à la disposition des nœuds de changer tandis que CSP a une structure fixe de nœuds.

twhitlock
la source
1
Voir aussi The Actor Model à ~ 14: 45 sur Channel 9, où Carl Hewitt discute du modèle d'acteur en profondeur. Il note qu'une différence entre les acteurs et le CSP est l'utilisation de canaux de communication dans le CSP par rapport à la communication directe dans le modèle d'acteur.
Whymarrh

Réponses:

18

Je crois qu'une différence fondamentale est que dans CSP, les processus se synchronisent lorsque des messages sont reçus (c'est-à-dire qu'un message ne peut pas être envoyé à partir d'un processus à moins qu'un autre processus ne soit en mode de réception), tandis que le modèle Actor est intrinsèquement asynchrone (c'est-à-dire que les messages sont immédiatement envoyés à l'adresse des autres processus, qu'ils attendent ou non un message).

Il devrait cependant y avoir une autre réponse plus développée.

Daniel Apon
la source
1
C'est à peu près la réponse que j'aurais écrite. Dans le modèle d'acteur d'origine (Hewitt, Agha), le processus de réception ne donnait même pas automatiquement accès au nom de l'expéditeur, bien que des réalisations plus modernes (comme les acteurs de Scala) le fassent. L'autre différence est que les acteurs permettent d'envoyer des identifiants d'acteur dans les messages, comme indiqué dans la question, alors que cela n'est pas possible dans le CSP. (Également possible dans le pi-calcul, mais pas dans CCS.)
Dave Clarke
Donc, fondamentalement, tout tourne autour de la boîte aux lettres?
Jörg W Mittag
Qu'en est-il des différences répertoriées ici: en.wikipedia.org/wiki/… et en.wikipedia.org/wiki/… ? Une autre différence importante, pour les versions antérieures de CSP, est le non-déterminisme illimité (voir ces liens).
Blaisorblade
2
Je ne sais pas si c'est la principale différence, car CSP peut avoir des canaux tamponnés permettant l'envoi de messages asynchrones. Peut-être s'agit-il davantage de l'ID du processus, dans les processus CSP sont anonymes, tandis que les acteurs sont nommés.
CMCDragonkai