S7 INF Algorithmes et systèmes distribués

Présentation

Cette UE porte sur l'étude des principes fondamentaux des applications distribuées et sur la programmation d'algorithmes pour résoudre les problèmes classiques de ce domaine via une approche par processus communicants.

Pré-requis nécessaires

  • "Systèmes d'exploitation
  • "Algorithmique des graphes "
  • "Réseaux IP : programmation réseaux"

Objectifs

Cette UE présente globalement les différents modèles de systèmes distribués (notamment en termes de communication). L'accent est mis sur la nécessité d'appuyer la conception d'un algorithme distribué sur un modèle synchrone de processus communicants permettant de garantir sa robustesse, en faisant abstraction de l'environnement technologique d'implémentation.

Ces notions sont illustrées par des exemples significatifs d'algorithmes distribués mis en œuvre dans les réseaux informatiques, au niveau des couches liaison, réseau et transport, et par des algorithmes classiques du domaine. Les algorithmes distribués abordés sont notamment : horloges de lamport, exclusion mutuelle, election, arbre de recouvrement, calculs globaux adaptés à une topologie, commutation de messages, routage de messages.

Le langage support pour l'expression et l'expérimentation des algorithmes est le langage Go. On étudie plus particulièrement dans ce langage la capacité de conception de processus poids-léger communicants, interagissant via des canaux synchrone ou asynchrone de type CSP (communicating sequential processes)

Compétences visées

  • Savoir concevoir des algorithmes distribués fiables, via l'utilisation du modèle de programmation par processus communicants
  • Savoir programmer des algorithmes distribués en langage Go

Bibliographie

Distributed algorithms, N.Lynch ; Morgan Kaufmann, 96

Langue d'enseignement

Français