Vous êtes sur la page 1sur 51

Principes

Principes des
des systmes
systmes d'exploitation
d'exploitation

Support de transparents
Partie 2: Systmes distribus
IUP MIAGE
Facult de sciences -UNSA
N. Le Thanh
fvrier 1995

Page 1

Plan
Plan du
du cours
cours
II- Partie 2 : Systmes distribus
II.1- Introduction

objectifs
concepts matriels
concepts logiciels
bases de la conception des systmes distribus

II.2- Communication dans les systmes distribus

couches de protocoles
modle client-serveur
appels de procdures distance
communication de groupe
Quelques approches pratiques

Page 2

Page 1

Plan
Plan du
du cours
cours
II.3- Synchronisation dans les systmes distribus

synchronisation d'horloge
exclusion-mutuelle Algorithmes d'lection
transactions atomiques
interblocage dans les systmes distribus

II.4- Etude de cas (TD/TP)


Service web et programmation Client/serveur sur web
Modle CORBA et systmes objets distribus
Modles client/serveur et objets de Java : rmi, jdbc, servlet, applet

Page 3

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.1- Objectifs Avantages/Inconvnients


SYSTME DISTRIBU = SYSTME POSSDANT PLUSIEURS PROCESSEURS COOPRANTS

OBJECTIFS
- Cot : plusieurs processeurs bas prix
- Puissance de calcul : aucune machine centralise peut raliser
- Performance : calcul parallle
- Adaptation : des classes d'applications relles naturellement distribues
- Fiabilit : rsistance aux pannes logicielles ou matrielles
- Extensibilit : croissance progressive selon le besoin

Inconvnients

Avantages
- partage de donnes
- partage de priphriques
- communication
- souplesse (politiques de placements)

- logiciels : peu de logiciels disponibles


- rseaux : la saturation et dlais
- scurit : piratage

Page 4

Page 2

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.2- Concepts matriels


SISD :
SIMD :

Taxonomie de Flynn (1972)


- nombre des flux d'instructions
- nombre des flux de donnes

MISD :
MIMD :

un seul flux d'instruction et un seul flux de


