Cour algorithme Distrib 2eme partie

108
Architectures et Algorithmes Avancés Mohamed Mosbah - LaBRI ENSEIRB Université Bordeaux 1 Nesrine OULED ABDALLAH - ReDCAD 1

Transcript of Cour algorithme Distrib 2eme partie

Page 1: Cour algorithme Distrib 2eme partie

Architectures et Algorithmes Avancés

Mohamed  Mosbah  -  LaBRI

ENSEIRB    Université  Bordeaux  1

Nesrine OULED ABDALLAH - ReDCAD

1

Page 2: Cour algorithme Distrib 2eme partie

Objectifs  du  cours •Connaître  les  caractéristiques  d’un  système  distribué (SD)

• Comprendre  les  concepts  et  les  paradigmes fondamentaux  d’un  SD,  au  delà  des  technologies •Etudier  certains  problèmes  fondamentaux  (élection, arbre  recouvrant,  exclusion  mutuelle,  pannes)

•Pouvoir  raisonner  dans  un  environnement  distribué. Par  exemple : concevoir  des  applications  distribuées, les  tester,  les  prouver,   les  valider  et  les  implanter.

2

Page 3: Cour algorithme Distrib 2eme partie

Exemples de questions abordés 

dans ce  cours •Comment  décrire  une  exécution  répartie ? •Comment  déterminer  des  propriétés  globales  à  partir d’observations  locales ?

•Comment  coordonner  des  opérations  en  l’absence d’horloge  commune ?

•Quelles  sont  les  critères  de  qualité  pour  une  application distribuée ?

•Comment  garantir  la  cohérence  (ou la sécurité) d’informations  distribuées ?

• Pas  sûr  que  vous  aurez  toutes  les  réponses…. 3

Page 4: Cour algorithme Distrib 2eme partie

Plan  du  cours

• Introduction  aux  systèmes  distribués

• Architectures  des  systèmes  distribués  et  communication • Modèles  de  l’algorithmique  distribuée • Calculs  locaux  et  calcul  distribué  d’arbre  recouvrant • Algorithmes  d’Election • Algorithmes de Rendez Vous(RDV),algorithme

probabiliste d’élection  locale • Terminaison  distribuée

• Gestion  de  la  concurrence:  Temps,  Synchronisation,  gestion des conflits

• Implémentation:  Plateforme  Visidia

4

Page 5: Cour algorithme Distrib 2eme partie

Cours  1: Introduction  aux  systèmes  distribués

5

Page 6: Cour algorithme Distrib 2eme partie

I/  Introduction  à  l’informatique  distribuée

•L’informatique répartie : état de fait  de plusieurs  applications,  et  une  mutation… -Besoin  propre  des  applications

•Intégration  :  applications  séparées,  ressources  de calcul,  ressources  de  gestion  de  données,  etc •Nouvelles  applications:  informatique  omniprésente

- Possibilités techniques •Interconnexion généralisée  :  convergence

informatique télécom

• Performance  et  coût  des  machines  et  des  réseaux

6

Page 7: Cour algorithme Distrib 2eme partie

Les  progrès  technologiques

• Avant  les  années  80,  les  ordinateurs  étaient encombrants  et  chers  (les  systèmes  centralisés)

• A partir de la  mi 80, deux nouveautés:

- Microprocesseurs  (moins  chers  et  très  rapide) - LANs  et  WANs

• Les  ordinateurs  en  réseaux  non  seulement faisables,  mais  simples.

7

Page 8: Cour algorithme Distrib 2eme partie

Technologie  +  besoins évolution évolution

technologique des  besoins banalisation  et  capillarité structure  des  entreprises  et  des

des  réseaux  de  télécommunications organisations  :  communication et  partage  (ex.  Intranet)

performance  des  voies  de télécommunication accès  universel  à 

l’information  (ex. Web)

(débit  et  fiabilité)

rapport  coût/performance des stations

Informatique distribuée  "grand public"

convergence  informatique  et (ex.  vidéo  interactive) téléphonie

Applications  distribuées 8

Page 9: Cour algorithme Distrib 2eme partie

II/  Définitions  d’un  SD

Définition  [Tanenbaum]:  Un  ensemble d’ordinateurs  indépendants  qui  apparaît  à un utilisateur  comme  un  système  unique et cohérent

• Les  machines  sont  autonomes

• Les  utilisateurs  ont  l’impression  d’utiliser un  seul  système.

9

Page 10: Cour algorithme Distrib 2eme partie

Définition  [Lamport]: A  distributed  system  is  one  on  which  I  can’t do  my  work  if some  computer  has  failed  that  I never  heard  of.

