1- L’algorithmique distribuée auto-stabilisante :
•Un processus ou nœud est une entité autonome de calcul (ordinateur, capteurs etc ...)
•Un système distribué ou réseau est un ensemble de processus capables d'échanger des
informations entre elles à travers des liens de communication
•Un algorithme distribué est algorithme déployé dans un système distribué.
•Une configuration est l'ensemble des états des processus à une exécution.
•Un algorithme distribué auto-stabilisant est un algorithme qui à partir d'une configuration
quelconque du système, atteint en un temps fini une configuration où tous les suffixes
d'exécutions sont correctes pour la tâche pour laquelle il a été conçu.
•Un algorithme distribué auto-stabilisant est silencieux s'il atteint une configuration où
les variables de communication restent fixes pour toutes exécutions.
•La topologie d'un réseau est la forme du réseau.
Un algorithme auto-stabilisant ne nécessite donc pas d'initialisation du système. Il est donc
tolérant aux pannes(perturbations du système) .
Le réseau est représenté par un graphe où les nœuds sont les sommets du graphe et les liens de
communications sont les arcs entre les sommets du graphe.
2- Le modèle à état:
C'est un modèle théorique dans lequel la mémoire des processus est localement partagée. Dans un
graphe, les canaux de communication désignent la possibilité d'un processus de lire dans la
mémoire d'un autre.
Les nœuds sont considérés comme des processus concurrents s'exécutant sur une seule unité de
traitement. Dans la pratique ce modèle n'est pas utilisable. On utilise donc le modèle à passage de
message où les processus peuvent s'envoyer des messages entre eux.
Durant mon stage j'ai travaillé principalement sur le modèle à état. Dans ce modèle le programme
de chaque processus est représenté par un ensemble fini d'actions ou de règles de la manière
suivante :
( <étiquette> :: ) <prédicat> → <affectations>
L'étiquette permet de nommer une action.
Le prédicat ou garde est un booléen sur les variables d'un processus et de ses voisins.
Les affectations ou actions modifient les variables des processus.
Si le prédicat est vrai, la règle est activable. Une règle est exécutée si et seulement si elle est
activable. Un processus est activable s'il a au moins une règle activable. Les processus exécutent
simultanément à chaque configuration une de leur règles activables. La configuration est dite
terminale si aucun des processus n'est activable.
Le démon est un oracle qui sélectionne une partie des processus activables et les exécute tant que la
configuration n'est pas terminale.
Plusieurs types de démons ont été défini dans la littérature, parmi lesquels :