Algèbre de processus

Les algèbres de processus sont une famille de langages formels permettant de modéliser les systèmes (informatiques) concurrents ou distribués. Les algèbres de processus fournissent des outils formels permettant principalement de caractériser les interactions entre processus au sein d'un système concurrent ou distribué, les interactions prenant la forme d'échanges de messages. L'étude des algèbres de processus relève de l'informatique théorique, et leurs applications relèvent principalement du génie logiciel, en particulier des systèmes distribués.

Pour les articles homonymes, voir Algèbre (homonymie).

Les différents calculs peuvent se distinguer par différent points : calcul synchrone ou asynchrone, calcul du premier ordre ou d'ordre supérieur (dans le second cas, les messages échangés sont des processus), etc..

Les principaux algèbres de processus utilisés sont :

Histoire

La volonté de formaliser les systèmes concurrent se materialise à la fin des années 1970 et au début des années 1980. Par exemple, Milner publie "A Calculus of Communicating Systems" en 1980[1], qui présente CCS. Dans son introduction, Milner indique que le développement de CCS s'inscrit dans la lignée du développement des réseaux de Petri présenté en 1962 et de CSP (1978).

Principales constructions

Bien que les différentes algèbres comportent différentes constructions, des élements de base (comme des primitives de communication ou de composition parallèle) se retrouvent au travers des différentes algèbres (avec parfois des différences subtiles).

Naturellement, les résultats et les caracteristiques de chaque algèbre dépend des choix formels qui sont faits.

Le processus inactif

Les algèbres comprennent une notion de processus inactif ou terminé, qui caractérise un processus ne pouvant interagir avec le reste de l'environnement. Le plus souvent, ce processus est noté ou .

Composition Séquentielle

La composition séquentielle permet de composer des actions ordonnées. Par exemple, dans CCS, la composition séquentielle est notée , qui désigne un processus qui peut effectuer l'action , puis l'action .

Composition Parallèle

La seconde forme de composition est la composition parallèle, qui indique des actions qui peuvent s'effectuer sans indication d'ordre. Toujours dans CCS, la composition parallèle est notée , qui désigne un processus qui peut effectuer et , dans n'importe quel ordre.

Communication

Bien que toutes les algèbres de processus intègrent une notion de communication entre processus, il y a une grande variabilité dans la manière dont les communications sont gérées.

Ainsi, par exemple, dans CCS, la communication consiste simplement en la synchronisation entre deux processus sur une action: si on a un processus et un processus en parallèle, où est l'action duale de (noté comme vu dans la section précdente); alors les deux processus peuvent, atomiquement, effectuer l'action (resp. ): devient .

Par ailleurs, il est possible d'avoir des formes plus complexes de communication. Par exemple, le -calcul d'ordre superieur permet l'échange de messages dont le contenu est lui-même un processus: désigne un processus qui envoie le processus sur le canal ; par ailleurs, un processus peut recevoir ce processus (lié à la variable ) et l'instancier: devient .

Enjeux de recherche


  1. Springer, editeur.
  • Portail de l’informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.