Un  système  réparti  est  un  système  qui  vous empêche  de  travailler  quand  une  machine  dont vous  n’avez  jamais  entendu  parler  tombe  en panne.

10

Page 11: Cour algorithme Distrib 2eme partie

Définition (pour ce cours)•Un  système  distribué  est  un  ensemble  d’entités autonomes  de  calcul  (ordinateurs,  PDA, processeurs,  processus,  etc.) interconnectées  et  qui  peuvent  communiquer.

• Exemples: - réseau  physique  de  machines

- Un  logiciel  avec  plusieurs  processus  sur  une  même machine.

11

Page 12: Cour algorithme Distrib 2eme partie

Pourquoi  des  systèmes  répartis  ?

•Aspects  économiques  (rapport  prix/performance)•Adaptation  de  la  structure  d’un  système  à  celle  des applications  (géographique  ou  fonctionnelle) •Besoin  d’intégration  (applications  existantes) •Besoin  de  communication  et  de  partage d’information

•Réalisation  de  systèmes  à  haute  disponibilité •Partage  de  ressources  (programmes,  données, services) • Réalisation  de  systèmes  à  grande  capacité d’évolution

12

Page 13: Cour algorithme Distrib 2eme partie

Exemples: • WWW

• Contrôle  du  trafic  aérien • Système  de  courtage • Banques • Super  calcul  distribué • Système  de  fichier  distribué • DNS • Systèmes  Pair à pair  (P2P)

13

Page 14: Cour algorithme Distrib 2eme partie

Quelques  domaines  d’application des  systèmes  répartis

• CFAO,  Ingénierie  simultanée -Coopération  d’équipes  pour  la  conception  d’un

produit -Production  coopérative  de  documents -Partage  cohérent  d’information

• Gestion  intégrée  des  informations  d'une  entreprise -Intégration  de  l’existant

• Contrôle  et  organisation  d’activités  en  temps  réel • Centres  de  documentation,  bibliothèques -Recherche,  navigation,  visualisation  multimédia • Systèmes  d’aide  à  la  formation

14

Page 15: Cour algorithme Distrib 2eme partie

Propriétés •Le  système  doit  pouvoir  fonctionner  (même 

en  cas de  pannes  de  certains  composants),  et  donner  un résultat  correct

•Le  système  doit   pouvoir  résister  à  des  attaques contre  sa  sécurité  (confidentialité  et  intégrité,  déni de  service,  …)

•Le  système  doit  pouvoir  s’adapter  à  des changements  (modification  de  composants, sacalabilité,  etc)

•Le  système  doit  préserver  ses  performances 15

Page 16: Cour algorithme Distrib 2eme partie

III/  Objectifs  d’un  système  distribué • Transparence  (Masquer  la  répartition)

- Uniformité  des  accès  locaux  et  distants La  séparation  physique  entre  machines  et  les

différences  matériels/logiciels  pour  les  accès  sont invisibles  par  l’utilisateur.

