Qual a diferença entre o Modelo de Concorrência do Ator e os Processos Sequenciais de Comunicação

26

Estou tentando entender quais são as diferenças reais entre o modelo de concorrência do ator e o modelo de concorrência dos processos sequenciais de comunicação (CSP).

Até agora, o melhor que pude apresentar é que o Modelo do Ator permite que o número e o layout dos nós sejam alterados, enquanto o CSP possui uma estrutura fixa de nós.

twhitlock
fonte
1
Veja também O Modelo do Ator em ~ 14: 45 no Canal 9, onde Carl Hewitt discute o Modelo do Ator em profundidade. Ele observa que uma diferença entre atores e CSP é o uso de canais para comunicação no CSP versus comunicação direta no Modelo do Ator.
Whymarrh

Respostas:

18

Eu acredito que uma diferença principal é que, no CSP, os processos são sincronizados quando as mensagens são recebidas (ou seja, uma mensagem não pode ser enviada de um processo, a menos que outro processo esteja no modo de recebimento), enquanto o modelo do ator é inerentemente assíncrono (ou seja, as mensagens são enviadas imediatamente para endereço de outros processos, independentemente de eles estarem esperando uma mensagem ativamente ou não).

Porém, deve haver outra resposta que seja mais bem desenvolvida.

Daniel Apon
fonte
1
Essa é praticamente a resposta que eu teria escrito. No modelo original de ator (Hewitt, Agha), o processo de recebimento nem sequer forneceu automaticamente acesso ao nome do remetente, embora realizações mais modernas (como os atores de Scala) o façam. A outra diferença é que os atores permitem o envio de IDs de atores nas mensagens, como sugerido na pergunta, enquanto isso não é possível no CSP. (Também possível no pi-calculus, mas não no CCS.)
Dave Clarke
Então, basicamente, é tudo sobre a caixa de correio?
Jörg W Mittag
E as diferenças listadas aqui: en.wikipedia.org/wiki/… e en.wikipedia.org/wiki/… ? Outra diferença importante, para versões anteriores do CSP, é o não-determinismo ilimitado (consulte esses links).
Blaisorblade 9/09/10
2
Não tenho certeza se essa é a principal diferença, pois o CSP pode ter canais em buffer, permitindo o envio de mensagens assíncronas. Talvez seja mais sobre a identificação do processo, no CSP os processos são anônimos, enquanto os atores são nomeados.
precisa saber é o seguinte