Cuando un proceso genera otro proceso


13

Mi experiencia es en teoría / lógica de complejidad (donde solo hay un proceso la mayor parte del tiempo), y en computación distribuida (donde hay procesos y uno o más pueden fallar con el tiempo). Sin embargo, ahora quiero poder decir algo sobre un proceso que genera / crea / deriva de otro proceso. ¿Hay rigor en la computación paralela, sistemas operativos, etc., que explica esto?n

Motivación:

Estoy tratando de construir modelos que resuman ciertas características de las interacciones moleculares. Me gustaría decir que el conjunto de reacciones químicas es un proceso independiente, y que en cierto momento t , genera otro proceso independiente S ' . Intuitivamente, estas cosas se sienten como procesos independientes, porque no tienen contacto entre sí después del tiempo t - o muy poco contacto, solo intercambian "mensajes".StSt

Más formalmente:

(1) ¿Existen definiciones de CS preexistentes que capturan la noción de un proceso que genera otro proceso independiente? Estoy especialmente interesado en ser capaz de delimitar donde se detiene y S 'SS comienza , y por qué eso es "razonable".

(2) Si hay más de una respuesta a (1), ¿cuáles considera los pros y los contras de las distintas definiciones?

(Nota: no tengo idea de cómo etiquetar esto adecuadamente, y planeo volver a etiquetar dependiendo de las respuestas).


Siempre he encontrado que la forkllamada al sistema en sistemas operativos tipo Unix es conceptualmente muy elegante. Puede verlo como una operación atómica que duplica el proceso actual. Antes de una bifurcación, solo había un proceso , mientras que después de la bifurcación, hay dos procesos S y S ' . Si simplificamos demasiado las cosas, S y S ' son idénticos en todos los demás aspectos, excepto que hay un indicador de un bit que le permite a S ' saber que es el proceso "nuevo" mientras que S sabe que es el proceso "original". Después de eso S y S SSSSSSSSSpueden continuar por separado e incluso pueden modificarse a sí mismos .
Jukka Suomela

@ Jukka: Gracias :-) Sería genial si hubiera una manera de conectar lo que estoy haciendo con un primitivo Unix.
Aaron Sterling el

Respuestas:


13

Por supuesto, hay muchos sistemas para modelar procesos. Estos entran en la categoría de álgebras de proceso . Los ejemplos clave son cálculoπ , CCS , ACP y CSP .

Los cálculos de procesos tienen mecanismos básicos para especificar el comportamiento del proceso, que incluyen: envío y recepción de mensajes (sincrónica o asincrónica), creación de procesos paralelos, elección no determinista entre comportamientos y la replicación de procesos. Aunque los cálculos son pequeños en términos del número de construcciones, son muy expresivos y se ha realizado una gran cantidad de investigación para estudiar sus propiedades.

El cálculo difiere de los demás en que permite, en esencia, que los procesos se pasen como valores de primera clase. En realidad, permite que los nombres de los canales se pasen como valores de primera clase, lo que permite cambios en la topología dinámica. Este es probablemente el cálculo que desea porque ofrece la mayor dinámica.π

CSP (comunicación de procesos secuenciales) es un poco extraño, visto desde una perspectiva de moléculas de modelado. Tiene mucha teoría de respaldo y soporte de herramientas. (Inventado por CAR Hoare).

CCS y ACP tienen menos dinámica que el cálculo , pero son mucho más fáciles de analizar y simular. Un conjunto de herramientas sólido llamado μ CRL (y μ CRL2) están disponibles para ACP. Es seguro que existen herramientas similares para CCS.πμμ

Comenzaría a examinar el trabajo relacionado (ver más abajo) y luego encontraría cuál de los formalismos de modelado se ajusta a lo que está buscando.

De hecho, se ha trabajado mucho modelando reacciones químicas y procesos biológicos utilizando álgebra de procesos. Probablemente el mejor lugar para buscar es la lista de publicaciones de Luca Cardelli . Toda su línea de investigación en BioComputing tiene probablemente 30 artículos sobre el tema. Esta charla da una visión general de gran parte de su trabajo. Este es un poco más formal, aunque leer los documentos es realmente la única forma de ver los detalles.

Un enfoque que modela directamente los procesos químicos es CHAM (la máquina química abstracta). El ingrediente clave aquí es una solución de moléculas y membranas. Existen reglas de calentamiento y enfriamiento para reorganizar las moléculas y eliminar la basura. Estas reglas son reversibles. Finalmente hay reglas de reacción que modelan reacciones. A diferencia de las álgebras de procesos, los modelos CHAM no están tan preocupados por la sintaxis de los procesos, por lo que puede inventar su propia representación de las moléculas.

Reescribe la lógica como se dio cuenta en el conjunto de herramientas Maude ofrece otro enfoque más o menos directo para especificar tales reacciones. Uno solo necesita especificar las reglas de reescritura, la entrega de la "sopa" es automática. El conjunto de herramientas permitiría la simulación y el análisis de reacciones químicas (pequeñas). También existe una variante probabilística de Maude.


¿Podrían considerarse también las redes de Petri entre las posibilidades? La bifurcación podría modelarse teniendo un lugar con dos transiciones salientes.
M. Alaggan

En términos más generales, las interacciones de estilo petri-net pueden modelarse en lógica lineal (para un ejemplo, aunque no el único, ver "Un marco lógico concurrente: El fragmento proposicional" por Watkins et al, TYPES 2003)
Rob Simmons

π

@METRO. Alaggan: En la superficie parece que las redes de Petri podrían hacer el trabajo. Cada lugar podría considerarse como un grupo de productos químicos. Cada transición podría considerarse como reacción. Por lo tanto, si tuviéramos lugares llamados H y O y H2O, una transición podría tomar dos fichas de H una de O y poner una ficha en H2O. El problema con el modelado de esta manera es que solo una de cada transición puede dispararse simultáneamente, en contraste con las álgebras de proceso que permitirían que muchas de esas transiciones se disparen a la vez.
Dave Clarke el

@ Aaron: dependiendo de lo que intente hacer, los cálculos de procesos más modernos como BioPEPA podrían serle útiles.
András Salamon

7

Otra línea de trabajo que, creo, está relacionada pero no es la misma que BioComputing (desafortunadamente no estoy muy versado en esta área), es la "computación de membrana".

Mi comprensión de la computación de membrana es que utiliza metáforas desarrolladas en gran medida en el mundo de los procesos (la respuesta de Dave Clarke dio un buen conjunto de punteros allí) explícitamente para modelar las interacciones celulares. Una buena guía para la computación de membranas es probablemente la bien llamada Guía A para la computación de membranas de Paun y Rozenberg en TCS. Fue hace unos años (y no estoy dentro de un muro de pago en este momento para verificar), pero creo que algunos modelos de computación de membrana tienen la noción de "bifurcación" que se supone que de alguna manera refleja la mitosis celular.


Gracias Rob. El trabajo de Cardelli no toca la computación de membrana hasta donde yo sé. Está más enfocado en construir una teoría del lenguaje de programación para circuitos de ADN. Aprecio el puntero, pero supongo que estoy buscando algo más "convencional" (lo que significa que no está bio-relacionado de ninguna manera).
Aaron Sterling el

1
Esta es ciertamente una alternativa. @ Aaron: cálculo de Brane de Cardelli lucacardelli.name/Papers/Brane%20Calculi.pdf membranas de modelos.
Dave Clarke el

¡Decir ah! ¡El poder del crowdsourcing! ¡Gracias de nuevo! :-)
Aaron Sterling
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.