Projet Adp

previous up next contents
Précédent : Logiciels Remonter : Projet ADP, Algorithmes distribués et Suivant : Actions industrielles



Résultats nouveaux

Détection de propriétés



Participants : Eddy Fromentin , Michel Hurfin , Michel Raynal


Résumé : Notre contribution a consisté à définir formellement de nouvelles classes de propriétés (les colliers de diamants et les propriétés sur les états globaux partagés) généralisant de précédentes propositions et à proposer des algorithmes répartis efficaces permettant de détecter si ces propriétés sont satisfaites ou non durant une exécution.

Nous avons présenté le problème de la détection de propriétés comme une variante d'un problème de reconnaissance de langage à travers le parcours d'un graphe orienté acyclique modélisant le calcul réparti. Dans [19], nous définissons une classe très générale de propriétés (appelées colliers de diamants) qui inclut les propriétés classiques rencontrées dans le domaine de la mise au point des programmes répartis. De telles propriétés sont définies en spécifiant plusieurs motifs réguliers et en associant une règle de satisfaction à chaque motif. Les séquences atomiques de prédicats locaux (définies en 1993) se révèlent être un type particulier de collier de diamants pouvant être détecté à la volée sur le graphe des états locaux.

Dans [14], nous nous sommes également intéressés à l'identification d'états globaux particuliers: les états globaux partagés. L'algorithme de détection de tels états globaux consiste en un parcours d'une seule observation et peut-être vu comme une heuristique dans le parcours de l'ensemble des états, ce qui permet d'obtenir une complexité en temps de calcul qui est polynomiale. Les propriétés vraies dans de tels états ont la particularité d'avoir pu être vérifiées quelle que soit la façon d'observer une exécution répartie

Cohérence de mémoires réparties d'objets



Participants : Gérard Thia-Kime , Michel Raynal


Résumé : Nous avons étudié, dans le modèle transactionnel, la sérialisabilité et la cohérence causale et proposé un nouveau critère: la sérialisabilité causale. Construite au dessus de la cohérence causale, elle garantit également un ordre total sur les écritures concernant un même objet. La sérialisabilité causale est ainsi moins contraignante que la sérialisabilité (et donc moins coûteuse en terme de synchronisation) tout en éliminant l'inconvénient majeur de la cohérence causale, à savoir la possibilité d'écritures concurrentes concernant un même objet.

Dans le modèle mémoire virtuelle partagée, nous avons étudié la cohérence séquentielle et la cohérence causale ainsi que leurs équivalents dans le modèle transactionnel, à savoir, la sérialisabilité et la cohérence causale. La sérialisabilité est le critère de cohérence usuel. Son principal inconvénient réside dans les fortes contraintes de synchronisation qu'elle exige entre les processus: une opération d'écriture (fortement synchronisée) nécessite un protocole d'agrément entre tous les processus, à savoir un protocole (coûteux) de diffusion atomique (algorithme décentralisé à trois phases). La cohérence causale assure l'ordre causal, une contrainte suffisante pour un certain nombre d'applications avec un niveau de synchronisation relativement peu élevé. L'ordre causal peut être assuré par un simple estampillage des messages, donc pas de synchronisation entre les processus autre que l'ordonnancement des messages délivrés fondé sur les estampilles. Toutefois, un inconvénient majeur de la cohérence causale est la possibilité d'écritures concurrentes sur un même objet. Ceci nous a amené à proposer un nouveau critère intermédiaire entre la sérialisabilité et la cohérence causale: la sérialisabilité causale [32,9]. Construite au dessus de la cohérence causale, elle garantit également un ordre total sur les écritures concernant un même objet. La sérialisabilité causale est ainsi moins contraignante que la sérialisabilité (et donc moins coûteuse en terme de synchronisation) tout en éliminant l'inconvénient majeur de la cohérence causale, à savoir la possibilité d'écritures concurrentes concernant un même objet. Les applications actuellement à l'étude se situent dans le domaine du travail coopératif.
Les extensions actuelles de ce travail sont d'une part la mise en oeuvre de ces protocoles dans un environnement de programmation objet (CORBA) et l'étude de la tolérance aux défaillances au niveau de la couche de communication de groupe (en utilisant notamment des protocoles de consensus).

Points de contrôle et retour arrière



Participant : Jean-Michel Hélary , Achour Mostefaoui , Michel Raynal


