¿Cuál es la diferencia entre el modelo de actor de concurrencia y los procesos secuenciales de comunicación?

26

Estoy tratando de entender cuáles son las diferencias reales entre el modelo de concurrencia del actor y el modelo de concurrencia de procesos secuenciales de comunicación (CSP).

Hasta ahora, lo mejor que he podido encontrar es que el Modelo de actor permite que el número y el diseño de los nodos cambien mientras que CSP tiene una estructura fija de nodos.

twhitlock
fuente
1
Vea también The Actor Model en ~ 14: 45 en el Canal 9, donde Carl Hewitt discute el Actor Model con cierta profundidad. Señala que una diferencia entre los actores y CSP es el uso de canales para la comunicación en CSP versus la comunicación directa en el modelo de actor.
Whymarrh

Respuestas:

18

Creo que una diferencia fundamental es que en CSP, los procesos se sincronizan cuando se reciben mensajes (es decir, un mensaje no puede enviarse desde un proceso a menos que otro proceso esté en modo de recepción), mientras que el modelo de actor es inherentemente asíncrono (es decir, los mensajes se envían inmediatamente a dirección de otros procesos, independientemente de si están esperando activamente un mensaje o no).

Sin embargo, debería haber otra respuesta más desarrollada.

Daniel Apon
fuente
1
Esa es más o menos la respuesta que habría escrito. En el modelo de actor original (Hewitt, Agha), el proceso de recepción ni siquiera proporcionó automáticamente acceso al nombre del remitente, aunque sí lo hacen las realizaciones más modernas (como los actores de Scala). La otra diferencia es que los actores permiten el envío de identificadores de actor en los mensajes, como se sugiere en la pregunta, mientras que esto no es posible en CSP. (También es posible en el cálculo pi, pero no en CCS.)
Dave Clarke
Entonces, ¿básicamente se trata del buzón?
Jörg W Mittag
¿Qué pasa con las diferencias enumeradas aquí: en.wikipedia.org/wiki/… y en.wikipedia.org/wiki/… ? Otra diferencia importante, para versiones anteriores de CSP, es el no determinismo ilimitado (ver esos enlaces).
Blaisorblade
2
No estoy seguro de si esta es la diferencia principal, ya que CSP puede tener canales almacenados en búfer que permiten el envío de mensajes asíncronos. Quizás se trata más de la identificación del proceso, en CSP los procesos son anónimos, mientras que los actores son nombrados.
CMCDragonkai