Quand un processus engendre un autre processus


13

Mon expérience est en théorie / logique de la complexité (où il n'y a qu'un seul processus la plupart du temps), et en informatique distribuée (où il y a processus, et un ou plusieurs peuvent échouer au fil du temps). Cependant, je veux maintenant pouvoir dire quelque chose à propos d'un processus qui génère / crée / dérive un autre processus. Y a-t-il une rigueur dans le calcul parallèle, les systèmes d'exploitation, etc., qui explique cela?n

Motivation:

J'essaie de construire des modèles qui résument certaines caractéristiques des interactions moléculaires. Je voudrais dire que l'ensemble des réactions chimiques est un processus indépendant, et qu'à un certain pas de temps t , il engendre un autre processus indépendant S ' . Intuitivement, ces choses se sentent comme des processus indépendants, car elles n'ont aucun contact les unes avec les autres après le temps t - ou très peu de contacts, échangeant uniquement des «messages».StSt

Plus formellement:

(1) Existe-t-il des définitions de CS préexistantes qui capturent la notion d'un processus engendrant un autre processus indépendant? Je suis particulièrement intéressé à pouvoir délimiter où s'arrête et où commence S ' , et pourquoi c'est "raisonnable" de le faire.SS

(2) S'il y a plus d'une réponse à (1), quels sont selon vous les avantages et les inconvénients des différentes définitions?

(Remarque: je n'ai aucune idée de la façon de baliser cela de manière appropriée et je prévois de réétiqueter en fonction des réponses.)


J'ai toujours trouvé l' forkappel système dans les systèmes d'exploitation de type Unix très élégant sur le plan conceptuel. Vous pouvez le voir comme une opération atomique qui duplique le processus actuel. Avant une fourchette, il n'y avait qu'un seul processus , alors qu'après la fourche, il y a deux processus S et S ' . Si nous simplifions exagérément les choses, S et S ' sont identiques dans tous les autres aspects, sauf qu'il existe un indicateur à un bit qui permet à S ' de savoir qu'il s'agit du "nouveau" processus tandis que S sait qu'il s'agit du processus "original". Après cela, S et S SSSSSSSSSpeuvent continuer séparément, et ils peuvent même se modifier .
Jukka Suomela

@Jukka: Merci :-) Ce serait bien s'il y avait un moyen de connecter ce que je fais à une primitive Unix.
Aaron Sterling

Réponses:


13

Bien sûr, il existe de nombreux systèmes de modélisation des processus. Celles-ci entrent dans la catégorie des algèbres de processus . Les exemples clés sont -calculusπ , CCS , ACP et CSP .

Les calculs de processus ont des mécanismes de base pour spécifier le comportement des processus, notamment: l'envoi et la réception de messages (de manière synchrone ou asynchrone), la création de processus parallèles, le choix non déterministe entre les comportements et la réplication des processus. Bien que les calculs soient petits en termes de nombre de constructions, ils sont très expressifs et de nombreuses recherches ont été consacrées à l'étude de leurs propriétés.

Le -calculus diffère des autres en ce qu'il permet, en substance, de passer des processus en tant que valeurs de première classe. Il permet en fait de transmettre les noms de canaux en tant que valeurs de première classe, permettant des changements dans la topologie dynamique. C'est probablement le calcul que vous souhaitez car il offre la plus grande dynamicité.π

Le CSP (communicating sequential process) est un peu étrange, vu sous l'angle de la modélisation des molécules. Il a beaucoup de théorie de support et de support d'outils. (Inventé par CAR Hoare.)

CCS et ACP ont moins de dynamicité que le -calcul, mais ils sont beaucoup plus faciles à analyser et à simuler. Un ensemble d'outils solide appelé μ CRL (et μ CRL2) est disponible pour ACP. Des outils similaires existent certainement pour CCS.πμμ

Je commencerais à examiner le travail connexe (voir ci-dessous), puis à trouver lequel des formalismes de modélisation correspond à ce que vous recherchez.

