Spécification et Modélisation du protocole d élection d un leader dans le IEEE 1394 (FireWire)



Documents pareils
Algorithmique des Systèmes Répartis Protocoles de Communications

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

L exclusion mutuelle distribuée

Texte Agrégation limitée par diffusion interne

Introduction à la théorie des graphes. Solutions des exercices

Algorithmique répartie

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Ebauche Rapport finale

Chapitre 4 : Exclusion mutuelle

MIS 102 Initiation à l Informatique

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Introduction aux algorithmes répartis

RCS : Rich Communication Suite. EFORT

Image d un intervalle par une fonction continue

Les diagrammes de modélisation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Génération de code à partir d une spécification B : Application aux bases de données

Université de Sherbrooke, Département d informatique

Cours de Master Recherche

Arbres binaires de recherche

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Problèmes de Mathématiques Filtres et ultrafiltres

Équations non linéaires

MEMOIRE. Présenté à. L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTERE

ARBRES BINAIRES DE RECHERCHE

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Processus d Informatisation

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Chap. 3: Le modèle de données entité-association (E.A.)

Conception des systèmes répartis

Algorithmes récursifs

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Utilisation des tableaux sémantiques dans les logiques de description

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Dérivées d ordres supérieurs. Application à l étude d extrema.

Problèmes liés à la concurrence

La Certification de la Sécurité des Automatismes de METEOR

TP N 57. Déploiement et renouvellement d une constellation de satellites

Les structures de données. Rajae El Ouazzani

Evolution d Applications. Une Approche pour l Evolution des Systèmes Logiciels. Exemple : Le Serveur WWW. Applications Considérées

UML et les Bases de Données

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Projet CoDrive : utilisation des données de véhicules communicants, intégration avec un système de gestion de trafic (119)

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Qualité du logiciel: Méthodes de test

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Model checking temporisé

Intégration et probabilités TD1 Espaces mesurés Corrigé

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Module BDR Master d Informatique (SAR)

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Correction du baccalauréat ES/L Métropole 20 juin 2014

Recherche dans un tableau

Programmation Par Contraintes

chapitre 4 Nombres de Catalan

L annuaire et le Service DNS

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Jean-Philippe Préaux

gestion des processus La gestion des processus

MATH ELEMENTS DU CALCUL DES PROBABILITES

Intégration et probabilités TD1 Espaces mesurés

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

LE PROBLEME DU PLUS COURT CHEMIN

Chapitre 5 : Flot maximal dans un graphe

Continuité et dérivabilité d une fonction

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Raisonnement probabiliste

III- Raisonnement par récurrence

Conception et réalisation d uned architecture tolérant les intrusions pour des serveurs Internet

3 Approximation de solutions d équations

Fonctions de plusieurs variables

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Resolution limit in community detection

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Chapitre 1: Introduction générale

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

n N = u N u N+1 1 u pour u 1. f ( uv 1) v N+1 v N v t

Introduction au maillage pour le calcul scientifique

SIP. Sommaire. Internet Multimédia

Rapport d activité. Mathieu Souchaud Juin 2007

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

CCP PSI Mathématiques 1 : un corrigé

CH.6 Propriétés des langages non contextuels

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

OCL - Object Constraint Language

Atelier B. Prouveur interactif. Manuel Utilisateur. version 3.7

Théorie de la Programmation

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Introduction à la Programmation Parallèle: MPI

Transcription:

Spécification et Modélisation du protocole d élection d un leader dans le IEEE 1394 (FireWire) Jean-Raymond Abrial & Dominique Cansell & Dominique Méry October 16, 2001

B système Méthodes de développement incrémentale de système (logiciel ou non). Sémantique basée sur B-événementiel (WP+ordre) ÉtudeS de cas (J.-R. Abrial) Portes, Iles, Agent mobile, Services téléphoniques GC, Exclusion mutuelle, Changement de phase, Algos. Recherche, Tris itératifs, Tris récursifs,...

B-système But (simuler le fonctionnement complet d un système) Données (avec leurs propriétés) Événements asynchrones (déclenchement, action)

Une étude de cas: L agent mobile Il s agit de distribuer des messages à un agent mobile C est un algorithme de Luc Moreau qui a fait la preuve de son algorithme avec COQ. 11 000 lignes de COQ et utilisation de nombreuses bibliothèques de COQ Il n a pas utilisé le RAFFINEMENT

Raffinement But: enrichissement du modèle Nouveaux objets de base Nouvelles données (modèle plus riche) Données logicielles, matérielles, de communication Étude du couplage entre ces entités Nouveaux événements (timing plus fin)

But du RAFFINEMENT Comprendre de mieux en mieux le système Distribuer la complexité du système Distribuer les difficultés de la preuve Validation du système Le raffinement (invariance & comportement)