Résumé : Deux problèmes principaux ont été abordés. D'une part, l'abstraction d'un calcul réparti (ne considérant que les points de contrôle locaux et leurs relations de dépendance) est cohérente si tout point de contrôle local appartient à au moins un point de contrôle global cohérent. L'introduction d'une propriété des exécutions réparties avec points de contrôle appelée Précédence Virtuelle [29] nous a permis de définir une ``famille'' paramétrable de protocoles, englobant des protocoles déjà connus et permettant d'en dériver de nouveaux, qui s'avèrent plus intéressants, en termes de nombre de points de contrôle forcés, que les meilleurs protocoles connus à ce jour [28,27]. D'autre part, comment assurer la propriété RDT (pour Rollback-Dependency Trackability), notion plus forte que la précédente. Il s'agit de définir un ensemble de Z-chemins dont la suppression suffit à assurer la propriété RDT. Nous avons conçu deux protocoles ``génériques'' qui offrent à l'utilisateur des compromis entre taille des informations de contrôle véhiculées par les messages et nombre de points de contrôle forcés ([10,2]).

Nous nous sommes intéressés au problème de la détermination de points de contrôle globaux cohérents selon l'approche coordination induite par les communications (communication-induced checkpointing).

Etudes dans le cadre de la notion classique de cohérence

Nous nous sommes intéressés à la question essentielle: ``l'abstraction de calcul obtenue en ne considérant que les points de contrôle locaux et leurs relations de dépendance, est-elle cohérente?'' Nous avons examiné deux réponses à cette question, chacune considérant une notion de cohérence particulière pour l'abstraction définie par les points de contrôle.

Dans le premier cas, l'abstraction est cohérente si tout point de contrôle local appartient à au moins un point de contrôle global cohérent. Cette étude nous a amenés à introduire une propriété des exécutions réparties avec points de contrôle appelée Précédence Virtuelle [29]. Nous avons montré qu'au niveau opérationnel cela revient à produire un estampillage des points de contrôle tel que les estampilles croissent le long des Z-chemins. Ce nouveau concept de précédence virtuelle facilite la conception et l'analyse de protocoles de détermination de points de contrôle forcés réalisant la propriété requise sur la croissance des estampilles; nous avons notamment obtenu une ``famille'' paramétrable de protocoles dont [28,27].

La seconde notion de cohérence, plus forte que la précédente, est la propriété RDT (pour Rollback-Dependency Trackability) introduite par Wang. Nous nous sommes intéressés à la recherche de conditions optimales sous lesquelles un processus sera obligé de prendre un point de contrôle forcé. Par là nous entendons la recherche de conditions telles que le nombre de points de contrôle forcés serait le plus faible possible. Il s'agit de définir un ensemble de Z-chemins dont la suppression (par prise de points de contrôles locaux) suffit à assurer la propriété RDT. Nous avons caractérisé un ensemble minimal de Z-chemins dont la suppression assure la propriété RDT [39]. Nous avons conçu deux protocoles ``génériques'' qui offrent à l'utilisateur des compromis entre taille des informations de contrôle véhiculées par les messages et nombre de points de contrôle forcés ([10,2]).

Extensions de la notion de cohérence

