Processos comunicants seqüencials
Processos comunicants seqüencials, de sigles anglosaxones CSP (Communicating sequential processes), és un model de Programació d'ordinadors de sistemes concurrents basat en la comunicació entre processos. Definició del model:[1]
- Estructures de control seqüencials: ordres amb guarda de Dijkstra: <condició o guarda> → <acció>
- Execució concurrent dels processos.
- Ordres especials d'entrada/sortida entre processos: Pj ! i Pi? X
- La comunicació té lloc quan un procés Pi nomena a un altre procés Pj com a destí de la seva sortida i Pj nomena Pi com a origen de la seva entrada.
- No hi ha buffering (coixí de missatges). Els processos que han d'enviar o rebre missatges queden bloquejats fins que aconsegueixen la comunicació.
- No es creen ni es destrueixen processos durant l'execució dels programes (són estàtics).
- No hi ha recursivitat.
Relacionat
[modifica]- Occam Pi
- CSP amb àlgebra de processos "calcul Pi" on els noms dels canals poden ser l'objecte transmès com a missatge.[2]
- JoCaml
- llenguatge funcional, extensió de OCaml, que implementa l'àlgebra de processos anomenada "càlcul Join" on les guardes són patrons de sincronisme (simultaneïtat de missatges a diversos canals), amb concurrència per pas de missatges asíncrons i síncrons.
- llenguatge Hume
- implementa concurrència per pas de missatges i sincronia de canals. Els processos s'agrupen en autòmats (construcció box) on l'entrada és una tupla de canals amb un conjunt d'alternatives de patrons de sincronisme (càlcul Join) i l'estat és a les bústies modificades per realimentació. Les comunicacions s'especifiquen com a cablejat entre autòmats (instrucció wire) i es poden descriure en un entorn gràfic IDE.[3][4]
- Communicating Haskell Processes
- biblioteca de Haskell que implementa CSP basada en mònades.[5]
- Java JCSP
- "Communicating Sequential Processes for Java" de la Univ. de Kent[6]
- Join Java
- implementació de càlcul Join sobre Java.[7]
Referències
[modifica]- ↑ Using CSP versió en línia del llibre de Tony Hoare "Communicating Sequential Processes"
- ↑ Occam-Π
- ↑ Robert Pointon - Hume Arxivat 2011-06-05 a Wayback Machine.(anglès)
- ↑ Web del llenguatge Hume(anglès)
- ↑ Univ. de Kent - CHP: Communicating Haskell Processes(anglès)
- ↑ Univ. de Kent - JCSP(anglès)
- ↑ «Univ. d'austràlia del sud - Join Java». Arxivat de l'original el 2012-08-03. [Consulta: 20 gener 2013].
- ↑ Poliphonic C#(anglès)
- ↑ El llenguatge Cw de Microsoft(anglès)