donnes (ordinateurs centralis)
un seul flux d'instruction et multiples flux de
donnes (machines // vectorielles)
multiples flux d'instruction et un seul flux de
donnes (pas de machine relle)
multiples flux d'instruction et multiples flux de
donnes
MIMD

systmes // et dist.
Fortement coupls

Faiblement coupls
multicalculateurs
(mmoire prive)

multiprocesseurs
(mmoire partage)

Bus

Bus

Commutateur

Sequent Encore

Commutateur

Stations sur LAN

Ultracomputer RP3

Hypercube/Transputeur

Page 5

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.2- Concepts matriels


II.1.2.1- Multiprocesseurs bus
UC
Cache

UC
Cache

UC
Cache

Problmes

Problmes

- cohrence entre les


caches et la mmoire

- saturation du bus
- cohrence du partage
de la mmoire

Solution
ajout des mmoires caches
qui stockent des mots
rcemment lits ou crits

Mmoire

(<64 processeurs)

Page 6

Page 3

Solution
- cache criture immdiate
(write-through cache)
- cache espion
(snoopy cache)

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.2- Concepts matriels


II.1.2.2- Multiprocesseurs commuts
Mmoires
M

Technique de matrice de commutation


(Crossbar Switch)
- les UC et mmoires sont relies par une matrice
de commutation
- chaque l'intersection, le noeud de commutation
(crosspoint switch) peut-tre ouvert ou ferm
- quand une UC veut accder un module de mmoire
elle ferme temporairement le noeud de commutation
corresondant
- si plusieurs UC veulent accder au mme module,
une file d'attente est ncessaire

C
C
UC
C
C

Inconvnient
le nombre des noeuds de commutation ncessaires : il faut n2 de noeuds de
commutation pour rlier n UC aux n module de mmoire
rseaux d'interconnexion minimisant le nombre de noeuds ?
Page 7

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.2- Concepts matriels


II.1.2.2- Multiprocesseurs commuts
Principe du rseau omga (multitage)

- utilisation des commutateurs 2x2 : 2 entres et deux


sorties
- chaque commutateur peut relier n'importe quelle
entre et n'importe quelle sortie
- pour relier n UC n mmoires, il ncessite n tages dont
chacun contient log2n commutateurs 2x2
- le nombre ncessaire de commutateurs est : nxlog2n

Inconvnient : Temps de propagation

CONCLUSION

- Si n= 1024, on a besoin 10 tages


- Avec les UC de 50Mhz, le cycle de calcul est de 20ns
- une requte mmoire traverse 20 tages (all/retour)
en 20 ns si le temps de commutation est de 1ns
- On doit avoir 10 240 commutateurs 1ns !!!

Page 8

Page 4

construire un gros
multiprocesseurs
fortement coupl
mmoire partage
est difficile et coteux

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.2- Concepts matriels


II.1.2.3- Multicalculateurs bus

Mmoire locale

Mmoire locale

Mmoire locale

UC

UC

UC

rseau local
(ou bus rapide)

(diffusion)
- Facile construire
- Bas cot
- Le trafic est moins important
(pas d'change UC-mmoire)
- souvent utilis dans les
rseaux locaux avec une vitesse
de 10 100Mbits/s

Stations
de travail
(ou UC)

Remarque
Le bus rapide peut tre construit par les
diffrentes techniques (exemple : rseau
bynet de teradata BDC1024

Page 9

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.2- Concepts matriels


II.1.2.4- Multicalculateurs commuts

Hypercubes
(4 dimensions)
Treillis
- cblage simple
- le chemin plus long croit en
racine carr du nombre d'UC
Remarque
Utilisation de crossbar et multitage

1024 UC
16 384 UC

- Un hypercube est un cube n dimensions


- 4 dimensions : 2 cubes de 3 dimensions avec les
sommets homologues relis
- 5 dimensions : 2 hypercubes de 4 dimensions avec
les sommets homologues relis
- la complexit du cblage croit en log2 du nombre UC
- le chemin plus long croit en log2 du nombre UC
Page 10

Page 5

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.1- Classification
Le matriel est important, mais le logiciel l'est plus encore
La classification est, par nature, imprcise et floue :
systmes d'exploitation faiblement coupls
- rseaux des ordinateurs indpendants
(et alors la coopration des ordinateurs
indpendants sans rseau ?)

multiprocesseurs
SE faiblement coupl

systmes d'exploitation fortement coupls


- multiprocesseurs excutant un seul
programme en // (jeu d'checs par exemple)
- machine des bases de donnes
- machine // processeurs symtriques ...

Systmes d'exploitation rseaux

multiprocesseurs
SE fortement coupl

Systmes d'exploitation distribus


multicalculateurs
multicalculateurs
SE faiblement coupl SE fortement coupl

Systmes multiprocesseurs
temps partag
Page 11

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.2- Systmes d'exploitation rseaux et NFS
La combinaison la plus frquente : matriels et logiciels faiblement coups
Connexion point--point

systme d'exploitation rseaux


- postes indpendants + serveurs de fichiers
- systme de fichiers partags
- gestion central des utilisateurs

- postes avec SE indpendant


- partage des imprimantes
- accs un autre poste en mode terminal
Rseaux locaux
- stations NT
- windows workgroups

Internet

Rseaux locaux

Internet

FTP, TELNET,
...

Novell, Lanmanager
Unix, NTserver services

HTTP, NFS
(Network File Manager)

poste
client

poste
client

poste
client

Serveur
de
fichiers

question
LAN
Page 12

Page 6

rponse

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.2- Systmes d'exploitation rseaux et NFS
Architecture et protocoles NFS
serveur1
jeux
pacman
pacwoman
pacchild

serveur2
travail
news
mail
autres

Serveurs

Lan ou Internet
client1/

client2/jeux

jeux
travail
pacman
pacwoman
pacchild

pacman
pacwoman
pacchild
travail
news
mail
autres

news
mail
autres

- exporter des rpertoires (/etc/exports)


- grer les accs aux rpertoires exports
pour les clients (locaux ou distance)
- protection des fichiers
- transmettre les donnes aux clients (rponses)
- les clients et les serveurs peuvent partager un
mme systme de fichiers
Clients
- monter des rpertoires exports sur sa station
- utiliser ces rpertoires comme (ou presque)
ceux locaux
- plusieurs clients peuvent partager les mmes
rpertoires (fichiers partags)
- toute machine peut la fois client et serveur
- systmes d'exploitation locaux peuvent tre <>
Page 13

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.2- Systmes d'exploitation rseaux et NFS
Architecture et protocoles NFS
Un protocole est un ensemble de requtes envoyes par les clients aux serveurs
auxquelles correspondent les rponses des serveurs aux clients
1er protocole : Protocole de montage
1- Le client envoie une requte contenant le chemin d'accs un rpertoire du serveur et
une demande de l'autorisation de le monter dans son arborescence.
2- Si le chemin est correct et le rpertoire est exportable, le serveur revoie au client une cl
de fichier (file handle) concernant ce rpertoire. Cette cl comporte des champs qui identifient
uniquement le type de Systme de Fichiers, le disque, le n de i-noeud du rpertoire et les
informations sur les protections.
3- Classiquement, le client a un fichier Shell script /etc/rc contenant les commandes de montage.
Ce Shell script sera excut automatiquement au lancement du systme
4- Automontage (Unix de Sun) : le montage se fait automatiquement la 1ere ouverture d'un
fichier distance, le client contacte les serveurs et monter le rpertoire contenant ce fichier
Page 14

Page 7

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.2- Systmes d'exploitation rseaux et NFS
Architecture et protocoles NFS
2me protocole : Protocole d'accs
1- Le client envoie aux serveurs des requtes de manipulation des rpertoires ou des fichiers
2- La plupart des appels systme UNIX sont supports par NFS, exception OPEN et CLOSE.
L'omission de ces oprations permet aux serveurs de ne pas grer les fichiers ouverts (serveur
sans tat (stateless). Chaque requte d'accs se suffit elle-mme. L'appel READ contient
la cl du fichier, la position courante et le nombre d'octet lire. On utilise LOOKUP la place de
OPEN. L'inconvnient principal est l'absence de contrle de cohrence. On ne peut pas verrouiller
le fichier (cas il est toujours tat ferm), donc le partage d'accs peut introduire des incohrences
3- Il existe sous UNIX systme V, le mcanisme Remote File System (RFS) qui demande le fichier
soit ouvert avant la lecture. Le serveur doit grer dans ce cas un descripteur de fichier pour tout
fichier ouvert distance
4- Chaque requte doit s'identifier par la cryptographie cls publiques. Il possde une cl
crypte envoyer au serveur . Le serveur stocke des couples (cl, valeur) dans NIS (Network
Information Service). Quand on lui envoie une cl, il retourne une valeur.
Page 15

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.2- Systmes d'exploitation rseaux et NFS
Implantation de NFS
Client
Serveur
Couche appel systme
couche systme de fichiers virtuel

couche systme de fichiers virtuel

Systme
d'exploitation local

disque
local

client NFS

client NFS

message vers
serveur

message vers
serveur

Systme
d'exploitation local

disque
local

Rseau
Page 16

Page 8

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.3- Systmes distribus
Un systme distribu est un systme qui s'excute sur un ensemble de machines sans
mmoire partage, mais que pourtant l'utilisateur voir comme une seule et unique machine

Caractristiques
- possdant un mcanisme de communication interprocessus unique et global permettant
la dialogue entre deux processus quelconques
- possdant un systme de protection unique et global
- possdant un mcanisme de gestion de processus unique
- possdant un ensemble des appels systme unique disponible sur toutes les machines
- possdant un noyau de systme d'exploitation identique implant sur toutes les machines
- possdant un mcanisme de gestion de mmoire identique

Page 17

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.4- Systmes multiprocesseurs en temps partag
Mmoire
E (prt)
D (prt)
UC1

UC2

UC3

Processus
A en exc.

Processus
B en exc.

Processus
C en exc.

Cache

Cache

Cache

C (en excution)
B (en excution)
A (en excution)
File d'excution : D, E
Systme d'exploitation

Disque local

Bus
- Un ensemble des processeurs "symtriques"
- Une mmoire commune et un espace disque commun
- Tous les programmes sont stocks dans la mmoire partage
- Une file d'attente unique des processus excutable se trouvent dans la mmoire partage
- L'ordonnanceur travaille en section critique pour viter que deux UC ne choisissent le mme
processus excuter
- L'exclusion mutuelle peut tre ralise en moyennant des smaphores, moniteurs, ...
Page 18

Page 9

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.3- Concepts logiciels


II.1.3.5- Tableau de synthse
S.E.R.

Questions

S.E.D.

S.E.M.

Ressemble-t-il un monoprecesseur virtuel ?

Non

Oui

Oui

Doit-on avoir le mme systme d'exploitation ?

Non

Oui

Oui

Combien y a-t-il de copies du systme d'exploitation ?

Comment la communication a-elle assure ?

Fichiers
partags

Messages

Mmoire
partage

Faut-il utiliser des protocoles rseau unifis ?

Oui

Oui

Non

Existe-il une seule file d'attente des excutables ?

Non

Non

Oui

Le partage des fichiers a-t-il une smantique bien


dfinie

Non

Oui

Oui

Page 19

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.4- Critres d'un systme distribu


II.1.4.1- Transparence
Mme mode d'utilisation que celui d'un systme centralis en temps partag : niveau d'utilisateur
et niveau de programme
Types de transparence

Signification

Transparence l'emplacement

L'utilisateur ne connat pas o sont situes les ressources

Transparence la migration

Les ressources peuvent tre dplaces sans modification de


leur nom

Transparence la duplication

L'utilisateur ne connat pas le nombre de copies existantes

Transparence la concurrence

Plusieurs utilisateurs peuvent partages en mme temps les


mmes ressources

Transparence au paralllisme

Des tches peuvent excutes en parallle sans que les


utilisateurs le sachent

Page 20

Page 10

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.4- Critres d'un systme distribu


II.1.4.2- Souplesse
La facilit de modification de configuration et d'extension

Utilisateur

Utilisateur

Serveur de
fichiers

Serveur de
rpertoires

Serveur de
processus

Noyau
monolithique

Micronoyau

Micronoyau

Micronoyau

Micronoyau

Bus / rseaux locaux


cole Monolithique

cole Micrinoyau

- Unix en particulier

- WindowsNT en particulier

Page 21

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.4- Critres d'un systme distribu


II.1.4.3- Fiabilit
Disponibilit
La disponibilit est la fraction de temps pendant laquelle le systme est utilisable :
- limiter de nombre des composants critiques
- dupliquer les parties cls des composants logiciels et matriels (redondance)
- maintenir la cohrence des copies (contradiction!!!)
Scurit
Les ressources doivent tre protges contre des utilisations abusives et malveillantes. En
particulier le problme de piratage des donnes sur le rseau de communication

Tolrance aux pannes


Le systme doit tre conu pour masquer les pannes aux utilisateurs. La panne de certains
serveurs (ou leur rintgration dans le systme aprs la rparation) ne doit pas perturber
l'utilisation du systme en terme de fonctionnalit (NFS sans tat par exemple)
Page 22

Page 11

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.4- Critres d'un systme distribu


II.1.4.4- Performances
Critres
- temps de rponse
- taux d'utilisation du systme

- dbit (nombre de travaux par heure)


- pourcentage utilis de la bande de passante du rseau

Problmes
- La communication est en gnral assez lente dans les systmes distribus
- Le mcanisme de reprise sur panne consomme beaucoup de temps
Solutions
- minimiser les changes de message
- maximiser des granules grosses (gros grains) et viter des grains fins pour les calcul distance
- rduire le champ d'application des mcanismes de reprises sur pannes

Page 23

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction

II.1.4- Critres d'un systme distribu


II.1.4.5- Dimensionnement
Goulots d'tranglement potentiels
Concepts
Composants centraliss

Exemple
Un seul serveur de courrier pour tous les utilisateurs

Tables centralises

Un seul annuaire en ligne

Algorithmes centraliss

Avoir un routage qui ncessite une connaissance totale du


rseau

- Caractristique des algorithmes distribus :


- les algorithmes excutables sur les postes clients ( Java)
- aucune machine n'a une information complte sur l'tat du systme
- les machines prennent des dcisions partir des seules informations locales
disponibles
- la panne d'une machine n'empche pas l'algorithme de fonctionner
- on ne fait pas l'hypothse de l'existence d'une horloge globale
Page 24

Page 12

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus
II.1II.1- Introduction
Introduction
II.1.5- Exercices
1) Donner deux avantages des systmes distribus sur les systmes centraliss
2) Un multiprocesseur bus utilise un cache espion pour grer une mmoire
cohrente. Peut-on alors utiliser des smaphores ?
3) Un multicalculateur comprenant 256 UC est organis en treillis de 16x16. Quel est,
dans le pire des cas, le dlais de transmission d'un message (exprimer en nombre de
passages d'un UC la suivante) ?
4) Considrons maintenant un hypercube de 256 UC. Quel est alors le dlais de
transmission dans le pire de cas ?
5) Pourquoi certains serveurs NFS sont-ils conu pour tre sans tat ?
6) NFS permet une machine d'tre la fois client et serveur. Est ce utile ? Pourquoi?
7) Quelles sont les tches essentielles d'un micronoyau ? Quels sont les avantages des
micronoyaux sur les noyaux monolithiques ?
8) Un serveur de fichiers exprimental est oprationnel les 3/4 du temps et en
dbogage le reste du temps. Combien de fois ce serveur doit-il tre dupliqu pour
que sa disponibilit soit au moins de 99% ?
Page 25

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.1- Introduction
Problme : communication inter-processus
- dans un systme centralis : communiquer par la mmoire partage
- dans un systme distribu : en gnral, l'absence de la mmoire partage, on doit communiquer
par messages avec des protocoles
Protocole
- ensemble de rgles qui gre les communication inter-processus dans un systme distribu
- il dtermine un l'accord sur la faon dont les communications doivent d'effectuer
Plan
- les protocoles de communication (modle OSI)
- le modle Client / Serveur
- les Appels de procdure distance (RPC=Remote Procedure Call)