Les deux autres modèles de cohérence que nous avons développés (l'absence de messages en transit (transitlessness) et la cohérence forte) nous ont conduits à proposer un formalisme abstrait, englobant les trois modèles précédents. Dans ce formalisme, nous avons exprimé la condition nécessaire et suffisante pour qu'un ensemble de points de contrôle locaux puisse faire partie d'un point de contrôle global cohérent([41]). Cette étude théorique nous a servi de fondement pour concevoir de nouveaux protocoles assurant la cohérence forte ainsi qu'à l'étude des compromis entre ces deux techniques utilisées ([40]).

Extension des modèles de calcul

Nous avons élargi le cadre de nos travaux en considérant un modèle générique de calcul asynchrone, basé sur une relation de causalité générale. Ce modèle recouvre aussi bien le modèle à mémoire partagée, que différents modèles à échange de messages. Dans ce cadre générique, nous avons donné une définition de la cohérence, puis exprimé et prouvé une condition nécessaire et suffisante pour qu'un ensemble de points de contrôle locaux puisse faire partie d'un point de contrôle global cohérent([25,11]).

Contraintes non-fonctionnelles



Participants : Jean-Michel Hélary , Michel Hurfin , Achour Mostefaoui , Michel Raynal , Gérard Thia-Kime , Frédéric Tronel


Résumé : Les travaux réalisés ont essentiellement porté sur le problème du consensus et son utilisation comme brique de base pour résoudre des problèmes d'accord. Un protocole permettant de résoudre efficacement ce problème élémentaire a été proposé. Une nouvelle brique de base, qui généralise le problème du consensus, a été spécifié et son intérêt pour résoudre des problèmes d'accord a été montré. Une solution au problème du consensus dans un environnement mobile a été proposée.

Les travaux réalisés ont essentiellement porté sur le problème du consensus et son utilisation comme brique de base pour résoudre des problèmes d'accord. Une synthèse sur les solutions déterministes apportées au problème du consensus a été proposée dans [17].

Dans le reste de nos travaux, nous avons fait les hypothèses que le détecteur de défaillances appartient à la classe $\Diamond{\cal S}$,que les défaillances sont définitives, que les canaux de communication sont fiables et qu'une majorité de processus reste correcte.

Nous avons proposé un algorithme original fondé sur le principe du vote avec coordinateur tournant. Sous l'hypothèse que le détecteur se comporte souvent de façon fiable (i.e. les défaillances annoncées sont généralement réelles), cet algorithme est, à notre connaissance, le plus performant (en terme de temps de latence) des algorithmes proposés à ce jour. Cette hypothèse est réaliste: sachant que les occurrences de défaillances sont en règle générale relativement rares, le détecteur de défaillance peut être réglé de façon à réduire le nombre de suspicions erronées.

Le consensus peut être utilisé comme brique de base pour résoudre d'autres problèmes d'accord [33]. Cette possibilité a été étudiée en détail dans le cas du problème de la validation atomique non-bloquante [21]. L'exécution du protocole est généralement précédée d'une phase d'échanges au cours de laquelle les processus diffusent leur décision locale qui est soit positive (vote commit) soit négative (vote abort). En fonction des décisions locales collectées, chaque processus prend ensuite une décision globale: avorter la transaction si au moins l'une des décisions locales est négative ou reste inconnue, valider si toute les décisions locales sont connues et positives. Le protocole de consensus est ensuite utilisé pour assurer que tous les processus prennent la même décision globale (avorter ou valider). La phase d'échanges qui précède le consensus fait double emploi avec les échanges de valeurs qui ont lieu durant l'exécution du protocole de consensus [30]. Partant de ce constat, nous avons proposé une nouvelle brique de base: les processus ne s'accordent plus sur une des valeurs proposées mais sur un sous ensemble des valeurs proposées. L'intérêt de cette nouvelle brique de base ainsi qu'un protocole permettant de la mettre en oeuvre ont été décrits dans [31].

En coopération avec N. Badache et R. Macêdo, nous avons étudié le problème du consensus dans un environnement mobile: ces travaux ont abouti à la définition d'un protocole permettant d'obtenir un accord entre des sites mobiles et ce malgré d'éventuelles défaillances de sites mobiles ou fixes [38].

Parallèlement, nous avons poursuivi nos investigations concernant le respect de contraintes temps-réel dans les systèmes distribués asynchrones [34], ainsi que l'analyse des interactions entre ces contraintes et celles dues à la sûreté de fonctionnement.

Protocoles pour les applications multimédia réparties



Participants : Bernard Cousin , Muddassir Tufail


Résumé : Deux actions de recherche ont été menées cette année dans le cadre du contrôle de trafic multipoint de type ABR dans les réseaux ATM. La première prend place au sein de la gestion globale de tous les flux de données traversant un commutateur: elle tient compte du comportement de l'ensemble des ports de sortie et de leur file d'attente associées. La seconde se restreint à l'étude et la gestion des flux de données traversant un seul des ports.

Nous avons proposé une politique d'équilibrage de charge entre les files d'attente des différents ports d'un même commutateur [37]. Cette politique s'appuie sur les cellules spécifiques chargées de la gestion du trafic (RM cells). Elle a pour particularité de gérer de manière spécifique les flux de données multicasts. Cela s'est traduit par la définition d'un algorithme d'arbitrage entre les différentes file d'attente à servir.

Puis, nous avons proposé un nouvel algorithme d'ordonnancement des cellules [26,36]. Cet algorithme basé sur l'étude de l'algorithme WF2Q, l'optimise en améliorant de manière notable l'entrelacement des cellules issus de différents flux qui convergent vers le même lien de sortie. Cela a pour conséquence de produire des flux plus stables, c'est à dire dont la variation du délai (gigue) est faible. Ce qui favorise la gestion des flux de données multicasts. Nous démontrons que l'algorithme conserve les propriétés essentielles à de tels algorithmes: faible complexité, "work conserving".



previous up next contents Précédent : Logiciels Remonter : Projet ADP, Algorithmes distribués et Suivant : Actions industrielles