Preuves Conservation des propriétés (lors du déclenchement d un événement) Raffinements corrects des événements (déclenchements pas plus fréquents) Pas de bloquages prématurés (les événements raffinés ne disparaissent pas) Pas d obstructions (de la part des nouveaux événements)

Forme des événements evt = any x where P (x, v) then S(v, x) end in- evt est le nom de l événement, x sont des vrbls locales (non-dét. terne), v, w,... sont des vrbls d état, P (x, v) est une condition, S(v, x) est la substitution. x P (x, v) est la garde

Les substitutions v, w := E(v, w), F (v, w) v := E(v, w) w := F (v, w) v, w : ( v = E(v 0, w 0 ) w = F (v 0, w 0 ) ) x : P = ANY x WHERE [x, x 0 := x, x]p THEN x := x

Les substitutions (PO) ANY x WHERE P (x, v) THEN v : R(x, v, v 0 ) END I(v) P (x, v) R(x, v, v) I(v ) ANY x WHERE P (x, v) THEN v := E(x, v) END I(v) P (x, v) I(E(x, v))

Raffinement d événement ANY x WHERE P (x, v) THEN v := E(x, v) END ANY y WHERE Q(y, w) THEN w := F (y, w) END I(v) J(v, w) Q(y, w) x.( P (x, v) J(E(x, v), F (y, w))) J(v, w) est un invariant sur w et un invariant de collage entre v et w

Raffinement S S []U si S S skip U I grd(s ) grd(u) I V N I (V = n [U](V < n))

Anticipation Dans l Atelier B il faut déclarer tous les événements finaux dans la première machine abstraite. En général ces nouveaux événements raffinent tous skip (sur les variables abstraites, pas les nouvelles). Pour s assurer que les nouveaux événements ne prennent pas la main indéfiniment il faut une obligation de preuve qui assure que quelque chose décroit. new = BEGIN y : ( I(y) V (y) < V (y 0 )) END

B système Des études de cas, des études de cas, encore des études de cas l election d un leader dans le IEEE 1394

Les définitions SETS ND CONSTANTS g, r PROPERTIES g ND ND Soit un graphe g g = g 1 Le graphe g est symétrique ID(ND) g = le graphe g n est pas réflexif

Les définitions r ND (ND ND) le graphe est connexe (rr est défini en un point); le graphe ne contient pas de circuits (fonctionalité de rr) (n, f).( n ND f ND ND ( ((n, f) r) ( f ND {n} ND f g S.( S P(ND) n S f 1 [S] S ND S ) ) ) )

Rappel dans un arbre tous les nœuds sauf la racine ont un père unique (fonction) si card(nd) = k alors f ND {n} ND contient k 1 arcs k 1 arcs connexe sans cycle connexe sans cycle arbre

Les assertions (n, f).( n ND f ND ND (n, f) r f f 1 = ) ; Cette première assertion énonce que l arbre f i qui recouvre le graphe en nn est disjoint de son inverse (intuitivement, c est parce qu un arbre n a pas de circuits). (n, f).( n ND f ND ND (n, f) r f f 1 = g ) Cette dernière assertion énonce que l arbre f i de racine nn qui recouvre le graphe et son inverse fi 1 couvre complétement le graphe g. Autrement dit (en mettant ensemble cette assertion et la première), on peut constater que fi et fi 1 partitionnent le graphe g.

Premier Echec la preuve de la première assertion: OK la preuve de la deuxième: ECHEC Et pourtant, cela semble vrai. Nous avons défini rr avec en plus f f 1 = g et demontré la fonctionnalité de rr (preuves longues) Il nous manquait une propriété