Page 26

Page 13

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Rappels des protocoles OSI
II.2.1.1- Introduction
O.S.I. = Open Systems Interconnection reference model

Systme ouvert =

un systme qui prt communiquer avec un autre systme ouvert


en utilisant des rgles standards (protocoles) quant au format
au contenu et la signification des messages qui sont envoys
ou reus

Objectif
Dfinition d'un ensemble de protocoles permettant un accord tout niveau, depuis les
dtails de bas niveau de la transmission (voltage indiquant la valeur d'un bit, longueur
du bit, ...) jusqu' ceux de plus haut niveau de la prsentation de donnes (longueur d'un
nombre, d'une chane de caractres, format de reprsentation des donnes, ...)

Page 27

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Rappels des protocoles OSI
Machine 1
Processus A

II.2.1.2- Modle en couches OSI


Deux types de protocoles

Machine 2
Processus B

orients connexion orients sans connexion


Application
Couche 7
Interface
Prsentation
Couche 6
Interface
Session
Couche 5
Interface
Transport
Couche 4
Interface
Rseau
Couche 3
Interface
Liaison
Couche 2
Interface
Physique
Couche 1

Protocole d'application
Protocole de prsentation
Protocole de session
Protocole de transport
Protocole de rseau
Protocole de liaison
Protocole physique
support de transmission
Page 28

Page 14

Application
Prsentation
Session
Transport
Rseau
Liaison
Physique

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Rappels des protocoles OSI
II.2.1.2- Modle en couches OSI

Deux types de protocoles


Entte de liaison de donnes
orients connexion orients sans connexion
Entte de rseau
Entte de transport
Entte de session
Appendice ou
Entte de prsentation
"en-queue" de
Entte d'application
liaison de donnes

Message transite sur rseau

Message

Page 29

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Rappels des protocoles OSI
II.2.1.2- Modle en couches OSI
- Couche physique : assurer la transmission : connecteurs physique, codages physiques
adaptation au mode de transmission, ...
- Couche de liaison : assurer la transmission sans erreur entre deux extrmistes d'une
liaison directe
- Couche rseau :

assurer le routage des messages sur les rseaux d'interconnexion


(gestion de congestion, choix de chemins, ...

- Couche transport : assurer une transmission fiable entre l'expditeur et le destinataire


contrle de perte des paquets, l'ordre des paquets, ...
- Couche de session : extension de la couche transport : mcanismes de synchronisation
de reprise sur panes, ... trs peu utilise en pratique !!!
- Couche de prsentation : format de donnes, adaptation au terminal
- Couche d'application: protocoles applicatifs : courrier lectronique (X400), ftp, telnet,...
Page 30

Page 15

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.1- Description
7
Demande
Client

6
5

Serveur

Rponse

Demande/Rponse

4
Noyau

Noyau

Rseau de connexion

Liaison

Physique

- Protocole simple sans connexion de type Question / Rponse


- Avantage : simplicit - efficacit
- Noyau : assurer l'envoi et rception des messages avec 2 primitives :
- send (dest, &ptrm)
- receive (adr, &prtm) (adr : l'adresse d'coute du rcepteur)
Page 31

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.2- Adressage
Localisation connue
1

3
Serveur

Client

Localisation centralise

Localisation inconnue

Client
4

2
1
1 : demande vers S.p1
2 : rponse vers C.p2
- tout client doit connatre
la localisation et le nom
interne de tous les
services. Il demande donc
explicitement sous format :
machine.processus

2
Serveur

SN

Serveur

Client
1

1 : recherche par diffusion


2 : je suis l
3 : demande
4 : rponse
- chaque processus choisit
un nom alatoire telle sorte
qu'il soit unique
- client diffuse une demande
de localisation d'un process
- le serveur contenant ce
processus donne son
adresse machine
Page 32

Page 16

1 : demande SN
2 : rponse de SN
3 : demande
4 : rponse
- les serveurs ont leur nom unique en code
ascii
- un serveur gre la localisation et
le nom interne des machines
- le client connat seulement l'adresse du
serveur de nom. Il lui demande de
fournir l'adresse des serveurs l'excution

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.3- Primitives bloquantes et non bloquantes
Client en cours
d'excution
client bloqu

Client en cours
d'excution
retour, le
processus
client est
libr

droutement vers
le noyau, le
processus client
est bloqu

client
bloqu

Client en cours
d'excution

Client en cours
d'excution
retour, le
processus
client est
libr

droutement vers
le noyau, le
processus client
est bloqu

le message
est envoy

le message le message
est envoy
est copi
en mmoire
tampon

- le processus appelant send ou receive sera bloqu


pendant l'mission (ou rception) du message

- le processus appelant send sera libr toute


de suite, le message sera envoy en //
l'excution

- l'instruction qui suit send (ou receive) sera excute


lorsque le message a t compltement mis (ou reu)
- avantage : simple et claire, facile la mise en oeuvre
- inconvnient : moins performant

- avantage : performant
- inconvnient : perte de mmoire tampon,
difficile raliser, risque de modif. du tampon

Page 33

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.4- Primitives avec tampon ou sans tampon
C

Noyau

Noyau

Noyau

S
A
rseau

rseau
- sans tampon : le message envoy par le client
sera copi par le noyau du serveur dans la zone
ptrm et pour le processus A l'adresse adr dans
l'appel receive(adr,ptrm) dclench par le
processus A
- problme : si le processus client a appel send
avant que le processus serveur appelle receive
alors, le noyau du serveur n'a ni adresse du
processus serveur ni l'adresse de l'endroit o
il doit copier le message reu !!!

- avec tampon : les messages envoys par les


clients sont dposs dans une boite aux lettres.
Le processus serveur A qui appelle un receive
va dclencher une recherche par le noyau dans
la boite aux lettres. Si le message existe, le noyau
va le copier dans la zone de mmoire ptrm et
librer le processus A. Sinon l'appel receive sera
bloqu pour l'attente de l'arrive du message
- problme : quand la boite aux lettres est sature,
on doit refuser tous les messages qui arrivent !!!

Page 34

Page 17

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.5- Primitives fiables et non fiables
1

1
C

3
3
2
Message avec accuss de rception individuels

Message avec la rponse = 1 accus de rception

1- Demande (client au serveur)


2- ACK (noyau noyau)
3- Rponse (serveur client)
4- ACK (noyau noyau)
On peut avoir un compromis entre 2 solutions prcdantes :

1- Demande (client au serveur)


2- Rponse (serveur client)
3- ACK dans certain cas (noyau noyau)
(si le calcul est cher, on peut bloquer
le rsultat au serveur jusqu' qu'il reoit
un ACK du client (3)

1- Demande (client au serveur)


2- ACK ventuellement si la rponse n'est pas revenue dans certain temps (noyau noyau)
3- Rponse servant ACK si dans le lape de temps prvu (serveur client)
4- ACK ventuellement (noyau noyau)
Page 35

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.6- Rsum
Objet

Option 2

Option 1

Option 3

Adressage

numro de la machine

adresse choisie par le proc.

Blocage

primitives bloquantes

primitives non-bloquantes
avec copie vers le noyau

primitives non-bloquantes
avec interruption

pas de tampon

tampon temporaire

boite aux lettre

Mmorisation
Fiabilit
Code
REQ
REP
ACK
AYA
IAA
TA
AU

demande-ACK-rponse-ACK demande--rponse-ACK

non fiable

Type de paquet
source-dest.
client-serveur
demande
rponse
serveur-client
accus de rception noyau-noyau
es-tu vivant ?
client-serveur
serveur-client
Je suis vivant
essaye nouveau
adresse inconnue

nom ASCII avec SN

serveur-client
serveur-client

Description
le client dsire un serveur
la rponse du serveur au client
le paquet prcdent est arriv
le serveur fonctionne-t-il ?
le serveur n'est pas en panne
le serveur est satur
aucun processus sur serveur utilise cette adresse
Page 36

Page 18

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.2- Modle Client/Serveur
II.2.2.6- Rsum
Exemples des changes des paquets dans le protocole Client/Serveur

REQ
Client

Client

Serveur
REP

REQ
REP
ACK

Serveur

b)

a)