- Localisation  des  ressources  non  perceptible (nom  logique  ex:  URL   http://www.labri.fr/  ) - Migration  des  ressources  possible  sans interférence  avec  la  localisation  physique

(ex.  transférer  un  objet  uniquement  par  son  nom logique  sans  modification  de  ce  nom  et  sans modification  de  l’environnement  d’un  utilisateur)

16

Page 17: Cour algorithme Distrib 2eme partie

- Réplication  de  ressources  non  visibles - Concurrence  d’accès  aux  ressources  non perceptibles (ex.  accès  à  un  même  fichier  ou  une  table 

dans  une base  de  données:  mécanisme  de  verrou  ou 

de transaction) Invisibilité  du  parallélisme  offert  par l’environnement  d’exécution

Tolérance  aux  pannes  permettant  à  un utilisateur  de  ne  pas  s’interrompre  (ou  même 

se rendre  compte)  à  cause  d’une  panne  d’une ressource

17

Page 18: Cour algorithme Distrib 2eme partie

• Ouverture

-Services  offerts  selon  des  règles  standards  qui décrivent  la  syntaxe  et  la  sémantique  de  ces services  (Interfaces  publiées,  ex.  IDL) - Interopérabilité  des  matériels  (de  fournisseursdifférents)

- Portabilité

- Flexibilité  (facilité  d’utilisation  et  de configuration) - Extensibilité  (ajout/MAJ   de  composants 

sans en  affecter  les  autres)

18

Page 19: Cour algorithme Distrib 2eme partie

• Mise  à  l ’échelle (scalability) fonctionne  efficacement  dans  différentes  échelles:

-Deux  postes  de  travail  et  un  serveur  de  fichiers -Réseau  local  avec  plusieurs  centaines  de  postes  de travail  et  serveurs  de  fichiers - Plusieurs  réseaux  locaux  reliés  pour 

former  un Internet

19

Page 20: Cour algorithme Distrib 2eme partie

20 20

Page 21: Cour algorithme Distrib 2eme partie

• Tolérance  aux  pannes -Pannes  franches -Pannes  byzantines -Détection  de  pannes  (difficulté  et  même

impossibilité  de  détection  pour  certains systèmes,  suspicion  de  machines)  e.g. connexion  par  un  navigateur  à  un  serveur distant  qui  répond  pas  !!

-Correction  d’erreurs  (de  fichiers/messages corrompus)

-Reprise  sur  pannes  (techniques   de journalisation  dans  les  BD)

(éventuellement  système  dégradé)

21

Page 22: Cour algorithme Distrib 2eme partie

• Sécurité - Confidentialité  (authentification)

- Intégrité  (protection  contre  les  falsification  et les  corruptions)

- Disponibilité  (accès  aux  ressources) e.g.  commerce  électronique,  banque  en  ligne.

22

Page 23: Cour algorithme Distrib 2eme partie

IV/ Systèmes distribués vs parallèles Systèmes  Parallèles. 

Une  machine  multiprocesseurs  avec  un environnement  du  type  SIMD  (tous  les  processeurs exécutent  le  même  programme  et  ont  une  vision 

uniforme de  l’état  global  du  système). Extensible  à  un  réseau  de  machines  asynchrones 

fortement couplées

Systèmes  distribués.  Processus  indépendants  sur  des machines 

distinctes   et  communiquant  par  échange  de messages  asynchrones  (en  général,  des  réseaux 

faiblement couplés). 23

Page 24: Cour algorithme Distrib 2eme partie

Caractéristiques du parallélisme/distribué

• Objectifs: optimiser les solutions d’un problème (e.g. calcul scientifique, calcul matriciel, tri)• Calcul de complexité : temps et accès mémoire (pas le temps de communication ou nombre de messages)• La topologie est généralement fixe (grille, hypercube, grappes)

24

Page 25: Cour algorithme Distrib 2eme partie

V/  Intergiciel  (Middleware)

• Le  middleware  (intergiciel)  est  la  couche logicielle  située  entre  les  couches  basses (systèmes  d'exploitation,  protocoles  de communication)  et  les  applications  dans  un système  informatique  réparti  (CORBA, EJB,  COM,  etc.).

25

Page 26: Cour algorithme Distrib 2eme partie

• Buts:

- Fournir  une  interface  ou  API  de  haut  niveau  aux applications

- Masquer  l’hétérogénéité  des  systèmes  matériels  et logiciels  sous  jacents

- Rendre  la  répartition  aussi  invisible  (transparente) 

que possible - Faciliter  la  programmation  répartie  (dévelop-pement, évolution,  réutilisation,  portabilité  des  applications)

26

Page 27: Cour algorithme Distrib 2eme partie

Couches logicielles et matérielles dans un SD (le  middleware)

APIs  haut  niveau

Applications, 

services

Middleware système  d’exploitation

APIs  bas  niveau

Réseau,  matériel,

27

Page 28: Cour algorithme Distrib 2eme partie

VI/  Voies  d’études  des  systèmes  distribués

• Approche  « descriptive» - Etude  de  modèles  de  conception 

d’applications réparties  (client serveur,  objets  répartis,  composants répartis,  architecture)

- Etude  de  diverses  classes  de  systèmes,  intergiciels (middleware)  et  applications,  et  de  leurs  modes d’organisation  et  de  fonctionnement

• Approche  « fondamentale»  :  algorithmes distribués

- Etude  des  principes  de  base:  problèmes

fondamentaux,  solutions  connues,  limites « intrinsèques»

–  Exemples : Election d’un chef; Structure de diffusion (arbre  recouvrant),  Exclusion  mutuelle,  Nommage,

Détection  de  la  terminaison 28

Page 29: Cour algorithme Distrib 2eme partie

Une  application  pratique

• Les  virus  sur  nos  machines…

• Solution  actuelle:  protection  individuelle (de  sa  machine)….

• Limites:  vulnérabilité,  « oubli»,  mise  à jour  régulière,  solution  locale  mais  non globale

• Alternative:  développer  des  stratégies globale  de  « destruction  de  virus»

29

Page 30: Cour algorithme Distrib 2eme partie

Difficultés

• Pas  de  connaissance  de  l’état  global • Absence  de  temps  universel  (ou  horloge globale) • Non  déterminisme  (lié  souvent  au  problème du  synchronisme)

• Et  surtout  pas  de  modèle  « universel» 

et standard  pour  l’algorithmique  distribuée 30

Page 31: Cour algorithme Distrib 2eme partie

Handover/ mobilité

RéceptionTV  en  modeIP

WiFi

sur PDA

WiMAX

Carteà WiFi

WiMAX Serveurd'adaptati

on &  de  diffusion Reception TV

Zone classique Site  de  diffusion TV Réseau Local

DVB IP

RéceptionTV  en  modeIP (DomaineIP)

sur  portable CarteDVB T DVB

1 Cable

Réception TV Reception  TVclassique+ DVB T Internet  (Web  +Mail)

RéceptionTV en modeIP

Est ce  que  ça  fonctionne  ? Sécurité   ? 31

Page 32: Cour algorithme Distrib 2eme partie

Exemples de problèmes fondamentaux

• Comment  décrire  une  exécution  répartie  ? • Comment  déterminer  des  propriétés globales  à  partir  d’observations  locales  ? • Comment  coordonner  des  opérations  en l’absence  d’horloge  commune  ? • Quelles  sont  les  critères  de  qualité 

pour  une application  distribuée  ? • Comment  garantir  la  cohérence 

(ou  la sécurité)  d’informations  distribuées  ? 32

Page 33: Cour algorithme Distrib 2eme partie

Vers  des  modèles

• Modéliser - pour  représenter  un  système  en 

simplifiant divers  aspect  du  réel - pour  maîtriser  la  complexité

- Pour observer  et  comprendre  le comportement du  système  réel

- pour  prédire  ou  aider  à  commander  le comportement  d’un  système

- pour  prouver  ce  comportement  à  l’aide  de techniques  formelles

33

Page 34: Cour algorithme Distrib 2eme partie

• Nécessité  de  simplifier  et  maîtriser  la complexité  des systèmes et des algorithmes distribués

• Difficulté  de  l’algorithmique  distribuée  / centralisée:

- Pas  de  connaissance  de  l’état  global - Absence  de  temps  universel  (ou  horloge  globale) - Non  déterminisme  (lié  souvent  au  problème du synchronisme) - Et  surtout  pas  de  modèle 

« universel»  et standard  pour  l’algorithmique  distribuée

34

Page 35: Cour algorithme Distrib 2eme partie

Modèles  de communication synchrone  /asynchrone

Synchrone

on  se  voit  à  12h

ok  on  se   voit  à 

12h Même  notion  de  temps,  transmission

instantanée,  généralement  bornée 35

Page 36: Cour algorithme Distrib 2eme partie

• Communication  asynchrone:

mail:  on  se voit  à  12h

10H

10h45 ok ok

11h:15

est ce  qu’il  sait  que ack  ok 11h:45 j’ai  lu  sa  réponse

est ce  qu’il  sait ack  ack 12h15 que  j’ai  ack  ok

36

Page 37: Cour algorithme Distrib 2eme partie

Architecture  de  systèmes 

et communication

37

Page 38: Cour algorithme Distrib 2eme partie

Les  aspects  matériels

• Système  distribué  en  opposition  à  système centralisé

• Vision  matérielle  d’un  système  distribué: architecture  matérielle - Machine  multiprocesseurs  avec  mémoire-Cluster  (grappe)  d’ordinateurs  dédiés  au calcul/traitement  massif  parallèle

- Ordinateurs  standards  connectés  en  réseau • Vision  logicielle  d’un  système  distribué Ensemble  d’éléments  logiciels  s’exécutant 

sur  un  réseau d’ordinateurs 38

Page 39: Cour algorithme Distrib 2eme partie

Architecture  logicielle/matérielle

• Composants  logiciels:  organisation  ? Coopération  ?  Communication  ?

• Instanciation  de  composants  logiciels  sur 

un réseau  « réel»  de  machines. • Choix  de  l’architecture  adéquate:

- Subdivision  des  fonctionnalités

- Structuration  de  l’application

- Réduction  de  la  complexité 39

Page 40: Cour algorithme Distrib 2eme partie

Architecture  client serveur

• Communication  réalisée  par  dialogue  entre  processus  deux  à  deux. 

Un processus  est  le  client,  l’autre  le  serveur.

• Les  processus  forment  un  système  coopératif.

• Le  résultat  de  cette  coopération  se  traduit  par  un  échange  de  données,  

le client  réceptionne  les  résultats  finaux  livrés  par  le  serveur.

40

Page 41: Cour algorithme Distrib 2eme partie

LE  CLIENT/SERVEUR

• Communication  entre  processus  deux  à  deux:  un  client,  un serveur;

• Ces  processus  forment  un  système  coopératif: -le  client  réceptionne  les  résultats  finaux  délivrés  par  le serveur.

Requête Client Serveur

Réponse Application Service

Modèle  client/serveur   ==>  répartition  des  services  plutôt  que l’application  elle même.

41

Page 42: Cour algorithme Distrib 2eme partie

UTILISATION  DU  MODÈLE  C/S

• S’étend  de  plus  en  plus  vers  tous  les  domaines  d’activités :

- Gestion  des  bases  de  données, - Systèmes   transactionnels,

- Systèmes  de  messagerie,  Web,  Intranet,- Systèmes  de  partage  des  données, - Calcul  scientifique - ...

42

Page 43: Cour algorithme Distrib 2eme partie

Serveurs  de  fichiers

• Les  appels  sur  le  réseau  concernent  les  opérations  de  lecture  écriture 

des fichiers.

• Aucun  filtrage  n ‘est  effectué  sur  les  données  échangées. Appel  de  fichiers

Fichiers

Serveur

Client

Client

43

Page 44: Cour algorithme Distrib 2eme partie

Serveurs  de  bases  de  données

• Les  données  reçues  par  l’application  sont  le  résultat  de  l’exécution  de requêtes  SQL.

• Cette  exécution  se  fait  par  le  serveur  du  SGBD. Appels  SQ L

Données

BD

Serveur de  SG BD

Client

Client

44

Page 45: Cour algorithme Distrib 2eme partie

Serveurs  de  transactions

• Utilisés  pour  implanter  des  systèmes  transactionnels  (OLTP).  Le  client invoque  une  procédure  à  distance  qui  implante  une  transaction.

• Le  serveur  de  transactions  (ou  Moniteur  de  transactions:  MT)  exécute cette  procédure.

Appels  de  procédure  SQ L

BD

Serveur de  SG BD M oniteur  de  Trans.

Application

Application

45

Page 46: Cour algorithme Distrib 2eme partie

Serveurs  de  groupeware

• Le  rôle  du  serveur  de  groupeware  (ou  collecticiel)  est  de  mettre  en commun  et/ou  de  faire  circuler  des  documents  (multimédia)  au  sein d ’une  entreprise.

• On  utilise  parfois   la  technique  dite  du  Push.

Message  du  groupeware

BD

Serveur  de 

groupeware Application

Application

46

Page 47: Cour algorithme Distrib 2eme partie

Serveurs d’informations

• Ce  sont  des  serveurs  qui  mettent  certains  documents  (documents  HTML, images,

…)  à  la  disposition  des  clients

• C’est  le  cas  des  serveurs  HTTP,  FTP,  …

• Peuvent  utiliser  des  programmes  auxiliaires  (ex.  programmes  CGI,

proxys)  pour  augmenter  leur  fonctionnalité.

Requête  HTTP

Document

Serveur  HTTP

Browser

Browser 47

Page 48: Cour algorithme Distrib 2eme partie

Besoins  applicatifs:  calcul  intensif

• Objectifs  :  réduire  le  temps  de  résolution  d’un  problème  en utilisant  un  ordinateur  parallèle  (avec  plusieurs  processus) • Principe:  division  d’un  algorithme  en  tâches  pouvant s’exécuter  en  même  temps  sur  des  processus  différents • Exemples  d’applications:

- Calcul  scientifique

- Météo

- Bioinformatique

- Applications  nucléaires

48

Page 49: Cour algorithme Distrib 2eme partie

Classification  des  architectures parallèles

• Taxonomie  proposée  par  Flynn  dans  les  années  60: - SISD  (Single  Instruction  Single  Data):  c’est  ce  qu’on  trouve  sur une  station  de  travail

- SIMD  (Single  Instruction  Multiple  Data):  plusieurs  processeurs, qui  exécutent  en  parallèle  les  mêmes  instructions  sur  plusieurs données

- MISD  (Multiple  Instruction  Single  Data):  exécuter  plusieurs instructions  sur  la  même  donnée  (pas  d’exemple  connu)

- MIMD  (Multiple  Instruction  Multiple  Data):  plusieurs  processeurs qui  opèrent  de  façon  indépendantes  (ou  non)  sur  leurs  données

49

Page 50: Cour algorithme Distrib 2eme partie

Machines  parallèles

• Architectures  fortement  couplées

• Tenir  compte  de  l’architecture  de  la  machine

• Repenser  les  applications

• Modèle  de  programmation  parallèle

• La  façon  de  programmer  n’est  pas  indépendante  de

  la machine  utilisée • Découpage  d’une  tâche  en  tâches  élémentaires  (diviser pour  régner)

50

Page 51: Cour algorithme Distrib 2eme partie

Architecture  de  type  grappes

•Une  grappe  (cluster)  est  une  collection  de  machines  interconnectées,  utilisée comme  une  ressource  de  calcul  unifiée

•Il  existe  des  grappes  commerciales  clés  en  main •Une  grappe  « Beowulf»  se  définit  par  les  propriétés  suivantes  : - composants  à  grande  diffusion - composants  réseau  à  faible  coût

- système  d ’exploitation  « open  source » - hardware  non  propriétaire - logiciel  « open  source »

51

Page 52: Cour algorithme Distrib 2eme partie

Types  de  grappes

• Grappes  de  calculs:

-Mise  en  commun  de  ressource  de  calcul

- Assurer  la  disponibilité  de  la  ressource  principalement  en  cas 

de panne  de  l’un  des serveurs. • Grappes  de  répartition  de  charge

- Typiquement  utilisé  pour  les  services  web  (mais  peut  être  utilisé pour  d’autres  applications).  Une  requête  arrive  sur  un  seul  nœud(visible  de  l’extérieur),  et  sera  envoyée  vers  un  autre  en  fonction  de la  charge  de  chacun  des 

nœuds.

• Grappes  de  haute  disponibilité

52

Page 53: Cour algorithme Distrib 2eme partie

Les  grilles

• de  stations  de  travail  (desktop  grids)  et/ou  de  PC "volontaires"

• de  grappes  dédiés

=>  toutes  combinaisons  possibles

• réseau  sous-jacent  si  possible  pas  trop  lent (ex 

WAN  haut  débit  comme  Renater  3    Gigabits/sec)

=>  difficile  problème  provenant  de  la  non 

unicité  du 

domaine d’administration 53

Page 54: Cour algorithme Distrib 2eme partie

Plus  généralement

• Si  le  matériel  est  important,  le  logiciel  l’est  beaucoup  plus  …. • Systèmes  distribués  :  systèmes  complexes  ! •Objectif  :  développement  de  logiciels  fiables  et 

robustes • Prise  en  compte  spécifité  des  systèmes  distribués - Temps  de  communication,  pannes

• Développer  des  algorithmes  dédiés  aux  systèmes  distribués  : algorithmique  distribuée

• Synchronisation  et  coordination  entre  processus  distants • Entente  sur  des  valeurs  communes  et  cohérence  globale  dans un  contexte  non  fiable

• Adaptation  des  problèmes  classiques  en  parallélisme • Problèmes  typiques  des  systèmes  distribués 54

Page 55: Cour algorithme Distrib 2eme partie

• Les  algorithmes  distribués  s’appuie  sur  des  caractéristiques  du système

• Caractéristiques  de  la  communication

- Fiable  ou  non,  temps  de  propagation  borné  ou  pas

• Caractéristiques  des  éléments  formant  le  système

- Fiable,  pouvant  se  planter,  pouvant  envoyer  des 

messages erronés,  etc.

• Architecture  (topologie) -Chaîne

-Arbre -Anneau -Grille 55

Page 56: Cour algorithme Distrib 2eme partie

Conception  de  logiciel  pour  les systèmes 

distribués • Importance  du  système  d’exploitation - Donne  l’image  de  la  machine  pour  l’utilisateur - Influence  la  façon  de  programmer  la  machine

• Système  d’exploitation  entre  l’architecture  matérielle et  les  applications

- Système  d’exploitation  pour  un  système  distribué  dépend • de  l’architecture  sous jacente • des  applications  à  exécuter

-Applications  indépendantes -Applications  parallèles

• Faiblement  couplé • Fortement  couplé

-Système  d’exploitation

56

Page 57: Cour algorithme Distrib 2eme partie

Système  d’exploitation  pour  système distribué

• Multiprocesseurs  à  mémoire  partagée - Système  d’exploitation  à  temps  partagé  de  type  Unix

• Plusieurs  processeurs  au  lieu  d’un  seul

• Illusion  d’une  machine  mono processeur  pour  l’utilisateur - Une  seule  copie  du  système  d’exploitation  sur  la  machine

• Un  processus  peut  s’exécuter  sur  n’importe  quel  processeur  de la  machine

• Une  file  des  processus  prêts  à  s’exécuter  conservée  en mémoire  partagée

• Synchronisation  pour  l’accès  aux  structures  de  données partagées  du  noyau

- Section  critique  pour  l’exécution  de  l’ordonnanceur  qui  gère  la  file des  processus  prêts

• Communication  par  mémoire  partagée

57

Page 58: Cour algorithme Distrib 2eme partie

Système  d’exploitation  pour  système distribué

• Multicomputers - Système  d’exploitation  faiblement  couplé 

(network operating system) • Indépendance  des  machines

-Un  programme  peut  s’exécuter  localement  sans  le  réseau -Réseau  permet  le  partage  de  ressources  entre  une  communauté d’utilisateurs

» Imprimante,  serveur  de  fichiers » Connexion  à  distance

• Une  copie  du  système  d’exploitation  sur  chaque  machine -Système  standard  +  services  distribués  (exemple  NFS) - Hétérogénéité

- Modèle  client/serveur

• Communication  par  fichiers  partagés - NOW,  Internet,  GRID  (Grands  Systèmes  Informatiques

Distribués) 58

Page 59: Cour algorithme Distrib 2eme partie

Système  d’exploitation  pour  système distribué

• Système  intégré -Vision  d’une  machine  unique  (Single  System  Image)- Machine  uni processeur  virtuelle

• La  multiplicité  des  ressources  et  leur  distribution  doivent  être transparentes  pour  l’utilisateur

• Nœuds  anonymes

• Un  même  système  d’exploitation  s’exécute  surchaque  machine

- Chaque  machine  possède  sa  copie  locale  du  système d’exploitation

- Communication  par  messages

• Grappes  de  calculateurs

59

Page 60: Cour algorithme Distrib 2eme partie

Représentation  :  abstraction

un   graphe

60

Page 61: Cour algorithme Distrib 2eme partie

A venir : Modélisation d’un système distribué

• Système  distribué : graphe (non orienté, connexe,  simple)

• sommet  :  processus

• arête  :  canal  de  communication • algorithme  distribué  local  :  algorithme  qui s’exécute  sur  chaque  sommet  (en  utilisant uniquement  le  contexte  local)

61

Page 62: Cour algorithme Distrib 2eme partie

Les  réseaux  anonymes /avec identités

• anonymes:  pas  d’identités  (numéros  distincts. e.g.  IP)

•avec  identités  (chaque  sommet  possède  une identité  (un  numéro)  unique)

En  général,  il  est  plus  facile  de  construire  un algo  sur  des  graphes  avec  identités.

62

Page 63: Cour algorithme Distrib 2eme partie

• L’état  d’un  processus  est  codé  par  une étiquette:

• Le  changement  d’état  :  changement d’étiquette

• Les  algorithmes  :  arbre  recouvrant,  élection, terminaison,  exclusion  mutuelle.

63

Page 64: Cour algorithme Distrib 2eme partie

Modèle de l’algorithmique distribuée

64

Page 65: Cour algorithme Distrib 2eme partie

Quelques  rappels  sur  les  graphes

• Les  graphes  modélisent  une  grande  variété  de

problèmes:  réseaux  de  communication,  réseaux routiers, 

structures  de  molécules,  etc.

• On  se  ramène  à  l’étude  de  sommets  et  d’arcs.

• Un  graphe  simple  G  est  formé  de  deux 

ensembles :  un  ensemble  V  de  sommets  et  un 

ensemble  E d’arêtes.  Chaque  arête  lie  deux  sommets 

(qui  sont dits  adjacents  ou  voisins)

• On  note  G=(V,E) 65

Page 66: Cour algorithme Distrib 2eme partie

Exemple • V = {u,v,w,x,y,z} v

a b • E = {a,b,c,d,e,f} u w

c d • Le  degré  d’un  graphe: z x f Nombre  d’arêtes  adjacentes

y e

deg(x)  =  3

Un  graphe  est  régulier  de  degré  r  si  tousses sommets  sont  de  degré  r.

66

Page 67: Cour algorithme Distrib 2eme partie

Lemme  de  poignées  de  main: Soit  G=(V,E),  la  somme  des  degrés  des sommets  de  V  est  le  double  du  nombre d’arêtes.

Corollaire  :   un  graphe  simple  a  un  nombre pair  de  sommets  de  degré  impair.

Application:  est il  possible  de  relier  27 ordinateurs  de  sorte  que  chaque  appareil

soit  relié  avec  exactement  trois  autres  ?

67

Page 68: Cour algorithme Distrib 2eme partie

Terminologie  :  graphes

•Chaîne : suite  de  sommets  reliés  entre  eux  par  une  arête. •Cycle : chaîne  qui  revient  à  son  point  de  départ. •Graphe  connexe :  pour  toute  paire  de  sommets,  il  existe 

une  chaîne qui  les relie.

•Arbre : graphe  connexe  sans  cycle. •Anneau : graphe  formé  d’un  cycle.

•Longueur  d’une  chaîne : nombre  d’arêtes  qui  composent  la  chaîne. •Distance  entre  deux  sommets : longueur  de  la  plus  courte  chaîne  joignant  les deux  sommets. •Diamètre  d’un  graphe : maximum  des  distances  entre  les 

sommets  d’un graphe.

•Médian:  un  sommet  qui  minimise  la  somme  des  distances  aux  autres  sommets.

•Sous graphe :  G=(V,E)  est  sous  graphe  de  G’=(V’,E’)  si  V  est  sous  ensemble de  V’  et  E  est  sous  ensemble  de  E’.

68

Page 69: Cour algorithme Distrib 2eme partie

69

Page 70: Cour algorithme Distrib 2eme partie

Arbre  recouvrant

• Soit  G  un  graphe.  Un  arbre  recouvrant  de  G est  un  sous  graphe  de  G  qui  est  un  arbre contenant  tous  les  sommets  de  G

Exemple :

70

Page 71: Cour algorithme Distrib 2eme partie

71

Page 72: Cour algorithme Distrib 2eme partie

I/  Notion  d’algorithme  distribué

• Ces  transitions  peuvent  s’effectuer  suite  à  des

événements  (internes  ou  échange  de  message)

• Un  algorithme  distribué  sur  un  système

distribué 

S est  une  collection  de  transitions  locales à

réaliser séquentiellement  par  chaque  process de S.

72

Page 73: Cour algorithme Distrib 2eme partie

• Processus:

- Les  instructions  d’un  processus  sont  considérées comme  atomiques.

- Il  possède  une  mémoire  locale

- Il  possède  un  état  local  (ensemble  de  ses  données  et 

des valeurs  de  ses  variables  locales) - Il  peut  (ou  non)  avoir  un  identifiant

- Pas  ou  peu  de  connaissance  des  autres  processus  et  de leurs  états  (il  peut  connaitre  l’état  des  voisins)

- Il  s’exécute  en  parallèle  avec  les  autres  processus

73

Page 74: Cour algorithme Distrib 2eme partie

• Simulation d’une mémoire partagée : 1 process à part qui est chargé uniquement de la communication.

74

Page 75: Cour algorithme Distrib 2eme partie

indiscernables. 75

Page 76: Cour algorithme Distrib 2eme partie

76

Page 77: Cour algorithme Distrib 2eme partie

77

Page 78: Cour algorithme Distrib 2eme partie

78

Page 79: Cour algorithme Distrib 2eme partie

2.

79

Page 80: Cour algorithme Distrib 2eme partie

80

Page 81: Cour algorithme Distrib 2eme partie

81

Page 82: Cour algorithme Distrib 2eme partie

es

82

Page 83: Cour algorithme Distrib 2eme partie

83

Page 84: Cour algorithme Distrib 2eme partie

84

Page 85: Cour algorithme Distrib 2eme partie

terminer 85

Page 86: Cour algorithme Distrib 2eme partie

86

Page 87: Cour algorithme Distrib 2eme partie

87

Page 88: Cour algorithme Distrib 2eme partie

88

Page 89: Cour algorithme Distrib 2eme partie

89

e

Page 90: Cour algorithme Distrib 2eme partie

90

Page 91: Cour algorithme Distrib 2eme partie

91

Page 92: Cour algorithme Distrib 2eme partie

92

Page 93: Cour algorithme Distrib 2eme partie

93

y

Page 94: Cour algorithme Distrib 2eme partie

94

Page 95: Cour algorithme Distrib 2eme partie

95

Page 96: Cour algorithme Distrib 2eme partie

96

Une

Page 97: Cour algorithme Distrib 2eme partie

97

Page 98: Cour algorithme Distrib 2eme partie

98

Page 99: Cour algorithme Distrib 2eme partie

99

Page 100: Cour algorithme Distrib 2eme partie

100

Page 101: Cour algorithme Distrib 2eme partie

101

Page 102: Cour algorithme Distrib 2eme partie

102

Page 103: Cour algorithme Distrib 2eme partie

103

Page 104: Cour algorithme Distrib 2eme partie

104

Page 105: Cour algorithme Distrib 2eme partie

105

Page 106: Cour algorithme Distrib 2eme partie

106

Page 107: Cour algorithme Distrib 2eme partie

107

Page 108: Cour algorithme Distrib 2eme partie

108