Qual è la differenza tra il modello di attore di concorrenza e i processi sequenziali comunicanti


26

Sto cercando di capire quali sono le reali differenze tra il modello di concorrenza degli attori e il modello di concorrenza dei processi sequenziali di comunicazione (CSP).

Finora il meglio che sono riuscito a trovare è che il modello di attore consente di modificare il numero e il layout dei nodi mentre CSP ha una struttura fissa di nodi.


1
Vedi anche The Actor Model a ~ 14: 45 su Channel 9, dove Carl Hewitt discute il modello di attore in modo approfondito. Nota che una differenza tra attori e CSP è l'uso dei canali per la comunicazione in CSP rispetto alla comunicazione diretta nel modello di attore.
Whymarrh,

Risposte:


18

Credo che una differenza fondamentale sia che in CSP i processi si sincronizzano quando vengono ricevuti messaggi (ovvero un messaggio non può essere inviato da un processo a meno che un altro processo non sia in modalità di ricezione), mentre il modello Actor è intrinsecamente asincrono (ovvero i messaggi vengono immediatamente inviati a indirizzo di altri processi, indipendentemente dal fatto che stiano attivamente aspettando un messaggio o meno).

Tuttavia, dovrebbe esserci un'altra risposta più sviluppata.


1
È praticamente la risposta che avrei scritto. Nel modello di attore originale (Hewitt, Agha), il processo di ricezione non ha nemmeno fornito automaticamente l'accesso al nome del mittente, sebbene le realizzazioni più moderne (come gli attori di Scala) lo facciano. L'altra differenza è che gli attori consentono l'invio di ID attore nei messaggi, come suggerito nella domanda, mentre ciò non è possibile in CSP. (Possibile anche nel pi-calculus, ma non nel CCS.)
Dave Clarke

Quindi, fondamentalmente, si tratta della cassetta postale?
Jörg W Mittag,

Che dire delle differenze elencate qui: en.wikipedia.org/wiki/… e en.wikipedia.org/wiki/… ? Un'altra differenza importante, per le versioni precedenti di CSP, è il non determinismo illimitato (vedere tali collegamenti).
Blaisorblade,

2
Non sono sicuro che questa sia la differenza fondamentale, dal momento che CSP può avere canali bufferizzati che consentono l'invio di messaggi asincroni. Forse si tratta più dell'id del processo, nei processi CSP sono anonimi, mentre gli attori sono nominati.
CMCDragonkai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.