Client

REQ
ACK
REP
ACK

Client
Serveur

REQ
ACK
AYA
IAA
REP

Serveur

ACK
d)

c)
Page 37

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.3- Appels de procdures distance
II.2.3.1- Introduction
Problme du modle Client/Serveur
Concept bas sur l'change explicite de donnes donc orient Entres/Sorties qui ne peut pas
tre le principe cl d'un systme distribu

Appels de procdures distance


Concept introduit par Birrell et Nelson en 1984 : lorque un processus sur la machine A appelle
une procdure sur une machine B, le processus sur A est suspendu pendant l'excution de
la procdure appele se droule sur B. Des informations peuvent tre transmises de l'appelant
vers l'appel ou l'inverse par des paramtres

Page 38

Page 19

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.3- Appels de procdures distance
II.2.3.2- Opration de base de RPC
Mcanisme d'appel de procdure dans un systme centralis
compte = read(idf, tampon, nboct);
0

SP
variables locales
de read
adresse de retour
idf
tampon
nboct

SP
Variables locales
au prog. appelant

SP
Variables locales
au prog. appelant

Variables locales
au prog. appelant

- modes de passage : par valeur ou par pointeur


- nature des paramtres : entr - sorti - entr / sorti
Page 39

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.3- Appels de procdures distance
II.2.3.2- Opration de base de RPC

appel

Subrog client

Subrog serveur

assemblage
paramtre

dsassemblage
paramtre

dsassemblage
retour paramtre

assemblage
paramtre

prog.
appelant

Appel
prog.
appel
retour

noyau

noyau

Page 40

Page 20

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.3- Appels de procdures distance
II.2.3.3- Passage de paramtres
Subrog serveur

Subrog client
.
.
n=somme(4,7)
.
.

message
somme
4
7

message
somme
4
7

somme(i,j)
int i,i;
{
return (i+j);
}
noyau

noyau

Page 41

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.3- Appels de procdures distance
II.2.3.4- Nommage dynamique (dynamic binding)
Problme
la localisation du serveur par le client : crire dans le code client l'adresse du serveur ou utiliser
le mcanisme de nommage dynamique
subrog client
subrog serveur

gestionnaire
de noms

1
2

b
a : enregistrer un nom (exportation de l'interface)
b : supprimer un nom

1- recherche un nom (importation)


2- retourne l'identificateur et descripteur
3 et 4- RPC

Page 42

Page 21

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.3- Appels de procdures distance
II.2.3.5- Smantique de RPC en cas d chec
Cinq classes d erreurs
1.

Le client est incapable de localiser le serveur

2.

La demande du client au serveur est perdue

3.

La rponse du serveur au client est perdue

4.

Le serveur tombe en panne aprs avoir reu une demande

5.

Le client tombe en panne aprs avoir envoy une demande

Page 43

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.1- Introduction
Point--Point

R
R

R
R

R
R

Gnralisation du RPC
Un metteur doit communiquer en
parallle n rcepteurs regoups
dans un groupe smantique

R
R

R
Un--Plusieurs

Page 44

Page 22

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.2- Classement
a) Groupes ferms et groupes ouverts
Les trangers peuvent
envoyer de messages
au groupe ouvert

Communication
non autorise

Un groupe ferme
n autorise que les
communications
intra-groupe

Page 45

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.2- Classements
b) Groupes de paires ou groupes hirarchiss
Coordinateur
Travailleurs

Groupe de paires

Groupe hirarchis
Page 46

Page 23

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.3- Gestion des groupes
- Cration, dissolution d un groupe
- Adhsion un groupe ou retrait d un groupe

Gestion centralise

Gestion distribue

- Un serveur de groupes qui gre une


base de donnes des groupes et une
base de donnes des membres
- Avantages : efficace, claire et facile
implanter

- Un groupe se cre s il y a au moins


un adhrant
- pour adhrer un groupe, le
processus demandeur doit envoyer
sa demande tous les membres du
groupe

- Inconvnients : fragile devant les


pannes

- Avantage : Robustesse
- Inconvnient : complexe et coteuse

Page 47

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.4- Adressage des groupes
0

Diffusion restreinte
(multicasting)

Diffusion globale
(broadcasting)

Adressage par prdicat


(predicate addressing)

Page 48

Page 24

monodifusion
(point-to-point)

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.5- Atomicit
Proprit de diffusion atomique (atomic broadcast)
Un message envoy un groupe doit tre reu par tous ses membres ou par aucun

Algorithme de relais intra-groupe (Joseph et Birman 1989)


1- L expditeur envoie un message tous les membres d un groupe (des temporisateurs
sont arms et des retransmissions faites si ncessaire)
2- Tout membre de ce groupe, qui a reu ce message pour la premire fois, doit l envoyer
tous les membres du groupe (des temporisateurs sont arms et des retransmissions
faites si ncessaire)
3- Tout membre de ce groupe, qui a reu ce message plus qu une fois, doit simplement
le dtruire
Page 49

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.6- Squencement
Proprit de squencement
Soient A et B 2 messages envoyer un groupe de processus G. Si A est envoy avant B sur
le rseau, ils doivent tre reus par tous les membres du groupe G dans le mme ordre : A puis B
MAJ Incohrente

