Apa perbedaan antara Model Aktor Concurrency dan Communicating Sequential Processes

26

Saya mencoba untuk membungkus kepala saya di sekitar apa perbedaan nyata antara Model Aktor concurrency dan Communicating Sequential Processes (CSP) model concurrency.

Sejauh ini yang terbaik yang saya bisa buat adalah bahwa Model Aktor memungkinkan jumlah dan tata letak node berubah sementara CSP memiliki struktur tetap node.

twhitlock
sumber
1
Lihat juga The Actor Model di ~ 14: 45 di Channel 9, tempat Carl Hewitt membahas Model Aktor secara mendalam. Dia mencatat perbedaan antara aktor dan CSP adalah penggunaan saluran untuk komunikasi dalam CSP versus komunikasi langsung dalam Model Aktor.
Whymarrh

Jawaban:

18

Saya percaya satu perbedaan inti adalah bahwa dalam CSP, proses menyinkronkan ketika pesan diterima (yaitu pesan tidak dapat dikirim dari satu proses kecuali proses lain dalam mode penerimaan), sedangkan model Aktor secara inheren tidak sinkron (yaitu pesan segera dikirim ke alamat proses lain, terlepas dari apakah mereka sedang menunggu pesan aktif atau tidak).

Namun, harus ada jawaban lain yang lebih berkembang dengan baik.

Daniel Apon
sumber
1
Cukup banyak jawaban yang akan saya tulis. Dalam model aktor asli (Hewitt, Agha), proses penerimaan bahkan tidak secara otomatis menyediakan akses ke nama pengirim, meskipun realisasi yang lebih modern (seperti aktor Scala) lakukan. Perbedaan lainnya adalah bahwa aktor memungkinkan pengiriman id aktor dalam pesan, seperti yang ditunjukkan dalam pertanyaan, sedangkan hal ini tidak dimungkinkan dalam CSP. (Juga dimungkinkan dalam pi-kalkulus, tetapi tidak dalam CCS.)
Dave Clarke
Jadi, pada dasarnya, ini semua tentang kotak surat?
Jörg W Mittag
Bagaimana dengan perbedaan yang tercantum di sini: en.wikipedia.org/wiki/… dan en.wikipedia.org/wiki/… ? Perbedaan penting lainnya, untuk versi CSP sebelumnya, adalah nondeterminisme tanpa batas (lihat tautan itu).
Blaisorblade
2
Saya tidak yakin apakah ini perbedaan intinya, karena CSP dapat memiliki saluran buffer yang memungkinkan pengiriman pesan tidak sinkron. Mungkin ini lebih banyak tentang id proses, dalam proses CSP bersifat anonim, sementara aktor dinamai.
CMCDragonkai