Vés al contingut

Processos comunicants seqüencials

De la Viquipèdia, l'enciclopèdia lliure
(S'ha redirigit des de: CSP)

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]
Poliphonic C#
Implementació del Join calculus per a C#,[8] integrat al llenguatge Cw.[9]

Referències[modifica]

  1. Using CSP versió en línia del llibre de Tony Hoare "Communicating Sequential Processes"
  2. Occam-Π
  3. Robert Pointon - Hume Arxivat 2011-06-05 a Wayback Machine.(anglès)
  4. Web del llenguatge Hume(anglès)
  5. Univ. de Kent - CHP: Communicating Haskell Processes(anglès)
  6. Univ. de Kent - JCSP(anglès)
  7. «Univ. d'austràlia del sud - Join Java». Arxivat de l'original el 2012-08-03. [Consulta: 20 gener 2013].
  8. Poliphonic C#(anglès)
  9. El llenguatge Cw de Microsoft(anglès)