Solutions

M1
1

C1

S1

- Squencement global (global time ordering) :


conserver, en rception, l ordre des messages mission.
Si C1 envoie M1 avant que C2 envoie M2, alors le systme doit
assurer que tous les membres de G reoivent M1 avant M2

C2
M2

S2

- Squencement cohrent (Consistent time ordering) :


Le systme tablir l ordre d envoie des messages et assurer
que cet ordre soit respect la rception des messages.

Page 50

Page 25

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.7- Groupes non disjoints
Groupe 1

Groupe 2
B

Introduction des mcanisme de


squencement qui tient compte du
recouvrement des groupes

2
D

Solution

Problme
L ordre de recouvrement des groupes
non respect :
- B reoit le message de A puis D
- C reoit le message de D puis A
Si B et C est une base de donnes duplique
on peut avoir une incohrence de MAJ

La mise en uvre est complique


et coteuse

Page 51

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.4- Communication de groupe (multipoints)
II.2.4.8- Elasticit
Proprit
Lan 2

Diffusion
multiple

G1

G3

Lan 1

La communication de groupe doit tre invariante par


rapport la taille du groupe : Lalgorithme doit tre
efficace dans un petit groupe comme dans un grand
groupe (nombre de membre et taille de lespace)

Lan 4
Problmes

G2

G4
Lan 3

- beaucoup d algorithmes fonctionnent trs bien dans


des petits groupes mais deviennent non fiable dans des
grands groupe
- la taille de rseau avec la prsence des passerelles rend
plus compliqu le problme de communication de groupe

Page 52

Page 26

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.5- Rsum
Protocoles
orients connexion

Modle en couches
OSI

Protocoles
orients Question/Rponse

Modle
Client/Serveur

Modle
R.P.C.

Modle
Communication de G.

Applications distribues

Page 53

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.6- Approches pratiques
Applications Clients / Serveur : Modle de base
Application
Client

Protocole de l application

Application
Serveur

Identification du service
(N port, @machine)
Protocole de communication sur rseaux
Exemple : Services Internet
- Telnet : Terminal Network protocol
- Ftp : File transport Protocol
- Courriers lectroniques : SMTP, POP3,
- Web : HTTP et Navigateur
- ...
Page 54

Page 27

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.6- Approches pratiques
Applications Clients / Serveur : Modle 3-Tiers

Application
Client

standard

Middleware

standard

Application
Serveur

Identification du service
(N port, @machine)
Protocole de communication sur rseaux
Exemples
- ODBC : Object DataBase Connectivity
- JDBC : Java DataBase Connectivity
- Applications intra/internet
- Message Queues
- CORBA, DCOM / ACTIVEX, Java Rmi
Page 55

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.6- Approches pratiques
Applications Clients / Serveur sur web
Navigateur WEB
Client universel
+
JavaScript, Japplet,
Plug-ins

Server HTTP
HTTP

- Communication
- Distribution
- Scurit

Application Serveur
SGBD
App. Propritaires
CGI/Autres
Servlet
Autres

Identification du service
(N port, @machine)
TCP/IP
Exemples
- Commerces lectroniques
- Applications Intranet / Internet / Extranet
- Tltravail
- Tlenseignement
- ...
Page 56

Page 28

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.2II.2- Communications
Communications dans
dans les
les systmes
systmes distribus
distribus
II.2.6- Exercices
1- Si les primitives de communication dans un systme client/serveur sont non bloquantes, un appel send rendla
main avant que le message ne soit compltement envoy. Pour rduire les pertes de temps, certains
systmes ne copient pas les donnes dans le noyau, mais les transmettent directement partir de l espace
utilisateur. Pour un tel systme, donnez 2 faons d avertir l appelant que la transmission est termine et
quil peut donc rutiliser le tampon dmission
2- Pour chacune des applications suivantes, pensez vous quune smantique du type une fois au moins soit
meilleure quune smantique du type une fois au plus ? Justifiez :
a) lecture et criture de fichier sur un serveur de fichiers;
b) compilation d un programme;
c) oprateur bancaire distance.
3- Supposons que le temps pris pour excuter un RPC vide (sans donnes) soit de 1ms et qu il faille 1,5ms pour
chaque Ko de donnes. Quel sera le temps mis pour lire 32Ko sur un serveur de fichiers en un seul RPC de
32Ko ? Et en 32 RPC de 1Ko ?
4- Proposer un mcanisme de grer l appartenance un groupe en supposant que le rseau permet la diffusion
globale atomique
5- Considrons un systme distribu dans lequel toutes les machines sont des multiprocesseurs redondants de
telle sorte que la probabilit de panne soit quasi nulle. Proposez une mthode simple pour implanter la
diffusion atomique avec squencement globale un utilisant seulement la monodiffusion. (Indication :
organisez ces machine en un anneau logique)
Page 57

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.1- Introduction
Coopration interprocessus
- Sections critiques
- Exclusion mutuelle
- Mcanismes de synchronisation
- Mcanismes transactionnels

- Mesure de temps dans les


systmes distribus

Systmes centraliss

Systmes distribus

MEMOIRE COMMUNE

MEMOIRES PRIVEES

- Exclusion mutuelle dans un


systme distribu
- Algorithmes d lection
- Algorithmes de transactions
atomiques

Mcanismes
Smaphores
Moniteurs
...

Mcanismes

?
Page 58

Page 29

- Interblocage dans les


systmes distribus

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation d horloge
II.3.2.1- Introduction
Temps

M1 : Edition du prog.

M2 : Compilation

Proprits dalgorithmes distribus


122
1- les informations importantes
sont dissmines sur plusieurs
machines
2- les processus prennent des
dcisions fondes uniquement
sur l information disponible
localement
3- la garantie de la fiabilit doit
tre renforce (talon d Achille
viter)
4- il n existe pas d horloge
commune ni de source de temps
universel

120
123
121

Cration
output.o

124
122
125

Cration
output.c

123

126
124

Horloge M2

Horloge M1
Page 59

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation d horloge
II.3.2.2- Horloges logiques
Algorithme Lamport (1990)

Horloge logique
Temporisateur associ chaque
processeur permettant gnrer
un compteur de temps local (des
impulsion d horloge)

Problme de drive d horloge


Dans un systmes multiprocsseurs
au fil de temps, la synchronisation
des horloges se dgrade

0
A
6
12
18
24
30
36
42 D
48
54
60

Introduction des erreurs

0
8
16
24 B
32
40 C
48
56
64
72
80

(a)
Page 60

Page 30

3
0
10
20
30
40
50
60
70
80
90
100

1
0
A
6
12
18
24
30
36
42 D
48
70
76

2
0
8
16
24 B
32
40 C
48
61
69
77
85

(b)

3
0
10
20
30
40
50
60
70
80
90
100

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation d horloge
II.3.2.3- Horloges physiques
- Besoin pour les applications
temps rel
- Ncessit de plusieurs horloges

Orbite terrestre

- Problmes :
- synchronisation avec lhorloge universelle
- synchronisation entre les horloges

Au transit du Soleil
n jours plus tard
la Terre a tourn d un
peu moins de 360xn

Soleil
Le transit du Soileil correspond
au moment o le Soleil rejoint
son znith

Position de la Terre au moment du


transit du Soleil (jour 0)

Vers une
galaxie
loigne

Position de la Terre au moment du


transit du Soleil (jour n)
Page 61

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation d horloge
II.3.2.3- Horloges physiques
Rglage du dcalage entre TAI et l horloge solaire : 1 seconde saute quand le temps
solaire devient suprieur 800ms