En fait, il y a eu beaucoup de travail sur la modélisation des réactions chimiques et des processus biologiques en utilisant l'algèbre des processus. Le meilleur endroit où chercher est probablement la liste des publications de Luca Cardelli . Toute sa ligne de recherche sur la bio-informatique a probablement 30 articles sur le sujet. Cet exposé donne un aperçu d'une grande partie de son travail. Celui- ci est légèrement plus formel, bien que la lecture des articles soit vraiment la seule façon de voir les détails.

CHAM (la machine chimique abstraite) est une approche qui modélise directement les processus chimiques. L'ingrédient clé ici est une solution de molécules et de membranes. Il existe des règles de chauffage et de refroidissement pour réorganiser les molécules et pour éliminer les déchets. Ces règles sont réversibles. Enfin, il existe des règles de réaction qui modélisent les réactions. Contrairement aux algèbres de processus, les modèles CHAM ne se préoccupent pas autant de la syntaxe des processus, vous pouvez donc inventer votre propre représentation des molécules.

Réécrire la logique telle que réalisée dans le jeu d'outils Maude propose une autre approche plus ou moins directe pour spécifier de telles réactions. Il suffit de préciser les règles de réécriture, la remise de la "soupe" est automatique. L'ensemble d'outils permettrait de simuler et d'analyser des réactions chimiques (plus petites). Il existe également une variante probabiliste de Maude.


Les filets de pétri peuvent-ils également être envisagés parmi les possibilités? bifurquer pourrait être modélisé en ayant une place avec deux transitions sortantes.
M. Alaggan

Plus généralement, les interactions de style Petri-net peuvent être modélisées en logique linéaire (par exemple, mais pas le seul, voir "Un cadre logique simultané: le fragment propositionnel" par Watkins et al, TYPES 2003)
Rob Simmons

π

@M. Alaggan: En surface, il semble que les filets de Petri pourraient faire le travail. Chaque endroit pourrait être considéré comme un réservoir de produits chimiques. Chaque transition pourrait être considérée comme une réaction. Ainsi, si nous avions des endroits appelés H et O et H2O, une transition pourrait prendre deux jetons de H un d'O et mettre un jeton dans H2O. Le problème de la modélisation de cette manière est qu'une seule de ces transitions peut se déclencher simultanément, contrairement aux algèbres de processus qui permettraient à de nombreuses transitions de se déclencher à la fois.
Dave Clarke

@Aaron: selon ce que vous essayez de faire, des calculs de processus plus modernes comme BioPEPA pourraient vous être utiles.
András Salamon

7

Une autre ligne de travail qui est - je crois - liée à mais pas la même chose que BioComputing (malheureusement, je ne suis pas trop bien versé dans ce domaine), est "l'informatique à membrane".

Ma compréhension de l'informatique membranaire est qu'elle utilise des métaphores largement développées dans le monde process-caclui (la réponse de Dave Clarke y a donné un bon ensemble de pointeurs) pour modéliser explicitement les interactions cellulaires. Un bon guide de l'informatique membranaire est probablement le bien nommé A guide to membrane computing de Paun et Rozenberg dans TCS. C'était il y a quelques années (et je ne suis pas à l'intérieur d'un mur payant pour le moment), mais je crois que certains modèles de calcul membranaire ont une notion de «fourche» qui est censée refléter en quelque sorte la mitose cellulaire.


Merci, Rob. Le travail de Cardelli ne touche pas à l'informatique à membrane pour autant que je sache. Il est plus axé sur la construction d'une théorie du langage de programmation pour les circuits d'ADN. J'apprécie le pointeur, mais je suppose que je recherche quelque chose de plus "mainstream" (ce qui ne signifie en rien bio-lié).
Aaron Sterling

1
C'est certainement une alternative. @Aaron: Brane Calculus de Cardelli lucacardelli.name/Papers/Brane%20Calculi.pdf modélise les membranes.
Dave Clarke

Ha! Le pouvoir du crowdsourcing! Merci encore! :-)
Aaron Sterling
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.