Séminaire à l’université de Reims, le 5 avril 2007 Stabilisation instantanée efficace Alain Cournier, Stéphane Devismes et Vincent Villain Stabilisation Auto-stabilisation (Dijkstra, 1974) – Un système auto-stabilisant, quel que soit son état initial, converge en un temps fini vers un comportement vérifiant ses spécifications. Stabilisation instantanée (Bui, Datta, Petit et Villain, 1999) – Un système instantanément stabilisant, quel que soit son état initial, vérifie toujours ses spécifications. Applications : - Tolérance aux fautes transitoires, systèmes dynamiques Stabilisation instantanée efficace 2 Algorithme à vagues Un algorithme à vagues P vérifie [Tel, 2001] : 1. Chaque exécution (vague) de P se déroule en un temps fini 2. Chaque exécution de P contient au moins une décision 3. Durant une exécution, chaque décision est causalement précédée par au moins une action sur chaque processeur Décision : tâche « terminée » Actions de démarrage Exemples : - Propagation d’informations avec retour (PIR) Circulation de jetons Stabilisation instantanée efficace 3 Algorithme à vagues auto-stabilisant 1.X 2.X 3.X 4.X N.X F(.) Stabilisation instantanée efficace F(X) ≠ F(X) 4 Algorithme à vagues instantanément stabilisant 1.X F(.) Stabilisation instantanée efficace F(X) 5 Modèle à états Mémoire localement partagée Algorithme sous forme de règles gardées : Garde(p) → Traitement(p) Stabilisation instantanée efficace 6 Transformateur Algorithme non tolérant aux fautes Algorithme instantanément stabilisant Stabilisation instantanée efficace 7 Les autres transformateurs Transformateur auto-stabilisant de [Katz et Perry, 1993] (modèle à passage de messages) Stabilisation instantanée efficace 8 Les autres transformateurs Transformateur instantanément stabilisant de [Cournier, Datta, Petit et Villain, 2003] (modèle à états) Stabilisation instantanée efficace 9 Transformateur de [Cournier et al, 2003] KP Auto(P) CDPV Snap(P) P Stabilisation instantanée efficace 10 Transformateur de [Cournier et al, 2003] Calcul périodique d’état global du système – Inconvénients : Prédicat Réseau identifié Nombre de calculs d’état global non bornable – Conséquence : nombre d’étapes de calculs pour une exécution non bornable Stabilisation instantanée efficace 11 Transformateur instantanément stabilisant efficace Stabilisation instantanée efficace 12 Exemple : Circulation de jeton en profondeur r Prédicat PriseEnMain(r) Stabilisation instantanée efficace 13 Exemple : Circulation de jeton en profondeur r Stabilisation instantanée efficace 14 Réinitialisation : PIR PIR : – – Phase de diffusion : Les processeurs stoppent l’exécution du protocole initial Phase de retour : les variables du protocole initial sont réinitialisées PIR instantanément stabilisant [Cournier, Devismes et Villain, 2006] – Nombre borné d’étapes de calculs par exécution Stabilisation instantanée efficace 15 Notre transformateur Algorithme à vagues mono-initiateur Décision à l’initiateur Exemples : – Parcours en profondeur – Calcul d’arbre en largeur avec détection de terminaison Applications : – Calcul d’arbre couvrant – Exclusion mutuelle – Diffusion Stabilisation instantanée efficace 16 Notre transformateur Pour tout algorithme à vagues P mono-initiateur avec décision à l’initiateur, on a : Stabilisant(P) ⇒ ∃ PriseEnMain(r) ⇍ Stabilisation instantanée efficace 17 Stabilisation instantanée efficace 18 Aucun calcul d’état global ⇒ Efficacité HC93 Opodis’04 SSS’05 DFST Mémoire Θ(log n) Θ(n log n) Θ(log n) Θ(log n) Exécution (rondes) Θ(Dn) Θ(n) Θ(n²) Θ(n) Exécution (étapes) ∞ Θ(n²) Θ(∆n3) Θ(∆n3) F I I I Θ(1) Θ(1) Θ(n) Θ(1) Equité Surcoût Stabilisation instantanée efficace 19 Extention de la circulation de jeton Extention directe stabilisante efficace : exclusion mutuelle auto- – Sûreté vérifiée dès le 3ème jeton Avec une légère modification : Exclusion mutuelle instantanément stabilisante – Spécification : Tout processeur demandeur finit par entrer en SC (Vivacité) Si un processeur demandeur est en SC alors il est le seul en SC (Sûreté) Stabilisation instantanée efficace 20 Conclusion Simplicité Solution avec un démon distribué inéquitable Efficacité Extension : – Exclusion mutuelle instantanément stabilisante Stabilisation instantanée efficace 21 Perspectives Peut-on obtenir un transformateur efficace pour des classes de protocoles plus larges ? Existe-t-il une propriété plus faible que la propriété de « prise en main » permettant d’obtenir un transformateur efficace ? Peut-on obtenir la propriété de « prise en main » automatiquement ? Stabilisation instantanée efficace 22 Stabilisation instantanée efficace 23