1 2 3 4 5 6 7 8 9 10 11 12 1314 15 1617 1819 20 2122 23 2425 26


TAI

Secondes
solaires

2 3 4 5 6 7 8

9 11 12 13 14 15 16 17 18 19 21 22 23 24 25

TUC = Temps Universel Coordonn


UCT = Universal Coordonated Temps
Secondes sautes introduites quand il devient
ncessaire de se synchroniser avec le soleil
Page 62

Page 31

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation d horloge
II.3.2.4- Algorithmes de synchronisation dhorloges physiques
Modle commun de communication
dC
dt > 1

dC
=1
te dt
i
fa
r
dC
pa
dt < 1
ge
e
t
o
n
l
e
r
l
o
ge
H
rlo
Ho

Ho
r lo
ge
rap
ide

Temps de lhorloge, C

- Chaque machine a 1 compteur de temps qui produit


une interruption H fois /s. Quand ce compteur vient
puisement, le gestionnaire d interruption ajoute 1
lhorloge logique qui sont rgle partir une date fixe
en commun
- Soit C la valeur de cette horloge, soit t le temps TUC,
la valeur de l horloge sur la machine p est Cp(t)
- Dans un monde parfait, on a Cp(t)=t pour tout couple
(p,t). En d autres termes, dC/dt devrait idalement tre
gal 1
- En ralit, il existe une constante , appele taux de
drive maximum, telle que :
1 - dC/dt 1 +
- Si 2 horloges drivent du TUC dans des directions
opposes, leur dcalage aprs un temps t sera au
maximum 2t

TUC,t
Pour garantir que deux horloges ne
drivent pas plus que , alors les
horloges doivent tre resynchronises
au moins toute les /2 secondes

Page 63

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation d horloge
II.3.2.4- Algorithmes de synchronisation d horloges physiques
Algorithme de Cristian (1989)
Machine Client

Serveur de temps

Temps

T0

La correction d une horloge doit se faire graduellement.


On retarde (ou acclre) une horloge rapide (ou lente)
en diminuant (ou ajoutant) un certain nombre de ns
de la (au) constante de temps utilise pour avancer
l horloge logique dans la routine d interruption. Cette
correction a pour une dure ncessaire correspondant
au dcalage de l horloge locale par rapport le CTUC

T1
Chaque machine interroge
priodiquement (< toutes les /2 s)
le serveur de temps pour avoir
l heure courante afin de pouvoir
corriger d une manire adquate
son horloge

La machine Client doit tenir compte le temps de


propagation des messages entre lui et le serveur de
temps. La valeur de correction est
Ccor = (T1-T2)/2 + CTUC
Si le temps de gestion l interruption I sur serveur est
connu, on peut le tenir compte dans la formule :
Ccor = (T1-T2-I)/2 + CTUC
Page 64

Page 32

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation dhorloge
II.3.2.4- Algorithmes de synchronisation dhorloges
Algorithme de Berkeley
2:00

2:00

2:05
0

2:00
2:00

2:30

2:00

1:50

+5
+30

-10

2:30

1:50

-25

3:05

+15

3:05

Dans UNIX de Berkeley (Gusella et Zatti, 1989), le serveur de temps est actif et scructe
priodiquement chaque machine pour luis demande l heure. A partir de ses rponses,
il calcule le temps moyen et demande toutes les machines de rgler son horloge
Page 65

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.2- Synchronisation dhorloge
II.3.2.4- Algorithmes de synchronisation dhorloges
Algorithmes bass sur la moyenne

Chaque machine
diffuse son heure
au dbut d une
priode de temps
[T0+iR, T0+(i+1)R]

Chaque machine dmarre


un temporisateur et collecte
tous les messages arrivs
durant l intervalle S

Page 66

Page 33

Chaque machine excute un


mme algorithme partir des
donnes reu pour l obtention
d une heure moyenne

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.3- Exclusion mutuelle
II.3.3.1- Rappels
Processus A

Sections
critiques

Processus B

Dans les systmes centraliss

Prog.2

Smaphores
Moniteurs
Compteurs d vnements
Messages

Ressource
Commune
Prog.1

Contrainte dans un systme distribu


Exclusion mutuelle

Les mcanismes bass sur une


mmoire commune ne sont plus
valables

A tout instant du systme, il y a au maximum


1 processus qui peut entrer dans une section
critique

Page 67

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.3- Exclusion mutuelle
II.3.3.2- Un algorithme centralis

Demande

Demande
OK
C
Coordinateur

Situation 1

File
d attente
C

Pas de
rponse
2

Coordinateur

Situation 2

Page 68

Page 34

Relchement

2
OK

C
Coordinateur

Situation 3

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.3- Exclusion mutuelle
II.3.3.3- Un algorithme distribu (Ricart & Agrawala-1981)
Hypothse : il existe un ordre total sur les vnements (ex. utilisation de lalgorithme Lamport)

8
0

0
12

OK

OK

12

12

P0 et P2 veulent entrer dans


une mme section critique

OK

OK
P0 est plus ancien, il gagne
et entre en section critique

P1 entre en section critique

Page 69

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.3- Exclusion mutuelle
II.3.3.4- Un algorithme de type anneau jeton

3
0
4

9
5

8
7

- tablir un anneau logique entre les processus


- introduire un jeton dans l anneau
- le processus possdant le jeton peut entrer en section
critique. Il garde le jeton jusqu sa sortie de la section
critique. Il passe ensuite le jeton au processus suivant
dans l anneau logique
- sinon, il passe le jeton au processus suivant dans l anneau
logique

Problmes
- la perte de jeton -> algorithmes de dtection et
rgnrer le jeton
- la panne d un processus -> rgnrer l anneau
ou l algorithme de dtection de la mort du voisin

Page 70

Page 35

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.3- Exclusion mutuelle
II.3.3.5- Conclusion et comparaison
Nombre
de messages
par entre/sortie

Type
dalgorithme

Temps avant
entre

Problmes

Centralis

Plantage du coordinateur

Distribu

2(n-1)

2(n-1)

Plantage d un processus

Anneau jeton

0 n-1

Perte de jeton, plantage de processus

L algorithme distribu est beaucoup plus sensible au plantage que l algorithme centralis !

Page 71

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.4- Algorithmes dlection
II.3.4.1- Introduction
Hypothses
2

- chaque processus a 1 numro d identification unique


- il n existe quun processus par machine
- chaque processus connat l identit de tous les autres
processus, mais ne sait pas qui est actif et qui ne l est pas

3
0

QUI VA NOUS
GOUVERNER ?

8
7

But
organiser une lection qui garantie que :
- le processus lu soit actif
- l lection soit termine avec l accord de tous les
processus sur l identit du processus lu

Page 72

Page 36

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.4- Algorithmes dlection
II.3.4.2- Algorithme du plus fort
2
4

ion
lect

1
lection
lec
tion

2
5

OK
OK
7

(a)

5
n
lection
tio
c
le
n
6
tio
lec
7

(b)
2

3
(c)

2
5

OK
6

0
7

(d)

Coordinateur

3
(e)

Page 73

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.4- Algorithmes dlection
II.3.4.3- Algorithme pour anneau
5
6
7

Message dlection
2
3

Anneau sans jeton


2
3

5
6
Panne de
l ancien
coordinateur

Pas de rponse

5
6

Message dlection
Page 74

Page 37

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.1- Introduction
Niveau bas d abstraction
Sections Critiques
- le contrle de synchronisation doit
tre fait par les programmeurs

Niveau haut d abstraction


Transactions Atomiques
SOLUTIONS

- le contrle de synchronisation est


assur par le systme dexploitation

- les mcanismes de synchronisation


sont visibles dans le programme

- les mcanismes de synchronisation


sont cachs aux programmeurs

- pour des programmeurs bien


spcialiss

- pour des programmeurs non


spcialiss

Problme
Accs concurrents aux ressources communes

