同時実行のアクターモデルと通信の連続プロセスの違いは何ですか


26

私は、並行性のアクターモデルと並行性の通信シーケンシャルプロセス(CSP)モデルの本当の違いを頭に収めようとしています。

これまでに考え出した中で最高の点は、アクターモデルではノードの数とレイアウトを変更できるのに対して、CSPにはノードの固定構造があることです。


1
チャンネル9の〜14 :45にある俳優モデルも参照してください。ここでは、カールヒューイットが俳優モデルについて詳しく説明しています。彼は、アクターとCSPの違いは、CSPでの通信とアクターモデルでの直接通信にチャネルを使用することであると指摘しています。
-Whymarrh

回答:


18

主な違いの1つは、CSPでは、メッセージが受信されるとプロセスが同期する(つまり、別のプロセスが受信モードでない限り、メッセージを1つのプロセスから送信できない)一方で、アクターモデルは本質的に非同期である(つまり、メッセージはすぐに送信される)他のプロセスのアドレス(メッセージをアクティブに待機しているかどうかに関係なく)。

ただし、よりよく開発された別の回答が必要です。


1
それはほとんど私が書いていた答えです。元のアクターモデル(Hewitt、Agha)では、受信プロセスは送信者の名前へのアクセスも自動的に提供しませんでしたが、より現代的な実現(Scalaのアクターなど)は提供します。もう1つの違いは、質問で示唆されているように、アクターはメッセージでアクターIDの送信を有効にしますが、これはCSPでは不可能です。(パイ計算でも可能ですが、CCSではできません。)
デイブクラーク

それで、基本的に、それはすべてメールボックスについてですか?
ヨルグWミットタグ

en.wikipedia.org/wiki/…en.wikipedia.org/wiki/…に記載されている違いはどうですか?以前のバージョンのCSPのもう1つの重要な違いは、無制限の非決定性です(これらのリンクを参照)。
ブライスブレード

2
CSPがバッファリングされたチャネルを使用して非同期メッセージ送信を許可できるため、これがコアの違いであるかどうかはわかりません。おそらくプロセスIDの方が重要です。CSPプロセスは匿名で、アクターには名前が付けられています。
CMCDragonkai
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.