Was ist der Unterschied zwischen dem Actor Model of Concurrency und Communicating Sequential Processes?

26

Ich versuche, mich mit den tatsächlichen Unterschieden zwischen dem Actor Model of Concurrency und dem Communicating Sequential Processes (CSP) -Modell von Concurrency auseinanderzusetzen.

Das Beste, was mir bisher eingefallen ist, ist, dass das Aktormodell eine Änderung der Anzahl und des Layouts von Knoten zulässt, während CSP eine feste Struktur von Knoten aufweist.

Twhitlock
quelle
1
Siehe auch The Actor Model um ~ 14: 45 auf Channel 9, wo Carl Hewitt das Actor Model ausführlich bespricht. Er stellt fest, dass der Unterschied zwischen Akteuren und CSP in der Verwendung von Kommunikationskanälen im CSP gegenüber der direkten Kommunikation im Actor Model besteht.
Whymarrh,

Antworten:

18

Ich glaube, ein Hauptunterschied besteht darin, dass in CSP Prozesse synchronisiert werden, wenn Nachrichten empfangen werden (dh eine Nachricht kann nicht von einem Prozess gesendet werden, es sei denn, ein anderer Prozess befindet sich in einem Empfangsmodus), während das Actor-Modell von Natur aus asynchron ist (dh Nachrichten werden sofort an gesendet) die Adresse anderer Prozesse, unabhängig davon, ob sie aktiv auf eine Nachricht warten oder nicht).

Es sollte jedoch eine andere, besser entwickelte Antwort geben.

Daniel Apon
quelle
1
Das ist so ziemlich die Antwort, die ich geschrieben hätte. Im ursprünglichen Darstellermodell (Hewitt, Agha) stellte der Empfangsprozess nicht einmal automatisch den Namen des Absenders zur Verfügung, obwohl modernere Realisierungen (wie die Schauspieler von Scala) dies tun. Der andere Unterschied besteht darin, dass Akteure das Senden von Akteurs-IDs in den Nachrichten ermöglichen, wie in der Frage angedeutet, während dies in CSP nicht möglich ist. (Auch im Pi-Kalkül möglich, aber nicht im CCS.)
Dave Clarke
Im Grunde geht es also nur um die Mailbox?
Jörg W Mittag
Was ist mit den hier aufgeführten Unterschieden: en.wikipedia.org/wiki/… und en.wikipedia.org/wiki/… ? Ein weiterer wichtiger Unterschied für frühere Versionen von CSP ist der unbegrenzte Nichtdeterminismus (siehe diese Links).
Blaisorblade
2
Ich bin nicht sicher, ob dies der Hauptunterschied ist, da CSP gepufferte Kanäle haben kann, die das asynchrone Senden von Nachrichten ermöglichen. Vielleicht geht es eher um die Prozess-ID, bei CSP sind Prozesse anonym, während Akteure benannt werden.
CMCDragonkai