Page 75

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.1- Introduction
5 000

Mise jour

10 000

-4 000

C1

C2
Lire(C1)
C1:= C1-5000
Ecrire(C1)
Lire(C2)
C2:= C2+5000
Ecrire(C2)

Panne

Ancien inventaire

Prog.
inventaire

Temps
Rsultat :

C1 = 5 000 et C2 = -4 000

Nouvel inventaire
Un systme tolrant aux pannes

LA PERTE D ARGENT
Page 76

Page 38

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.2- Modle de transaction
TRANSACTION
On appelle transaction l'unit de traitement squentiel, excute pour le compte d'un processus,
applique une mmoire stable cohrente, restitue une mmoire stable cohrente

PROPRITS
- Atomicit :

Une transaction est une unit logique indivisible de traitement qui est soit
compltement excute soit compltement abandonne

- Srialit :

Les transactions concurrentes n interfrent pas entre elles

- Permanence :

Si une transaction est valide, tous les changements par elle sur la mmoire
stable sont devenus dfinitifs
Page 77

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.2- Modle de transaction
Primitives de spcification
des transactions
BEGIN TRANSACTION
END_TRANSACTION
ABORT_TRANSACTION
READ
WRITE

Ordonnancement
transactionnel
Mcanismes de
contrle et de
synchronisation
Excution
concurrente
des transactions

Mmoire stable

Page 78

Page 39

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.2- Modle de transaction
Etat cohrent avant
Etat transitoire

(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)

Mmoire
stable

BEGIN_TRANSACTION
READ C1
C1 := C1 - 5000
WRITE C1
READ C2
C2 := C2 + 5000
WRITE C2
END_TRANSACTION

Etat cohrent aprs


La mise--jour sre par une transaction
Page 79

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.2- Modle de transaction
Transactions imbriques
T
Une transaction peut contenir des sous-transactions
appeles transactions imbriques

T2

T1
T11

T12

T211

T21

T212

T3
T22

T31

T32

T33

- les filles d une transaction n e


sont pas ncessairement excutes
sur le mme processeur
- la profondeur d imbrication peut-tre
quelconque, ce qui engendre certains
problmes de gestion de cohrence et
de performance

T213

Une hirarchie des transactions impliques

Page 80

Page 40

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.3- Implantation de latomicit de transaction
Mmoire d ombre (espace de travail priv)

index

Index privs

index

index

0
1
2

0
1
2

0
1
2
3

0
1
2
3

Page 81

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.3- Implantation de latomicit de transaction
Journal des inscriptions (writeahead log)
Temps
Valeurs du journal par tapes

x=0;
y=0;
begin transaction
x=x+1;

x=0/1

y=y+2;
x=y*y;

x=0/1

x=0/1

y=0/2

y=0/2
x=1/4

end transaction

Page 82

Page 41

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.3- Implantation de latomicit de transaction
Protocole de validation en deux phases (GRAY 78)
Subordonn

Coordinateur

Phase 1

- Ecrire Prparation dans le


journal
- Envoyer le message Prparation
- Ecrire Prt dans le journal
Envoyer le message Prt

- Collection tourtes les rponses

Phase 2

- Ecrire les enregistrements du journal


- Envoyer le message Validation
- Collection toutes les rponses

Ecrire Validation dans le journal


Valider
Envoyer le message Terminer

Page 83

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Dfinitions de base

CONTRLEUR (SCHEDULER) : Un contrleur transactionnel est un module systme charg de


contrler les accs concurrent aux donnes

GRANULE : On appelle granule l'unit de donnes dont l'accs est contrl individuellement par un
contrleur

OPRATION : Une opration est une suite d'actions lmentaires accomplissant une fonction sur un
granule en respectant sa cohrence interne

RSULTAT DE L'OPRATION : Le rsultat d'une opration est l'tat du granule concern aprs
l'application de l'opration considre anssi que les effets de bords provoqus par l'opration

ORDONNANCEMENT DE TRANSACTIONS (SCHEDULE - LOG) : Une ordonnancement des


transactions (T1, T2, ..., Tn) est une squence d'actions lmentaires obtenues en interclassant les diverses
actions des transactions concernant

Page 84

Page 42

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Dfinitions de base : Exemples

T1
Lire A a1
a1 + 1 a1
Ecrire a1 A
Lire B b1
b1 + 1 b1
Ecrire b1 B

ORDONNANCEMENT 1
T1: Lire A a1
T1: a1 + 1 a1
O11
T1: Ecrire a1 A
T2: Lire A a2
O21
T2: a2 * 2 a2
T2: Ecrire a2 A
T1: Lire B b1
O12
T1: b1 + 1 b1
T1: Ecrire b1 B
T2: Lire B b2
T2: b1 * 2 b2
O22
T2: Ecrire b2 B

T2
Lire A a2
a2 * 2 a2
Ecrire a2 A
Lire B b2
b1 * 2 b2
Ecrire b2 B

ORDONNANCEMENT 2
T2: Lire A a2
T2: a2 * 2 a2
T1: Lire A a1
T1: a1 + 1 a1
T2: Ecrire a2 A
T2: Lire B b2
T2: b1 * 2 b2
T1: Ecrire a1 A
T1: Lire B b1
T1: b1 + 1 b1
T1: Ecrire b1 B
T2: Ecrire b2 B

Page 85

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Proprits des oprations
Oprations compatibles

Oprations permutables

Deux oprations Oi et Oj sont


compatibles si et seulement si quel
que soit l excution simultane de
Oi et Oj le rsultat de cette excution
est identique que celui dune excution
squentielle de ces oprations, soit de Oi
suivie par Oj soit de Oj suivie par Oi

O11:
Lire A a1
a1 + 1 a1
Imprimer a1

O21:
Lire A a2
a2 * 2 a2
Ecrire a2 A

Compatibles

Permutables

O12:
Lire A a1
a1 + 1 a1
Imprimer a1

O22:
Lire A a2
a2 * 2 a2
Imprimer a2

Page 86

Page 43

Deux oprations Oi et Oj
sont permutables si et
seulement si toute excution
squentielle de Oi suivie par
Oj donne le mme rsultat
que celle de Oj suivie par Oi

O13:
Lire A a1
a1 + 1 a1
Ecrire a1 A

O23:
Lire A a2
a2+10 a2
Ecrire a2 A

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Ordonnancements srialisables : dfinition
ORDONNANCEMENT SERIALISE - SUCCESSION
(SERIAL SCHEDULE)
Un ordonnancement O de T1, .., Tn est dit srialis
s'il est une excution squentiel des ces transactions
(formellement sil existe une permutation
de (1, 2, ..,n) telle que O = < T(1), T(2), .., T(n) >)

PROPRIT
Une succession est une
excution sans perte
d'oprations ni
inconsistances

ORDONNANCEMENT SRIALISABLE
(SERIALIZABLE SCHEDULE)
Un ordonnancement quelconque de T1, .., Tn est dit srialisable si et
seulement sil donne pour chaque transaction participante le mme
rsultat qu'une succession de T1, .., Tn

