Logo ÉTS
Session
Cours
Responsable(s)

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

La matière ne sera pas nécessairement présentée dans cet ordre. Toutefois, l’ensemble des sujets sera présenté dans le cadre de ce cours. Les heures sont des heures approximatives d’enseignement pour chaque sujet et incluent le temps alloué à l’examen intra-trimestriel et à la revue pour l'examen final.

1.  Fondements (7 heures)

  • Introduction aux systèmes distribués
  • Caractéristiques des systèmes distribués
  • Cas d'étude: BigTable, Hbase, Cassandra, Spanner
  • Théorème de CAP

2.  Synchronisation de temps (7 heures)

  • Horloge physique
  • Temps logique

3. Coordination de processus (8.5 heures)

  • Exclusion mutuelle et élection de leader
  • Algorithmes de consensus: Paxos, Raft

4.  Partage de données (9.5 heures)

  • Réplication
  • Modèles de cohérences
  • Système de fichiers distribué: GFS

7. Chaînes de blocs (7 heures)

  • Problème des généraux byzantins
  • Cryptographie asymétrique
  • Bitcoin: clés et script
 

Laboratoires et travaux pratiques

Des exercices seront donnés environ à chaque semaine durant les cours. Ces exercices ne seront pas corrigés. Les solutions aux questions seront données et discutées durant les cours, une semaine après que les exercices sont publiés. Le but de ces exercices est d'approfondir les connaissances sur le matériel vu en classe et de se préparer pour les examens.

Trois laboratoires seront donnés, un à chaque mois. Le but de ces laboratoires est de mettre en pratique le matériel appris durant les cours. Les étudiants devront concevoir, implémenter, et évaluer des systèmes distribués qui utilisent les mécanismes et techniques du cours.


Utilisation d'outils d'ingénierie

Les laboratoires sont développés en langages C/C++ ou JAVA dans un environnement Posix ou Windows.