previous up next contents
Précédent : Ordre causal Remonter : Problèmes fondamentaux Suivant : Détection de propriétés

Contrôle réparti

 

Détection d'interblocage.

Cette activité a été menée en collaboration avec Jerzy Brzezinsky de l'université de Poznan en Pologne. Nous avons examiné le problème de la détection d'interblocages dans un système asynchrone fondé sur la communication par messages. Nous avons mis en évidence un modèle général d'interblocage, et avons proposé un algorithme général de détection, fondé sur ce modèle.

Le modèle considéré prend en compte le cas des réceptions non spécifiées, les canaux non-fifo, et une forme générale de requêtes comprenant, entre autres, les modèles ET, OU, ET-OU, k-parmi-n. Dans ce contexte, une hiérarchie de modèles d'interblocage basée sur ces différentes formes de requêtes a été mise en évidence. D'autre part, nous avons formulé différents problèmes de détection d'interblocage. Nous avons ensuite montré comment le modèle général proposé recouvre ces hiérarchies.

L'algorithme proposé est adapté au modèle général ; il permet donc de prendre en compte des situations très générales dans lesquelles, par exemple, différents modèles de requête co-existent dans le système. Présenté d'abord sous la forme d'un algorithme à jeton, il est ensuite généralisé, afin d'inclure des extensions ou améliorations, relatives à la terminaison individuelle ou globale, au routage du jeton, et à l'exécution parallèle de la détection. Par rapport aux algorithmes connus de détection d'interblocage, la solution proposée ici est avantageuse tant sur le plan de la généralité que sur ceux de la souplesse de mise en oeuvre et de l'efficacité.

Points de contrôle

Dans une exécution répartie, un point de contrôle global est un ensemble de points de contrôle locaux (états locaux), un par processus participant à l'exécution. La détermination d'un point de contrôle global cohérent est un problème important dans de nombreux domaines concernés par les applications réparties (résistance aux défaillances, mise au point répartie, détection de propriétés, etc.). La capture des points de contrôle peut se faire de manière coordonnée ou non coordonnée. Dans les méthodes coordonnées, les processus se synchronisent pour construire des points de contrôle cohérents. Le dernier point de contrôle calculé est donc toujours cohérent, mais la synchronisation que son calcul nécessite (messages de contrôle notamment) est pénalisante vis-à-vis de l'application contrôlée. Dans les méthodes non-coordonnées, les processus prennent des points de contrôle locaux indépendamment les uns des autres. Il n'y a donc aucune pénalisation de l'application contrôlée. Toutefois, l'inconvénient de cette méthode réside dans l'incapacité qu'il peut y avoir ensuite à construire un point de contrôle global cohérent (phénomène connu sous le nom d'effet domino).

Dans ce contexte, nous avons abordé le problème suivant : ``Les processus prenant des points de contrôle locaux de façon indépendante, comment les obliger à prendre des points de contrôle supplémentaires (le moins possible) de façon à ce que tout point de contrôle local appartienne à un point de contrôle global cohérent ?''. A partir de cette question, une théorie originale sur les points de contrôle a été développée. Entre autres résultats, une condition nécessaire et suffisante qui répond à la question suivante : ``Étant donné un ensemble quelconque de points de contrôle locaux, appartiennent-ils à un même point de contrôle global cohérent ?'' a été formulée et prouvée. A partir de ce résultat, un algorithme adaptatif de détermination de points de contrôle a été développé, prouvé et analysé expérimentalement.

Enfin, les résultats théoriques obtenus dans le cadre des systèmes à communication par messages sont en train d'être étendus aux systèmes à communication par mémoire partagée.


previous up next contents
Précédent : Ordre causal Remonter : Problèmes fondamentaux Suivant : Détection de propriétés