Page 87

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Ordonnancements srialisables : caractrisation
Transformations de base
- Sparation des opration :
remplacer les excutions simultanes des
couples d oprations compatibles E(Oi,Oj)
par l excution squentielle quivalente
(soit <Oi,Oj> soit <Oj,Oi>
- Permutation d oprations:
remplacer l ordre d excution d un
couple d oprations permutables <Oi,Oj>
par l ordre inverse <Oj,Oi>
Thorme 1
Une condition suffisante pour qu un ordonnancement
soit srialisable est qu il puisse tre transform par
l application des deux transformations de base en un
ordonnancement srialis (succession) des transactions
composantes

ORDONNANCEMENT 1
T1: Lire A a1
T1: a1 + 1 a1
O11
T1: Ecrire a1 A
T2: Lire A a2
O21
T2: a2 * 2 a2
T2: Ecrire a2 A
T1: Lire B b1
O12
T1: b1 + 1 b1
T1: Ecrire b1 B
T2: Lire B b2
T2: b1 * 2 b2
O22
T2: Ecrire b2 B

Page 88

Page 44

ORDONNANCEMENT 2
T1: Lire A a1
T1: a1 + 1 a1
O11
T1: Ecrire a1 A
T1: Lire B b1
O12
T1: b1 + 1 b1
T1: Ecrire b1 B
T2: Lire A a2
T2: a2 * 2 a2
O21
T2: Ecrire a2 A
T2: Lire B b2
T2: b1 * 2 b2
O22
T2: Ecrire b2 B

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Ordonnancements srialisables : Graphe de prcdence
Prcdence
Soit S une ordonnancement sans opration simultane. On dit que Ti prcde Tj (not Ti<Tj) dans S si et seulement
s il existe deux oprations non permutables Oi et Oj telles que Oi est excute par Ti avant Oj par Tj
ORDONNANCEMENT 1
T1: A+1 A
T2: A*2 A
T1: B+1 B
T2: B*2 B

T1

ORDONNANCEMENT 2

Thorme 2
Une condition suffisante pour
quun ordonnancement soit
srialisable est que le graphe
de prcdence associ est
sans circuit

T1: A+1 A
T2: A*2 A
T2: B*2 B
T1: B+1 B

T1

T2

T2

Page 89

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Verrouillage en deux phases
T1, T2, ...,Tn n transactions excuter
Matrice de compatibilit
L

0
C

A(g,i) est le vecteur de mode actuellement


pos par Ti sur le granule g

Oprations protocolaires
- LOCK(g,M) permet une transaction demander de poser
un verrou de type M sur le granule g
- UNLOCK(g) permet une transaction demander de lever
le verrou qu il a pos sur le granule g
Thorme
Les modes d opration demands lors d une primitive
LOCK(g,M) excute par une transaction Tp sont compatible
avec les modes en cours d excution sur g par les autres
transaction si et seulement si :
M (C * A(g,i))
ip

M est le vecteur de modes de verrou demands


par une transaction Tp sur le granule g
Page 90

Page 45

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Verrouillage en deux phases
Procdure LOCK (g,M)
Si M (C * A(g,i))
ip

alors A(g,p) := A(g,p) M


sinon inserer (p,M) dans Q[j] ;
bloquer la transaction Tp ;
finsi;
fin LOCK;

Procdure UNLOCK (g)


A(g,p) := (0);
Pour chaque (q,M ) de Q[g] faire
Si M (C * A(g,i))
iq

alors A(g,q) := A(g,p) M


Extraire (q,M ) de Q[j] ;
dbloquer la transaction Tq ;
finsi; finpour;
fin UNLOCK;

Restriction deux phases


Une transaction est dit deux phases
si et seulement si elle n excute pas de
LOCK aprs avoir excut UNLOCK

Thorme
Tout ordonnancement complte d un ensemble de
transactions deux-phases est srialisable

Page 91

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Verrouillage en deux phases
Nombre de verrous

Point de verrouillage
Phase
de diminution

Phase
de croissance

Temps

Page 92

Page 46

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Contrle de concurrence optimiste (Kung et Robinson, 1981)
Ide de base
1) Allez de l avant et faites tout ce que vous voulez, sans faire attention ce que les autres font
2) S il arrive un problme, on s en occupera plus tard

Principes de fonctionnement
- considrer que chaque transaction se compose de deux tapes :
- une tape de lecture et calcul priv
- une tape d'criture relle dans la base (commitment)
- ordonner les transactions selon le moment o elles terminent la premire tape de lecture et de calcul
- contrler que les accs conflictuels aux granules s'effectuent bien dans l'ordre ainsi obtenu

Page 93

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Implantation de srialit de la transaction
Estampillage
Estampille de granule

Estampille de transaction
valeur numrique unique associe une transaction
au moment de son commencement

valeur numrique associe un granule mmorisant


l estampille de la dernire transaction ayant opr
sur ce granule

Principes
1- toute transaction a un estampille unique. Les estampilles forme un ordre total des transaction
2- une transaction ayant accd un granule doit mmoriser son estampille sur le granule
3- une transaction veut accder un granule doit comparer son estampille avec ce du granule, si il est
plus jeune que celui dernire, il peut accder au granule
4- dans le cas contraire, il devra se suicider

Page 94

Page 47

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage

Quatre stratgies de gestion

t1

t4

1. La politique de l autruche (ignorer le problme)


T1

2. La dtection (permettre aux interblocages de se


produire, les dtecter, puis tenter de les liminer)
3. La prvention (rendre de faon statique les
interblocages structurelles impossibles)

T2

t3

4. L vitement (viter les interblocages en distribuant


les ressources avec prcaution)

t2

t1 > t2 > t3 > t4

Page 95

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage
Graphe des attentes et graphes d allocation
Graphe des attentes (Murphy68)

Graphe des allocations (Holt72)

Soient T l ensemble de n transactions concurrentes


et R une relation binaire sur T, appele attend ,
dfinie comme suit : Ti attend Tj si et seulement
si Ti attend le verrouillage d un granule g qui a dj
t verrouill par Tj. G(T,r) est le graphe conu sur
T par cette relation R

Soient T l ensemble de n transactions concurrentes


et G l ensembles des granules. Le graphe des allocations
se compose des sommets dans T+G et des arcs dfinis
comme suit : un arc relie Gi Tp si et seulement si Tp a
obtenu le verrouillage sur Gi; un arc relie Tq Gj si et
seulement si Tq attend un verrou sur Gj

Thorme :
Il existe un interblocage si et seulement si le graphe
des attentes possde un circuit

Thorme :
Une condition ncessaire d existence d un interblocage
est que le graphe des allocations possde un circuit

T0

T1

T1

T2

G1

G2

T2

Page 96

Page 48

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage
Dtection des interblocages : algorithmes centraliss
Machine 0
A

Machine 1
S

Coordinateur
A

Coordinateur
C

(1)

(2)

(4)

(3)

Problme de la mort injuste

Page 97

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage
Dtection des interblocages : algorithmes distribus

(0,8,0)
Machine 1

Machine 0

Machine 2

(0,4,6)
(0,2,3)
2

4
3
5

6
(0,5,7)

Algorithme de Chandy-Misra-Haas (1983)

Page 98

Page 49

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage
Prvention des interblocages : gnralit
Principe
La prvention des interblocages consiste construire prudemment le systme de faon de rendre les interblocages
structurellement impossibles. Autrement dit, elle consiste supprimer l une des conditions qui rend possible
l interblocage

Contraintes d allocation
- un processus ne dtient quune
ressource la fois
- un processus doit dclarer toutes
ces ressources quil a besoin
- un processus doit relcher les
ressources quil dtient pour
pouvoir allouer une nouvelle

Ordonnancement des ressources

Ordonnancement des transactions

- prordonner toutes les


ressources du systme

- prordonner toutes les


transactions par l estampille

- un processus doit acqurir les


ressources quil a besoin dans
l ordre strictement croissant

- dterminer une politique


d allocation des ressources
adquate permettant d viter les
interblocages

Page 99

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage
Prvention des interblocages : algorithme attente-mort (wait-die)

Plus vieux
10

Attente

Mort

Plus jeune
20

Dcision
Plus jeune
20

Plus vieux
10

Page 100

Page 50

IIII- Partie
Partie II
II :: systmes
systmes distribus
distribus

II.3II.3- Synchronisation
Synchronisation dans
dans les
les systmes
systmes distribus
distribus
II.3.5- Transaction atomiques distribues
II.3.5.4- Interblocage
Prvention des interblocages : algorithme blessure-attente

Plus vieux
10

Premption
Blesser le jeune

Attente

Plus jeune
20

Dcision
Plus jeune
20

Plus vieux
10

Page 101

Page 51