Cálculo de procesos


En informática , los cálculos de procesos (o álgebras de procesos ) son una familia diversa de enfoques relacionados para modelar formalmente sistemas concurrentes . Los cálculos de procesos proporcionan una herramienta para la descripción de alto nivel de interacciones, comunicaciones y sincronizaciones entre una colección de agentes o procesos independientes. También proporcionan leyes algebraicas que permiten manipular y analizar descripciones de procesos, y permiten el razonamiento formal sobre equivalencias entre procesos (p. ej., usando bisimulación ). Los principales ejemplos de cálculos de procesos incluyen CSP , CCS , ACP y LOTOS .[1] Las adiciones más recientes a la familia incluyen el cálculo π , el cálculo ambiental , PEPA , el cálculo de fusión y el cálculo de unión .

Si bien la variedad de cálculos de procesos existentes es muy grande (incluidas variantes que incorporan comportamiento estocástico , información de tiempo y especializaciones para estudiar interacciones moleculares), hay varias características que todos los cálculos de procesos tienen en común: [2]

Para definir un proceso de cálculo , se parte de un conjunto de nombres (o canales ) cuyo propósito es proporcionar medios de comunicación. En muchas implementaciones, los canales tienen una estructura interna rica para mejorar la eficiencia, pero esto se abstrae en la mayoría de los modelos teóricos. Además de los nombres, se necesita un medio para formar nuevos procesos a partir de los antiguos. Los operadores básicos, siempre presentes de una u otra forma, permiten: [3]

La composición paralela de dos procesos y , generalmente escrito , es la clave primitiva que distingue los cálculos de procesos de los modelos secuenciales de computación. La composición paralela permite que los cálculos se realicen de forma simultánea e independiente. Pero también permite la interacción, es decir, la sincronización y el flujo de información de a (o viceversa) en un canal compartido por ambos. Fundamentalmente, un agente o proceso se puede conectar a más de un canal a la vez.

Los canales pueden ser síncronos o asíncronos. En el caso de un canal síncrono, el agente que envía un mensaje espera hasta que otro agente haya recibido el mensaje. Los canales asíncronos no requieren tal sincronización. En algunos cálculos de procesos (en particular, el cálculo π ), los propios canales pueden enviarse en mensajes a través de (otros) canales, lo que permite que cambie la topología de las interconexiones de procesos. Algunos cálculos de proceso también permiten que se creen canales durante la ejecución de un cálculo.

La interacción puede ser (pero no siempre lo es) un flujo de información dirigido . Es decir, la entrada y la salida se pueden distinguir como primitivas de interacción dual. Los cálculos de proceso que hacen tales distinciones normalmente definen un operador de entrada ( p. ej .) y un operador de salida ( p. ej .), los cuales nombran un punto de interacción (aquí ) que se utiliza para sincronizar con una primitiva de interacción dual.