Université Joseph Fourier
Département Licence Sciences & Technologies
Rapport de stage
Simulation d'algorithmes auto-stabilisants
DIAKITE Moussa
Laboratoire d'accueil : Verimag
Directeur du laboratoire : Nicolas HALBWACHS
Responsables du stage : Karine ALTISEN et Stéphane DEVISMES
Licence Sciences et Technologies 2ème année - Mathématiques et Informatique
Année Universitaire : 2014 – 2015
Table des matières
Remerciements :.................................................................................................. 3
Introduction :....................................................................................................... 4
Présentation du laboratoire :................................................................................4
1- Lalgorithmique distribuée auto-stabilisante :.................................................5
2- Le modèle à état:............................................................................................. 5
3- Le simulateur :................................................................................................ 6
4- Quelques algorithmes simulés et étudiés :......................................................7
4.1- L'algorithme de Dijkstra :.........................................................................7
4.2- L'arbre couvrant en largeur (BFS):...........................................................8
4.3- Un exemple de composition d'algorithme :............................................10
4.4- La l-exclusion :....................................................................................... 11
Conclusion :...................................................................................................... 11
Annexe.............................................................................................................. 13
Remerciements :
Tout d'abord j'adresse mes remerciements à l'administration de l'université Joseph Fourier pour
s'être occupée des démarches administratives relatives à ce stage. J'adresse toute ma reconnaissance
à mes encadrants Karine ALTISEN et Stéphane DEVISMES pour leur accueil, leurs conseils et
leur disponibilité durant toute la durée de mon stage. Enfin Je tiens à remercier Anaïs Durand,
doctorante pour ses conseils et sa disponibilité et le laboratoire Verimag pour son accueil.
Introduction :
J'ai toujours eu un intérêt pour les preuves d'algorithmes. Dans cette optique j'ai voulu effectuer un
stage qui me permettait d'avoir une première approche sur les preuves d'algorithmes. Ainsi l'objectif
de mon stage était la simulation d'algorithmes distribués auto-stabilisants. La simulation des
algorithmes me permettait de mieux comprendre leur preuve. Afin de mieux décrire mon travail
durant mes 2 mois de travail à Verimag, il me paraît logique une brève présentation de ce
laboratoire, ensuite de donner quelques définitions importantes à la compréhension de ces
algorithmes, de décrire le simulateur et certains des algorithmes que j 'ai simulés. Enfin je conclurai
par les apports que j'ai pu tirer de ce stage.
Présentation du laboratoire :
Verimag est un laboratoire de pointe dans le domaine des systèmes embarqués situé au centre
équation dans le campus universitaire de Grenoble. C'est une unité de recherche commune à
l’Université Joseph Fourier (UJF - Grenoble 1)
au CNRS (INS2I)
et à Grenoble-INP
Verimag joue un rôle important dans l’enseignement à l’Université Joseph Fourier et à Grenoble-
INP et dans la formation de doctorants.
Verimag est organisé en trois équipes :
Synchrone : Langages Synchrones et Systèmes Réactifs
DCS : Systèmes Répartis et Complexes
Tempo : Systèmes Temporisés et Hybrides
1- Lalgorithmique 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 :
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !