В чем разница между актерской моделью параллелизма и последовательным сообщением процессов

26

Я пытаюсь обернуть голову, в чем реальные различия между моделью актера параллелизма и моделью параллелизма последовательных процессов (CSP).

На данный момент лучшее, что я смог придумать, это то, что модель актора позволяет изменять количество и расположение узлов, в то время как CSP имеет фиксированную структуру узлов.

twhitlock
источник
1
См. Также «Модель актера» в 14: 45 на канале 9, где Карл Хьюитт подробно описывает модель актера. Он отмечает, что разница между актерами и CSP заключается в использовании каналов связи в CSP по сравнению с прямой связью в модели актера.
Whymarrh

Ответы:

18

Я полагаю, что одно из основных отличий состоит в том, что в CSP процессы синхронизируются при получении сообщений (т.е. сообщение не может быть отправлено одним процессом, если другой процесс не находится в режиме приема), в то время как модель Actor изначально асинхронна (то есть сообщения отправляются немедленно адрес других процессов, независимо от того, активно ли они ожидают сообщения или нет).

Однако должен быть другой ответ, который был бы более развитым.

Даниэль Апон
источник
1
Это в значительной степени ответ, который я бы написал. В исходной модели актера (Hewitt, Agha) процесс получения даже автоматически не предоставлял доступ к имени отправителя, хотя это делают более современные реализации (например, актеры Scala). Другое отличие состоит в том, что актеры позволяют отправлять идентификаторы актеров в сообщениях, как указано в вопросе, тогда как в CSP это невозможно. (Также возможно в пи-исчислении, но не в CCS.)
Дейв Кларк
Итак, в основном, это все о почтовом ящике?
Йорг Миттаг
Как насчет различий, перечисленных здесь: en.wikipedia.org/wiki/… и en.wikipedia.org/wiki/… ? Другое важное отличие для более ранних версий CSP - неограниченный недетерминизм (см. Эти ссылки).
Blaisorblade
2
Я не уверен, в этом ли основное отличие, поскольку CSP может иметь буферизованные каналы, позволяющие асинхронную отправку сообщений. Возможно, это больше касается идентификатора процесса, в CSP процессы анонимны, а актеры названы.
CMCDragonkai