(n, f).( n ND f ND ND (n, f) r (x, y).( (x, y) g S.( S P(ND) n S (f {x y}) 1 [S] S ND S ) S.( S P(ND) n S (f {y x}) 1 [S] S ND S ) )

Eureka! Nous l avons ajouté dans les propriétés

Eureka! Nous l avons ajouté dans les propriétés Mais cette propriété est formellement démontrée dans un autre projet.

Les assertions techniques (n, f, y).( n ND f ND ND (n, f) r y, n g y, n f ) ; (n, f, x, y).( n ND f ND ND (n, f) r x, y g x n y n ((x, y) f (y, x) f) ) ; Les deux assertions suivantes sont des lemmes techniques servant à démontrer l égalité.

Les variables et invariants de typage VARIABLES ld, tr INVARIANT ld ND tr ND ND

L événement: élection du leader elect = BEGIN ld, tr : ( ld ND tr ND {ld} ND tr g S.( S ND ld S tr 1 [S] S ND S ) ) END ; Cet événement énonce le résultat final : un leader ld est élu. On construit en même temps un arbre tr : c est l arbre unique qui recouvre le graphe et dont la racine est précisément ld.

L événement progr (anticipation) progr = BEGIN tr : ( tr ND ND CARD(tr) > CARD(tr$0)) END; Cet événement, à ce niveau, élabore une relation tr, tout en garantissant que son cardinal augmente strictement.

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Vers le premier raffinement

Le premier raffinement L essence de l algorithme est le suivant: Un nœud demande à un de ses voisins d être son père. Seul un nœud qui a eu une demande d être son père par l ensemble de ses voisins, sauf un, peut demander à ce dernier d être son père. Le processus commence à partir des feuilles (il y en a toujours dans un arbre) Le nœud qui a eu une demande de tous ses voisins est le leader. L ensemble des arcs représentant les différentes demandes est l arbre de recouvrement dont la racine est le leader.

Les variables et les invariants VARIABLES ld, tr INVARIANT DOM(tr) (tr tr 1 ) = DOM(tr) g tr ND ND tr est une forêt S.( S ND RAN(tr) DOM(tr) S tr 1 [S] S DOM(tr) S) tr tr 1 =

Les assertions x.( x ND g[{x}] = tr 1 [{x}] x / DOM(tr) ND DOM(tr) {x} S.(S ND x S tr 1 [S] S ND S) (x, tr) r )

L élection du leader elect = ANY x WHERE x ND g[{x}] = tr 1 [{x}] THEN ld := x END ; tous les arcs de g partant de x sont dans tr 1 ; avec les assertions nous savons que tr est un arbre de racine x; c est l arbre de recouvrement et x est le leader

L événement progrès progr = ANY x, y WHERE (x, y) g tr (y, x) / tr g[{x}] = tr 1 [{x}] {y} THEN tr := tr {x y} END On considère un couple (x, y) qui est relié par g mais pas par tr ni par tr 1. Mais tous les autres liens g qui arrivent en x sont aussi reliés par tr. Cet événement fait décroitre le variant card(g) card(tr).

Vers le second raffinement

Vers le second raffinement

Vers le second raffinement

Vers le second raffinement

Vers le second raffinement

Vers le second raffinement

Vers le second raffinement

Le deuxième raffinement Dans ce raffinement la demande ne se fait pas en un coup. Cela ce fait par envoi d un message pour une demande et envoi d un acquittement pour l acceptation. il faut donc attendre l acquittement pour réaliser un pas de progr il faut recevoir un message avant d envoyer un acquittement il faut être dans les conditions de progr abstrait pour envoyer un message deux messages peuvent se croiser; c est le cas de contention; nous l avons reglé de plusieurs façons: en allouant des numéros aux différents nœuds (c est le plus petit qui gagne), en enlevant les deux messages comme pour le vrai protocole. Dans ce cas les deux nœuds choississent un temps d attente (petit ou grand) et recommencent.

Les variables VARIABLES ld, tr, msg, ack INVARIANT msg ND ND ack ND ND tr ack ack msg msg g

Les invariants (x, y).( (x, y) msg ack (y, x) / msg (x, y) msg ack (y, x) msg ack (x, y) ack tr (x, y) g tr (y, x) / tr g[{x}] = tr 1 [{x}] {y} ) ack ack 1 =

L envoi d un message send msg = ANY x, y WHERE (x, y) g tr (y, x) / tr g[{x}] = tr 1 [{x}] {y} x / DOM(msg) THEN msg := msg {x y} END ; (x, y) n est pas dans tr; x n est pas le père de y; tous les voisins de x sauf y sont reliés à x par tr; x envoie un message à y pour lui demander d être son père

L envoi d un acquittement send ack = ANY x, y WHERE (x, y) msg ack (y, x) / msg x / DOM(ack) THEN ack := ack {x y} END; x a demandé à y d être son père; y ne lui a pas encore envoyé d acquittement; y n a pas demandé à x d être son père (sinon contentieux); x n a pas encore reçu d aquittement x y ack veut dire que y a envoyé un acquittement à x; y peut envoyer plusieurs acquittements mais x ne peut en recevoir qu un!

Le contentieux contention = ANY x, y WHERE (x, y) msg ack (y, x) msg ack THEN msg := {y} msg END; x a envoyé un message à y y a envoyé un message à x; ces messages n ont pas été acquitté; y (et x) enlève le message. y peut renvoyer un nouveau message

Le progrès progr = ANY x, y WHERE (x, y) ack tr THEN tr := tr {x y} END y a envoyé un acquittement à x; l arc (x, y) n est pas encore dans la forêt tr; maintenant oui; x sait que y est son père; y sait que x est son fils

Le troisième raffinement Dans ce raffinement on commence la localisation de l information ld, tr chaque nœud doit connaître ses voisins chaque nœud doit connaître les voisins qui lui ont demandé d être leur père; à la fin: il saura s il est le leader ou non il connaitra son père et l ensemble de ses fils.

Les définitions CONSTANTS nb représentation du graphe sous la forme d une fonction de voisinage. C est la façon de localiser le graphe PROPERTIES nb ND P(ND) x.(x ND nb(x) = g[{x}])

Les variables VARIABLES ld, tr, msg, ack sn, fonction INCLUSE dans la fonction fils de l arbre tr. C est la façon de localier l arbre INVARIANT sn ND P(ND) x.(x ND sn(x) tr 1 [{x}])

Les invariants importants Deux invariants FONDAMENTAUX pour prouver le renforcement de la garde de contention, qui est l événement de ROOT-CONTENTION (x, y).((x, y msg) (y, x) msg (y, x) / ack) (x, y).( x, y msg z.(z g[{x}] z y z, x tr) )

L élection du leader elect = ANY x WHERE x ND nb(x) = sn(x) THEN ld := x END; Tous les fils de x lui ont demandé d être leur père. C est le leader. La décision est bien prise localement.

L envoi d un message send msg = ANY x, y WHERE x ND y ND x / DOM(msg) (y, x) / ack y / sn(x) nb(x) = sn(x) {y} THEN msg := msg {x y} END ; Le nœud local est x; y est le nœud unique formant la différence entre les deux ensembles nb(x) et sn(x); x n a pas encore envoyé de message; x n a pas encore envoyé d acquittement à y x envoie à y un message.

L envoi d un acquittement send ack = ANY x, y WHERE (x, y) msg ack y / DOM(msg) THEN ack := ack {x y} END; Le nœud local est y; il a reçu un message de x il n a pas envoyé de message à x; y envoie donc à x un acquittement

Le contentieux contention = ANY x, y WHERE (x, y) msg ack y DOM(msg) THEN msg := {y} msg END; Le nœud local est y; il a reçu un message de x il a envoyé un message à x; c est bien le contentieux. C est pour cet événement qu il a fallu ajouter les deux invariants fondamentaux

Le progrès progr = ANY x, y WHERE (x, y) ack x / DOM(tr) THEN tr := tr {x y} END ; Le nœud local est x; il lit l acquittement de y; x envoie à y la confimation. Il ACCEPTE d être son fils. L arbre tr apparait maintenant comme étant juste un CANAL DE CONFIRMATION entre le fils x et son père y

La confirmation (nouveau) receive cnf = ANY x, y WHERE (x, y) tr x / sn(y) THEN sn(y) := sn(y) {x} END Le nœud local est y. C est un nouvel événement qui lit le canal de confirmation et augmente l ensemble local sn(y)

un quatrième raffinement lors de ce raffinement on termine la localisation VARIABLES ld, sn, tr, msg, ack, bm, bt, ces deux variables sont des "booléens locaux". Ils sont représentés pour l instant par des ensembles. Elles "localisent" les variables msg et tr. Chaque nœud n envoie qu un seul message et qu une seule confirmation. ba cette variable localise l acquittement. Un nœud peut envoyer plusieurs acquittements. INVARIANT bm = DOM(msg) bt = DOM(tr) ba ND P(ND) x.(x ND ba(x) = ack 1 [{x}])

L envoi d un message send msg = any x, y where x ND y ND x / bm y / ba(x) y / sn(x) nb(x) = sn(x) {y} then msg := msg {x y} bm := bm {x} end ; le nœud local est x; tous les fils de x sauf y lui ont demandé d être leur père; x n a pas envoyé d acquittement y (cas du contentieux); x envoie un message à y

L envoi d un acquittement send ack = any x, y where (x, y) msg x / ba(y) y / bm then ack := ack {x y} ba(y) := ba(y) {x} end; Le nœud local est y qui reçoit un message de x; y n a pas encore envoyé l acquittement à x; y n a pas encore envoyé de message (sinon contentieux)

Le contentieux contention = any x, y where (x, y) msg x / ba(y) y bm then msg := {y} msg bm := bm {y} end; le nœud local est y; le message (x, y) que x a envoyé à y est reçu par y; y avait envoyé un message (c est forcement à x) mais y n a pas envoyé d acquittement à x; y enlève le message et se permet d en renvoyer un autre

Le progrès progr = any x, y where (x, y) ack x / bt then tr := tr {x y} bt := bt {x} end ; Le nœud local est x; l acquittement (x, y) n a pas été lu par x; x lit cet acquittement et envoie une confirmation à y

La confirmation receive cnf = any x, y where (x, y) tr x / sn(y) then sn(y) := sn(y) {x} end

À suivre... localiser ba, bt sous forme de booléens, ba comme tableau de booléens. localiser sn et nb sous forme de tableau et parcourir cette table pour trouver y tel que nb(x) = sn(x) {y} définir M SG, ACK les messages et les acquittements qui circulent dans le réseau. MSG = msg ack et ACK = ack tr. ces raffinements sont techniques et ne présentent pas de grandes difficultés.