Vous êtes sur la page 1sur 174

Systmes

Rpartis
Mr. Mehrez Boulares, Mr. Nour Ben Yahia

2013-2014

Introduction aux systmes rpartis

Les ordinateurs ont subi des changements incroyables depuis leur mise en
opration vers 1945:
plus en plus de puissance,
cot de fabrication a constamment diminu permettant aux usagers de
disposer d'un objet peu dispendieux compte tenu de ce qu'il nous offre en
retour.
Les appareils subissent des changements constants et de plus en plus rapides
tant du point de vue logiciel que matriel. Depuis trs peu de temps, nous
retrouvons sur le march des systmes multiprocesseurs, des systmes
d'exploitation pour le traitement parallle et des rseaux puissants
d'interconnexion. C'est l l'importance de prendre brivement connaissance
avec le systme d'exploitation de demain.
Nous sommes dj entrs quelque peu dans l'informatique rpartie qui elle
nous amnera vers l'informatique distribue.

ISI Kef - 2013/2014

Introduction aux systmes rpartis

L'informatique rpartie s'oppose la fois l'informatique centralise, celle des


gros ordinateurs, et l'informatique individuelle, celle des micro-ordinateurs.
Elle pallie certains dsavantages de cette dernire par :
Le partage des donnes grce un accs individuel, en lecture, par le
rseau des fichiers communs situs sur un disque quelconque ainsi que
par le transfert de fichiers d'un disque un autre.
Le partage des applications. Pour l'exploitation individuelle, par le rseau,
d'un seul logiciel de base de donnes sur le disque d'une des machines
connectes.
Le partage des ressources : chaque utilisateur connect peut utiliser une
mme imprimante.
les communications : envoi par le rseau de courrier dans une bote aux
lettres lectronique un ou plusieurs utilisateurs connects. Accs par le
rseau tlphonique des services d'informations : annuaires, banques de
donnes, etc.

ISI Kef - 2013/2014

Introduction aux systmes rpartis

ISI Kef - 2013/2014

Introduction aux systmes rpartis

ISI Kef - 2013/2014

Exemple de Systme Rparti : Un


intranet

Source : Coulouris, Dollimore


and Kindberg Distributed
Systems: Concepts and Design

Edition 3, Addison-Wesley
2001

ISI Kef - 2013/2014

Pourquoi une informatique rpartie

Raisons budgtaires : conomie de logiciels, de matriels


Raisons intrinsques : adapter le systme lapplication
BDD rparties, Web, systmes bancaires
Besoin de partager
des informations : fichiers, BDD, messages
des ressources : units de stockage, imprimantes, serveurs
Des services
Acclrer le calcul
Paralllisation de tches
Allger la charge : rduire les goulots d'tranglement
Augmenter la fiabilit : duplication de machines, de donnes ralisation de
systmes haute disponibilit
Qualit de service : diminuer les cots, les dlais, augmenter la disponibilit
Raliser des systmes ouverts, volutifs : adjonction facile de matriels et
logiciels.

ISI Kef - 2013/2014

Inconvnients

Trs peu de logiciels existent sur le march.

Le rseau peut trs vite saturer.

La scurisation des donnes sensibles est complique.

La mise en uvre est difficile.

ISI Kef - 2013/2014

Dfinitions (1)

Un systme plusieurs processeurs nest pas forcment un systme rparti

Quest-ce quun systme rparti, distribu, parallle ?

Classification de flynn [1972]:

On diffrencie les systmes sur la base du flux dinstructions et de donnes.


SISD : PC monoprocesseur
SIMD : machines vectorielles
MISD : pipeline
MIMD : machines multiprocesseurs faiblement et fortement couples
(systmes parallles, systmes distribus, systmes dexploitation
rseaux)

ISI Kef - 2013/2014

10

ISI Kef - 2013/2014

11

Classification de Flynn

L'acronyme PU, de l'anglais,


signifie processeur.
Le terme Instruction Pool
reprsente l'ensemble des
instructions disponibles pour le ou
les PU.
Le terme Data Pool reprsente
l'ensemble des donnes
ncessaires aux calculs.

ISI Kef - 2013/2014

12

Dfinitions (1)

MIMD mmoire partage


Les processeurs ont accs la mmoire comme un espace d'adressage
global. Tout changement dans une case mmoire est vu par les autres
CPU. La communication inter-CPU est effectue via la mmoire globale.

MIMD mmoire distribue


Chaque CPU a sa propre mmoire et son propre systme d'exploitation. Ce
second cas de figure ncessite un middleware pour la synchronisation et la
communication. Un systme MIMD hybride est l'architecture la plus utilise
par les superordinateurs. Ces systmes hybrides possdent l'avantage
d'tre trs extensibles, performants et faible cot.

ISI Kef - 2013/2014

13

Dfinitions (2)

Un systme rparti est un ensemble de sites relis par un rseau, comportant


chacun une ou plusieurs machines.

"Un systme rparti est un systme qui vous empche de travailler quand une
machine dont vous navez jamais entendu parler tombe en panne" Lamport

"Du point de vue utilisateur, un systme rparti se comporte comme un systme


traditionnel, mais sexcute sur de multiples units indpendantes" Tanenbaum

Un systme dexploitation rparti fournit et contrle laccs aux ressources du


systme rparti.

Un systme dexploitation parallle contrle lexcution de programmes sur une


machine parallle (multiprocesseurs).

Un systme dexploitation de rseaux fournit une plateforme de machines


relies par un rseau chacune excutant son propre systme dexploitation.

ISI Kef - 2013/2014

14

Exemples de SRs

WWW, FTP, Mail.

Guichet de banque, agence de voyage.

Tlphones portables (et bornes).

Tlvision interactive.

Agents intelligents.

Robots footballeurs.

ISI Kef - 2013/2014

15

Les diffrentes structures


Les structures centralises

Tous les courriers sont stocks sur C (station centrale).

1 usager = 1 bote aux lettres sur C.

Volume de stockage important sur C.

Disponibilit du service = disponibilit de C.

1 opration = 1 transfert d'informations.

L'architecture centralise consiste en un noyau central fort autour duquel tous les
priphriques sont regroups (ou centralises). Ce noyau central prend la plupart des
actions. L'avantage est une facilit d'administration.

ISI Kef - 2013/2014

16

Les diffrentes structures


Structure dcentralise-ou rpartie

les architectures de rseau informatique se sont de plus en plus orientes vers une

distribution des ressources et de la puissance informatique.

Internet est sans doute l'exemple le plus marquant d'un rseau architecture
distribue puisqu'il ne possde aucun site central.

Dans la mise en uvre de rseaux de moins grande ampleur, le degr de distribution


(ou de centralisation) de la puissance de calcul, des priphriques, des bases de
donnes

dpend

professionnelles.

ISI Kef - 2013/2014

de

diffrentes

considrations

stratgiques,

humaines

et

17

Les diffrentes structures


Structure parallles (Systmes de haute performance)
Les ordinateurs parallles sont des machines qui comportent une architecture parallle,
constitue de plusieurs processeurs identiques, ou non, qui concourent au traitement
d'une application. La performance d'une architecture parallle est la combinaison des
performances de ses ressources et de leur agencement. (Latence, dbit).

ISI Kef - 2013/2014

18

Les diffrentes structures


Structure parallles (Systmes de haute performance)
Architectures parallles :
Pas de limite de mmoire.
Pas de limite de processeurs.
Acclration des calculs complexes ou coteux en temps d'occupation CPU
(calcul matriciel, simulation numrique, transforme de fourrier...).
Calcul rptitif sur un large ensemble de donnes structur.
Traitement indpendant.

ISI Kef - 2013/2014

19

Les diffrentes structures


Structure parallles (Systmes de haute performance)
Le paralllisme est la consquence :
Besoin des applications.
Calcul scientifique.
Traitement d'images.
Bases de donnes qui demandent des ressources en CPU et en temps de
calcul de plus en plus importantes.
Limites des architectures squentielles.
Performance.
Capacit d'accs la mmoire.
Tolrance aux pannes.

ISI Kef - 2013/2014

20

Comparaison entre diffrentes architectures


Comparaison des deux architectures de Systmes de
haute performance et de Systmes distribus

Un systme parallle de HP est une rponse un besoin de HP :


Une solution au problme.
Un systme distribu est une solution un problme de distribution
gographique (historiquement).
Mais de nos jours, la distribution peut rsoudre un problme de HP.
Donc, dans certains cas, un SD peut tre considr comme un systme de
HP.

ISI Kef - 2013/2014

21

Comparaison entre diffrentes architectures


Comparaison des deux architectures centralise et
distribue
L'architecture centralise supporte un noyau central alors que l'architecture
distribue peut supporter plusieurs.
Le cot de l'une ou l'autre architecture varie suivant le domaine. En rgle
gnrale, si les priphriques ne sont pas utiliss plein temps (par
exemple, une imprimante), l'architecture centralise est plus conomique
(car on conomise en se basant sur le fait que tous les priphriques ne
seront jamais tous utiliss en mme temps). Dans le cas contraire (carte
vido, rseau de PC), c'est l'architecture distribue la plus conomique (un
gros ordinateur cote plus cher que 10 petits ordinateurs 10 fois moins
puissants).

ISI Kef - 2013/2014

22

Comparaison entre diffrentes architectures


Comparaison
distribue

des

deux

architectures

centralise

et

Du point de vu de larchitecture :
Pas parallle/Pas distribu : Machine squentielle (un seul processeur).
Parallle/Pas Distribu : Machines vectorielles, Machines mmoires
partages, Machines SIMD.
Pas Parallle/Distribu : Rseau dordinateurs avec communication lente
exemple : Internet.
Parallle/Distribu : Rseau haut dbit.

ISI Kef - 2013/2014

23

ISI Kef - 2013/2014

24

ISI Kef - 2013/2014

25

Systmes parallles

Systmes rpartis

Systmes
dexploitation de
rseaux

Processeurs

Sites

Ressources

Homognes

Htrognes

Htrognes

Partage ou non de mmoire

Mmoires individuelles

Mmoires individuelles

Couplage fort

Couplage failbe

Couplage failbe

Topologie du rseau
dinterconnexion

Rseau LAN + WAN

Rseau LAN

Les users sont au courant de


la multiplicit des
Processeurs

Les users ont limpression dtre dans un


systme centralis

Les users sont au courant de la


multiplicit des Machines

ISI Kef - 2013/2014

26

Identification des problmes

Que doit rsoudre un systme rparti ?


Tolrance aux pannes.
Passage lchelle.
Nommage et accs aux applications.
Intgration de lexistant.
Dploiement des applications.
Scurit et authentification.
Disponibilit de lapplication

ISI Kef - 2013/2014

27

Tolrance aux pannes

En anglais : reliability, fault tolerance.


Un serveur participant lapplication tombe en panne.
Un serveur envoie des informations errones.
Un serveur nest plus atteignable (mais pas en panne) puis le
redevient.
Atomicit dans les applications rparties.

ISI Kef - 2013/2014

Passage lchelle

En anglais : scalability.
Ce qui marche pour un utilisateur, marchera-t-il pour 10 000 ?
Ce qui marche pour un objet, marchera-t-il pour 1 000 000 ?
Ce qui marche pour un site, marchera-t-il pour 1000 ?
Exemple : les applications de gestion de commerce
lectronique.

ISI Kef - 2013/2014

28

29

Nommage et accs aux applications

Nommage et accs aux applications


En anglais : naming.
Comment retrouver les objets distants ?
Un objet = un identifiant + un tat + un comportement.
Applications non rparties : nommage gr par le langage
(rfrence) ou par lOS (adressage).
Applications rparties : nommage explicite, dynamique ?
Exemple de nommage : DNS, URL,

ISI Kef - 2013/2014

Intgration de lexistant

En anglais : legacy.
Connexion sur toutes les ressources dune entreprise.
Interoprabilit des applications.
Transactions rparties.

ISI Kef - 2013/2014

30

31

Dploiement des applications

Comment installer tous les composants logiciels sur


diffrents clients et serveurs ?
Lorsque je change un nom de serveur ou jen ajoute un, je
recompile ? je redploie ? ou je peux configurer
automatiquement le redploiement ?

ISI Kef - 2013/2014

32

Scurit et authentification

Confidentialit.
Intgrit :
Droits daccs, Pare-Feu.
Authentification :
Identification des applications partenaires.
Non-rpudiation.
Messages authentifis.
Combien de personnes utilisent lapplication, qui sont-ils ?
Ncessit de se protger contre les intrusions.
Ncessit de stocker les accs des clients dans des fichiers journaux.

ISI Kef - 2013/2014

Disponibilit dune application


rpartie

Exemple : un serveur qui fait de la tolrance aux pannes ne


peut plus assurer dautres tches.
Permettre des accs simultans sur un mme objet :
Srialiser les objets.
Parallliser les accs.
Appliquer diffrentes politiques.
Multi-threading.

ISI Kef - 2013/2014

33

34

Notions de Middleware

Middleware = Intergiciel = classe de logiciels systmes agissant en qualit


dinfrastructure pour le dveloppement ou le dploiement dapplications
reparties: exemple CORBA
Supporte des applications tournant sur des plateformes matrielles et
logicielles diffrentes.
Le middleware fournit :
un support de haut niveau pour la distribution exemple invocation de
mthodes distance.
Des services de dsignation, scurit, transactionnels

ISI Kef - 2013/2014

35

Le Middleware conceptualise et ralise les fonctions suivantes :


communications entre les applications rparties,
changes de donnes,
facilits de mise en uvre.
Il rsout les problmes dintgration et dinteroprabilit :
indpendance entre les applications et le systme dexploitation,
portabilit des applications,
partage des services distribus.
Services dun Middleware :
communication,
localisation,
transactions,
scurit,
administration

ISI Kef - 2013/2014

36

Types de Middleware

Middleware de bases de donnes (ODBC)


Middleware messages MOM Message OrientedMiddleware : IBM
MQSeries, Microsoft Message Queues.
Middleware objets rpartis (CORBA, JAVA RMI)
Middleware composants (EJB, COM/DCOM, Web services)
Middleware environnement : XML

ISI Kef - 2013/2014

Historique et tat de lart

1960
Syst. temps partag(unix), envir. Graphiques, rseaux
1970
Ordinateurs personnels, Stations de travail
Client/serveur, Rseaux locaux : Ethernet
XeroxDFS
1980
Systmes ouverts,Tolrance aux fautes
Premiers serveurs de fichiers
volution du C/S : Appel de procdures distance
DNS en 85,
Amoebaen 84, Mach en 86, Chorus en 88
1990
Internet, E-commerce
AFS, NFS, LDAP
DCE, corba, com/dcom

ISI Kef - 2013/2014

37

38

Le modle Client-Serveur (1/2)

Cot serveur :
Externalisation de services.
Attente de requtes en provenances de clients puis excution des requtes en
squentiel ou en parallle.
Interface : Skeleton
reoit lappel sous forme de stream
dcapsule les paramtres
demande lexcution
renvoi les paramtres (par rfrences) et les rsultats
Cot client :
mission de requtes puis attente de la rponse.
Initiateur du dialogue.
Interface : Stub
Reoit lappel en local
encapsule les paramtres
attends les rsultats du serveur
dcapsule les rsultats
redonne la main la fonction appelante

ISI Kef - 2013/2014

39

Le modle Client-Serveur (2/2)

Client/Serveur traditionnel :
RPC
Client/Serveur objets :
RMI, CORBA, DCOM
Client/Serveur de donnes :
Requtes SQL
Client/Serveur WEB :
CGI, Servlet, asp, jsp, php,...

ISI Kef - 2013/2014

40

Du centralis vers le rparti

ISI Kef - 2013/2014

Gestion du temps dans


les SRs
Mehrez Boulares, Nour Ben Yahia
ISI KEF 2013/2014

INTRODUCTION

Les systmes rpartis sont prsents dans toutes les applications et sont,
par nature, trs complexes. Le problme principal est quil ny a plus dtat
global connu de toutes les parties mais seulement des tats locaux
permettant de faire merger un tat global.

La proprit dmergence est souvent mentionne dans les systmes


agents ou systmes multi agents : lactivit de chacun concourt la
ralisation dun objectif global.

Trs naturellement, le contrle de ces systmes rpartis nest pas simple


mais il est important de pouvoir sassurer de la ralisation dun objectif
donn par un ensemble dactivits lmentaires.

ISI Kef

INTRODUCTION

Un systme rparti est constitu de N composants (processus ou sites)


communiquant par messages (et uniquement de cette manire).
Chacun de ces composants agit comme un automate : il ralise des
oprations qui modifient son tat.
Les oprations ralises par un des composants sont naturellement
ordonnes par l'ordre dans lequel elles sont ralises :
sil s'agit d'un processus abritant plusieurs activits (threads),
sur un systme monoprocesseur, c'est l'ordre de l'excution des
instructions des instructions sur ce processeur qui ordonne les
vnements.
La dfinition de l'ordre des vnements sur un systme multiprocesseurs
(fortement et a fortiori faiblement coupls) est plus problmatique du fait de
la difficult de maintenir une notion de temps absolu cohrente.

ISI Kef

INTRODUCTION
Dans un contexte de rpartition:
Lobservation des programmes en excution prsente des difficults qui rendent
le problme non trivial.
Un programme rparti est constitu dun ensemble de processus sexcutant en
parallle et communiquant seulement par envoi de messages sur des canaux
les interconnectant.
Il ny a pas dhorloge commune aux diffrents processus, et de plus, les temps
de transfert des messages ne sont pas borns (dans un contexte de
communication fiable, ils sont toutefois finis).
Dans ces conditions, il est impossible deffectuer une observation simultane
de ltat des diffrents processus et canaux.
La ralisation dune observation cohrente qui reflte un tat global constitu
des tats locaux des diffrentes parties du systme, pris des instants
physiques diffrents mais de manire rendre une information utile sur ltat du
systme dans son intgralit, constitue donc un problme dsormais classique,
connu sous le nom de dtection dun tat global rparti cohrent.

ISI Kef

PROBLEMATIQUE

Obtenir une vision instantane d'un systme rparti, consistant en la


collection des tats des diffrents sites le composant (typiquement une
image mmoire de chacun des sites) est difficile obtenir sans figer chacun
des systmes.

L'absence de mmoire commune et le caractre alatoire des dlais


d'acheminement des messages changs entre les sites rendent
impossible le calcul d'un tat global du systme dans un systme rparti.

Typiquement, l'image qu'un site possdera de l'tat des autres sites ne


pourra lui tre communique qu'au travers de messages et ne pourra de ce
fait correspondre qu' un tat du pass de ces sites : la chronologie des
diffrentes images ainsi collectes n'est pas connue a priori.

ISI Kef

PROBLEMATIQUE

L'absence d'un tat global accessible directement constitue


incontestablement une caractristique de la rpartition et est source de
difficults dans le dveloppement d'applications relatives :
l'interblocage ou verrou mortel (deadlock): situation dans laquelle un
ensemble de processus est en situation de blocage du fait de
l'existence d'un cycle dans le graphe d'allocations et de demandes des
ressources ces processus ;
le ramasse-miettes (garbage collecting), opration consistant en le
pration des ressources alloues un objet inutilis ;
la mise au point (debugging): opration incluant par exemple la
consultation et/ou la modification des valeurs de variables dans
diffrents composants un instant donn.

ISI Kef

PROBLEMATIQUE

Les Systmes rpartis ont une volution asynchrone


pas de mmoire commune (communication par messages)
pas dhorloge commune
Les horloges locales ne sont pas synchrones et drivent
Ltat dun site distant ne peut tre connu que par des informations
vhicules par les messages.
De plus, les communications introduisent des dlais
L'ordre des messages n'est pas forcment prserv
Consquences :
Perception diffrente des mmes vnements depuis des sites distincts
Chaque site a sa propre horloge, la notion d'tat global n'existe pas
On ne peut pas mettre en uvre des algorithmes rpartis bass sur le
temps.

ISI Kef

CONSTRUCTION DUN TAT GLOBAL

L'excution d'un algorithme rparti est une succession d'vnements,


chacun d'eux se produisant sur un site donn (Un vnement : mission/
rception de message, calcul local au site)
Une horloge unique permet de donner une date chacun des vnements
et de les ordonner entre eux.
Sur chaque site, il est possible de dfinir un tat local et de dfinir un ordre
entre les vnements
Deux processus de deux sites diffrents peuvent avoir des informations
diffrentes sur ltat du systme et sur lordre des vnements qui sy
produisent.
La solution de synchronisation des sites entre eux est donne par la
construction d'un tat global
Utilisation d'horloges : logiques, vectorielles, matricielles
Utilisation dtats locaux des sites et de messages en transit entre
eux

ISI Kef

LE MODLE DE CALCUL

Un systme rparti est constitu dun ensemble fini de processus qui ne


communiquent que par envoi de messages.

La structure dun tel systme peut tre modlise par un graphe orient: les sommets
de ce graphe sont les processus et les arcs reprsentent les canaux de
communication unidirectionnels (canaux virtuels) reliant des processus entre eux.

A priori, aucune hypothse particulire nest faite quant la topologie du graphe.

Les processus seront dsigns par P1, P2,..., Pn et le canal allant de Pi vers Pj, sil
existe, sera dsign par Ci j.

ISI Kef

10

LE MODLE DE CALCUL

Les processus ne partagent ni mmoire commune ni horloge globale, et


aucune hypothse nest faite quant leur vitesse relative. Lenvoi et la
rception de messages sont effectus de manire asynchrone, mais aucun
dlai maximum de transfert des messages nest suppos connu.

La seule hypothse gnrale sur les communications concerne leur fiabilit:


les messages ne sont ni perdus (le dlai de transfert est fini: tout message
mis est reu) ni altrs ni dupliqus (tout message reu a t mis). De
telles hypothses caractrisent ce quil est convenu dappeler un systme
rparti asynchrone fiable

ISI Kef

11

ETAT GLOBAL

Chaque processus et chaque canal possde tout moment un tat local. Ltat local
eli dun processus Pi rsulte de son tat initial et de la squence
dvnements dont ce processus a t le sige. Ltat ECij dun canal Cij est
lensemble des messages en transit sur ce canal, cest dire qui ont t mis par le
processus Pi et nont pas encore t reus par le processus Pj.

Lvolution du systme est rgie par un ensemble dvnements. Chaque vnement


met en jeu un processus et ventuellement un canal. Il y a trois sortes dvnements:
les vnements internes un processus, qui ne modifient que ltat local du
processus,
les missions de messages, qui modifient ltat local du processus metteur et
ltat du canal sortant sur lequel est mis le message
et les rceptions de messages, qui modifient ltat local du processus rcepteur
et ltat du canal entrant par lequel le message a t reu.

ISI Kef

12

ETAT GLOBAL

Schmatiquement on a, ce niveau de description (m dsigne un message):


vnement interne sur Pi: provoque la transition de eli el'i , tats avant et aprs
lvnement

mission de m par Pi sur Ci j (cet vnement est not missioni(m)):


provoque la transition de eli el'i et laffectation ECi j := ECi j U {m}
rception de m par Pi sur Cj i (cet vnement est not rceptioni(m)):
provoque la transition de eli el'i et laffectation ECj i := ECj i \ {m} .

ISI Kef

13

ETAT GLOBAL

Chacun de ces vnements est suppos atomique.


On dit quun vnement e est capt dans ltat local eli dun processus Pi
si e appartient la squence dvnements ayant conduit Pi dans ltat eli.
Il est important de remarquer que ltat local dun processus nest immdiatement
observable que par un observateur local ce processus (cest dire ayant accs en
lecture la mmoire locale de ce processus), tandis que ltat local dun canal C i j
nest immdiatement observable ni par son origine Pi ni par son extrmit Pj (Pi resp. Pj- na pas connaissance immdiate des vnements de rception -resp.
dmission-); cest notamment ce fait qui rend difficile le problme de lobservation
cohrente dans un systme rparti.
Ltat global S dun systme rparti est constitu de lensemble des tats locaux des
processus et des canaux qui le constituent

ISI Kef

14

ETAT GLOBAL
Un tat global cohrent correspond un tat global dans lequel le systme peut se
trouver. Formellement, cela signifie:
i) i : eli est un tat local du processus Pi.
ii) Les conditions C1 et C2 qui suivant sont vrifies:
C1: si lvnement missioni(m) est capt dans eli, alors lvnement rceptionj(m) est soit capt dans elj, soit le message m appartient ecij.

C2: si lvnement missioni(m) nest pas capt dans eli, lvnement rceptionj(m) nest pas non plus capt dans elj.

ISI Kef

15

ETAT GLOBAL

Considrons lexcution reprsente par la figure 2, o trois processus Pi, Pj et Pk


captent respectivement leurs tats locaux eli, elj et elk (le graphe de communication
est celui de la figure 1).

ISI Kef

16

ETAT GLOBAL

Lensemble { eli, elj, elk} ne forme pas un tat global.

Si lon considre la paire (Pk, Pj), lmission du message m3 est enregistre dans
ltat local elk du processus Pk alors que sa rception ne lest pas dans ltat local elj
du processus Pj.
La condition C1 est mise en dfaut, puisque ltat du canal ECkj nest pas
considr (un ventuel redmarrage de Pj et de Pk, suite une reprise aprs
dfaillance, partir de cet tat global entranerait la perte du message m3).

Dautre part, mme en considrant ltat des canaux dans ltat global, la cohrence
nest pas assure car la rception du message m4 est enregistre dans elj sans que
son mission le soit dans ELk,
ce qui met en dfaut la condition C2 (les deux tats locaux elj et elk et ltat du
canal ECjk ne sont pas mutuellement cohrents).

ISI Kef

17

NOTION DE PRCDENCE CAUSALE

Pour dfinir un tat global il faut tout dabord pouvoir ordonner les vnements entre
eux, afin que :
Si un des vnements contient lmission dun message et que lautre contient la
rception du mme message, alors le premier a eu lieu avant le second.
Si un site met une demande dallocation dune ressource, il est considr avant
un autre site qui aurait mis sa requte aprs le premier.
Cette relation dordre partiel sur les vnements est appele relation de causalit.
On dfinit la prcdence comme suit :
Un vnement e prcde un vnement f si et seulement si :
Ou bien e et f se droulent sur le mme site dans cet ordre
Ou bien e contient lmission dun message m et f contient la rception du mme
message m.

ISI Kef

18

NOTION DE PRCDENCE CAUSALE

Un vnement E1 sur un site 1 prcde un autre vnement E2 sur un site 2 si E1 a


t gnr avant E2 :
Il ya une prcdence causale entre E1 et E2.
Il existe une chaine dvnement qui dmarre E1 et finit par E2 et qui consiste
par un enchainement mission, excution et rception.
La prcdence causale est concrtise par le mcanisme dhorloge logique, une
notion logique permettant de comparer logiquement les vnements de point de vu
leur ordre dexcution quelque soit le site.
Afin de dater les vnements des horloges logiques de diffrents types peuvent tre
utilises : Scalaire, Vectorielle, Matricielle.

ISI Kef

19

NOTION DE PRCDENCE CAUSALE

ISI Kef

NOTION DE PRCDENCE
CAUSALE

20

Cette relation dfinit un ordre partiel des vnements. Des vnements e et e' non
comparables sont dits concurrents, ce qu'on note e||e'.
A un vnement e on peut alors associer trois ensembles d'vnements :
Pass(e) : ensemble des vnements antrieurs e dans l'ordre causal (e appartient
cet ensemble) ;
Futur(e): ensemble des vnements postrieurs e dans l'ordre causal (e appartient
cet ensemble) ;
Concurrent(e) : ensemble des vnements concurrents avec e.

ISI Kef

21

NOTION DE PRCDENCE CAUSALE

La prcdence causale est concrtise par le mcanisme des horloges logiques, une
notion de temps logique permettant de comparer logiquement des vnements du
point de vue de leur ordre d'excution quel que soit le site.

Afin de dater les vnements, des horloges logiques de diffrents types peuvent tre
dfinies afin de rendre compte de la relation de causalit entre les vnements.
Les valeurs des horloges associes des vnements (leurs estampilles logiques)
comparables doivent tre elles-mmes comparables et reflter l'ordre des
vnements

ISI Kef

22

HORLOGE LOGIQUE

Lamport a propos de dfinir pour ce type de systmes une notion de


temps logique permettant de comparer logiquement des vnements du
point de vue de leur ordre d'excution : d'une part, sur un site, les
vnements locaux peuvent tre ordonns en se basant sur l'ordre de leur
excution (ou le temps absolu s'il est dfini) et d'autre part l'mission d'un
message sur le site metteur prcde toujours sa rception sur le site
rcepteur. Cela correspond la notion de prcdence causale.

ISI Kef

23

HORLOGE LOGIQUE

Selon Leslie Lamport l'horloge logique permet de comparer logiquement des


vnements (requtes, messages) du point de vue de leur ordre d'excution
(Horloges scalaires)
Chaque site gre une horloge de type compteur dont la valeur est un entier
(initialis 0 au lancement du systme).
La valeur de l'horloge logique d'un site est incrmente chaque fois qu'un
vnement local s'y produit : opration locale, ou envoi/rception d'un message.
Dans le cas d'un envoi, la valeur courante (aprs incrmentation) de l'horloge de
l'metteur est embarque avec le message et sert l'estampiller (La rception
d'un message permet de synchroniser l'horloge du rcepteur avec celle de
l'metteur du message qui est transporte par le message. Le principe est
simple : il consiste attribuer l'horloge du rcepteur une valeur suprieure la
fois la valeur courante de l'horloge du site et celle de l'estampille du message
reu.)
La rception d'un message permet de synchroniser l'horloge du rcepteur avec
celle de l'metteur du message qui est transporte par le message.

ISI Kef

24

HORLOGE LOGIQUE SCALAIRE

Principe : attribuer l'horloge du rcepteur une valeur suprieure la fois a valeur


courante de l'horloge du site et celle de l'estampille du message reu.
Consquence : Garantit que la rception sera postrieure l'mission.

ISI Kef

25

HORLOGE LOGIQUE SCALAIRE

ISI Kef

26

HORLOGE LOGIQUE SCALAIRE

ISI Kef

27

HORLOGE LOGIQUE SCALAIRE

Cette technique permet donc d'associer chaque vnement une date (estampille
logique) correspondant la valeur de l'horloge de son site modifie selon les rgles
que nous venons de dfinir. On peut observer que :
l'ordre des vnements qui est ainsi dfini n'est pas un ordre strict : plusieurs
vnements peuvent porter la mme valeur. C'est le cas (parmi d'autres) sur notre
exemple des vnements e, o et x appartenant respectivement P, Q et R qui ont
chacun 6 comme date. Il est facile de rendre cet ordre strict en modifiant lgrement
le systme de datation : la date d'un vnement sur un site est obtenue en adjoignant
la valeur de l'horloge scalaire de ce site l'identification du site (par exemple un
entier attribu artificiellement ou une adresse IP ou physique).

ISI Kef

28

HORLOGE LOGIQUE SCALAIRE


La rgle de comparaison des dates est alors :

ISI Kef

29

HORLOGE LOGIQUE SCALAIRE

De nombreux algorithmes rpartis :


Algorithmes utilisant une file dattente virtuelle rpartie (Exclusion mutuelle
rpartie, mise jour de copies multiples, diffusion cohrente (ordre de rception
uniforme))
Dtermination de laccs le plus rcent (gestion cohrente de caches multiples,
mmoire virtuelle rpartie)
Synchronisation des horloges physiques (borne suprieure sur la drive entre
sites)
Algorithmes de dtection de terminaison, d'lection, de diffusion de messages,

ISI Kef

30

HORLOGE LOGIQUE VECTORIELLE

Nous venons de voir que le systme de datation par estampilles scalaires d'une part
introduisait un ordre artificiel sur des vnements concurrents et d'autre part ne
permettait pas de corriger les dfaillances vis--vis de la relation FIFO des canaux de
communication. Le mcanisme de datation par estampilles vectorielles (et les
horloges vectorielles maintenues par les diffrents composants d'un systme) permet
de pallier ces deux inconvnients.
Chaque site gre une horloge vectorielle constitue de n entiers (n est le nombre de
composants du systme). Une telle horloge permet de dater les vnements d'un site
et est mise jour lors de l'occurrence des vnements. Comme pour les horloges
scalaires, les messages envoys par un site sont estampills en utilisant la valeur
courante de l'horloge vectorielle du site metteur et la rception d'un message pemet
au site rcepteur de synchroniser son horloge vectorielle avec celle du site metteur
du message.
De manire plus prcise, les rgles suivantes sont appliques pour la gestion des
horloges vectorielles:

ISI Kef

31

HORLOGE LOGIQUE VECTORIELLE

ISI Kef

32

HORLOGE LOGIQUE VECTORIELLE

ISI Kef

33

HORLOGE LOGIQUE VECTORIELLE

La proprit fondamentale que possdent les estampilles vectorielles dduites des


horloges vectorielles et de leur actualisation par les rgles nonces est que

Par exemple l'estampille vectorielle de l'vnement p est [4, 7, 5]. Cela correspond
au fait que Pass(p) contient
4 vnements sur P (a, b, c, d);
7 vnements sur Q (j, k, l, m, n, o, p);
5 vnements sur R (u, v, w, x, z).

ISI Kef

34

HORLOGE LOGIQUE VECTORIELLE

La relation d'ordre suivante peut par ailleurs tre dfinie sur les estampilles
vectorielles :

Par exemple [4,7,5] est plus petite que [6,7,8], plus grande que [4,6,4] et
incomparable avec [6,5,7]

ISI Kef

35

HORLOGE LOGIQUE VECTORIELLE

Muni de cette relation d'ordre, le systme de datation par estampilles vectorielles a la


remarquable proprit de reflter exactement la relation de prcdence causale entre
vnements :

ISI Kef

36

HORLOGE LOGIQUE VECTORIELLE

On peut vrifier sur notre exemple que :


les estampilles vectorielles des vnements prcdant causalement p sont
infrieures (au sens qui a t dfini) l'estampille vectorielle de p ([4,7,5]).
Par exemple l'estampille vectorielle de l'vnement d antrieur p est ([4,1,0]) qui
est infrieure ([4,7,5]);
les estampilles vectorielles des vnements suivant causalement p sont suprieures
l'estampille vectorielle de p.
Par exemple l'estampille vectorielle de l'vnement C postrieur p est ([8,9,9]) qui
est suprieure ([4,7,5]);
les estampilles vectorielles des vnements concurrents de p sont incomparables
avec l'estampille vectorielle de p;
Par exemple l'estampille vectorielle de l'vnement e concurrent avec
l'vnement p est ([5,3,3]) qui est incomparable avec ([4,7,5]).

ISI Kef

37

Correction TD

ISI Kef

38

Correction TD

Considrons l'vnement p.
Il appartient son propre pass et est prcd directement par o et y.
- On a Pass(p) = {p} + Pass(o) + Pass(y)
Le calcul de Pass(p) suppose donc le calcul de celui de o et y.
- On a Pass(o) = {o} + Pass(n) + Pass(d)
En pousuivant le calcul:
- Pass(n) = {n} + Pass(m)
- Pass(m) = {m} + Pass(l) + Pass(a)
- Pass(l) = {l} + Pass(k)
- Pass(k) = {k} + Pass(j) + Pass(u)
- Pass(j) = {j}
- Pass(u) = {u}
- Pass(a) = {a}
- Pass(d) = {d} + Pass(c)
- Pass(c) = {c} + Pass(b)
- Pass(b) = {b} + Pass(a) + Pass(j)
- Pass(y) = {y} + Pass(x)
- Pass(x) = {x} + Pass(w) + Pass(n)
- Pass(w) = {w} + Pass(v)
- Pass(v) = {v} + Pass(u) + Pass(l)
Par consquent Pass(p) = {a, b, c, d, j, k, l, m, n, o, p, u, v, w, x, y}

ISI Kef

39

Correction TD

Par un calcul analogue, on obtient:


Futur(p) = {g, h, i, p, q, r, s, t, C, D}
Finalement les vnements n'appartenant ni Pass(p), ni Futur(p) sont
concurrents avec p.
On a donc Concurrent(p) = {e, f, z, A, B}

ISI Kef

40

Correction TD

ISI Kef

41

Correction TD

ISI Kef

42

Correction TD

ISI Kef

Accs concurrent
dans les SR
Mehrez Boulares, Nour Ben Yahia
ISI Kef

Les accs concurrents : rappels

Un problme d'accs concurrent a lieu quand deux processus partagent une


ressource logicielle ou matrielle: on parle de section critique au niveau du
programme.
Exemples:
section de ligne ferroviaire voie unique. Trains dans un sens ou dans l'autre,
mais pas dans les deux sens en mme temps.
Lecteurs/rdacteurs, producteurs/consommateurs
On rentre en section critique, par une section d'entre qui met en uvre une
condition et on la quitte par une section de sortie.
Section d'entre
Section critique : inst1, inst2, inst3
Section de sortie

ISI Kef

Les accs concurrents : rappels

Rappelons tout d'abord en quoi consiste ce problme. Des applications s'excutant


de manire concurrente et partageant des ressources peuvent, dans certaines
circonstances, avoir besoin d'accder de manire exclusive une ou plusieurs de
ces ressources appeles ressources critiques.
Le code excut ncessitant cet accs exclusif est lui-mme appel une section
critique. On fait couramment le parallle avec une voie de chemin de fer ou un pont
troit supportant une charge limite susceptibles d'tre emprunts par des vhicules
dans les deux sens. Le bon fonctionnement (et la survie des usagers) suppose que
seul un vhicule ne puisse utiliser, un instant donn, la section de rail ou de route
correspondante.
D'un point de vue informatique, ce problme est frquent. Citons-en quelques
exemples :
suite d'oprations dans un fichier ou une base de donnes ;
accs une ressource telle qu'une imprimante ;
accs une zone de mmoire centrale ; (segment de mmoire partage) par
plusieurs processus

ISI Kef

Les tats d'un processus


Un processus est dans 3 tats possibles, par rapport
l'accs la ressource
Demandeur : demande utiliser la ressource, entrer dans la section
Dedans : dans la section critique, utilise la ressource partage
Dehors : en dehors de la section et non demandeur d'y entrer
Changement d'tat par un processus
De dehors demandeur pour demander accder la ressource
De dedans dehors pour prciser qu'il libre la ressource
Le passage de l'tat demandeur l'tat dedans est gr par le systme
et/ou l'algorithme de gestion d'accs la ressource

ISI Kef

Proprits d'un algorithme d'exclusion


mutuelle

Une solution n'est considre correcte que si elle respecte les proprits
suivantes
Sret (safety) : au plus un processus est la fois dans la section
critique (dans l'tat dedans)
Vivacit (liveness) : tout processus demandant entrer dans la section
critique ( passer dans l'tat dedans) y entre en un temps fini

Un algorithme qui assure ces deux proprits assure galement l'absence


de deux problmes, l'interblocage et la famine:
Interblocage (Deadlock) : est une situation du systme o il y a
plusieurs sites l'tat Demandeur et aucun ne peut accder la SC.
Famine (Starvation) : aura lieu si un site qui se trouve l'tat
Demandeur ne passe jamais l'tat Dedans.

ISI Kef

Solutions

On parle d'exclusion mutuelle quand un seul processus la fois a le droit de


rentrer en section critique.
Solutions logicielles : Smaphores, Moniteurs.
Solutions matrielles : Dsactiver les interruptions.

ISI Kef

Solutions matrielles

La solution la plus simple, mais qui ne peut s'appliquer que dans le cas de machines
monoprocesseurs, consiste masquer les interruptions susceptibles de provoquer
une concurrence relativement une ressource critique. Dans le mode superviseur
des processeurs, il est possible de manipuler le masque d'interruption du processeur,
ce qui est largement utilis lors du dveloppement des systmes d'exploitation.

ISI Kef

Solutions logicielles

Nous nous intressons ici la possibilit de rsoudre le problme de l'exclusion


mutuelle sans faire appel des instructions spcifiques et donc en se basant sur les
seules oprations d'affectation et de test. Ainsi qu'on va le voir au travers de solutions
errones, cela n'est pas immdiat et ncessite certaines prcautions.
La premire ide qui vient l'esprit consiste utiliser une variable boolenne ayant la
valeur VRAI lorsqu'un processus est en section critique.

ISI Kef

Les accs concurrents : les smaphores

Smaphores binaires qui peuvent prendre la valeur 0 ou 1 et les smaphores n-aires.


Le systme gre l'entre la section en endormant les processus qui arrivent alors
que le smaphore est attribu,
Les primitives P et V sont indivisibles
P(S) permet de prendre le smaphore :
Si S > 0
Alors s = s -1
Sinon s'endormir
Finsi.
V(S) permet de librer le smaphore et un processus bloqu s'il y en a
Si un processus est bloqu sur S
Alors le librer
Sinon s =s+1
Finsi.

ISI Kef

Les accs concurrents dans un environnement


rparti

Un processus bloqu appartient la file des processus en attente, une fois libr il
passe dans celle des prts
Le systme gre des contextes de processus.
Peut-on grer des contextes distance ? NON

Plusieurs grandes familles de mthodes


Contrle par un serveur qui centralise les demandes d'accs la ressource
partage
Contrle par jeton
Un jeton circule entre les processus et donne l'accs la ressource
La gestion et l'affectation du jeton et donc l'accs la ressource est faite par
les processus entre eux
Deux approches : jeton circulant en permanence ou affect la demande des
processus
Contrle par permission
Les processus s'autorisent mutuellement accder la ressource

ISI Kef

10

11

Dfinitions

Une commutation de contexte (context switch) en informatique consiste


sauvegarder l'tat d'un processus ou d'un processus lger et restaurer l'tat d'un
autre processus (lger) de faon ce que des processus multiples puissent partager
les ressources d'un seul processeur dans le cadre d'un systme d'exploitation
multitche.

Le contexte d'un processus est l'ensemble des informations dynamiques qui


reprsente l'tat d'excution d'un processus (e.g. o est-ce que le processus en est
de son excution).

ISI Kef

12

Exemple

La commutation de contexte invoque au moins trois tapes. Par exemple, en


prsumant que l'on veut commuter l'utilisation du processeur par le processus P1
vers le processus P2 :
Sauvegarder le contexte du processus P1 quelque part en mmoire (usuellement
sur la pile de P1).
Retrouver le contexte de P2 en mmoire (usuellement sur la pile de P2).
Restaurer le contexte de P2 dans le processeur, la dernire tape de la
restauration consistant reprendre l'excution de P2 son point de dernire
excution.

ISI Kef

13

Solution du coordinateur

Principe gnral
Un serveur centralise et gre l'accs la ressource
Algorithme
Un processus voulant accder la ressource (quand il passe dans l'tat
demandeur) envoie une requte au serveur
Quand le serveur lui envoie l'autorisation, il accde la ressource (passe dans
l'tat dedans)
Il informe le serveur quand il relche la ressource (passe dans l'tat dehors)
Le serveur reoit les demandes d'accs et envoie les autorisations d'accs aux
processus demandeurs
Avec par exemple une gestion FIFO : premier processus demandeur, premier
autoris accder la ressource

ISI Kef

14

Solution du coordinateur

Un coordinateur gre l'accs la ressource


Tout processus remplace P(S) par une requte bloquante au coordinateur Puis-je ?
V(S) est remplac par une primitive qui envoie un message de terminaison au
coordinateur

Avantages
Trs simple mettre en uvre
Simple pour grer la concurrence d'accs la ressource
Inconvnients :
Sollicitation excessive du coordinateur
Panne du coordinateur, il faut lire un nouveau coordinateur
Tous doivent se mettre d'accord pour n'en lire qu'un seul, mais il faut en lire un au
bout d'un temps fini

ISI Kef

15

Solution du coordinateur

Suppression du serveur centralisateur


Via par exemple une mthode jeton : le processus qui a le jeton peut accder
la ressource
La gestion et l'affectation du jeton est faite par les processus entre eux
Pas de besoin de serveur centralisateur

ISI Kef

16

Algorithme base de jeton

Anneau logique (indpendant de la structure du rseau physique) : chaque site a un


successeur
Jeton circulant :
un site non demandeur transmet le jeton son successeur
un site demandeur attend le jeton pour obtenir l'exclusion mutuelle
un site qui sort d'exclusion mutuelle transmet le jeton successeur
Un jeton unique circule entre tous les processus
Le processus qui a le jeton est le seul qui peut accder la section critique
Respect des proprits
Sret : unicit du jeton
Vivacit : l'algorithme doit assurer que le jeton circule bien entre tous les
processus voulant accder la ressource

ISI Kef

17

Algorithmes

Algorithme de [Le Lann, 77]


Algorithme de [ Ricart & Agrawala, 83 ]

ISI Kef

Les accs concurrents : solutions rparties (en


thorie)

Chaque processus connat les N autres processus conflictuels.


Chaque processus dsirant rentrer en section critique :
Envoie un message aux N processus : puis_je ?
Attend N rponses
Rception N rponses: dbut de la section critique
Rception N-1 rponses :
un processus est probablement en section critique
La rponse du processus s'est perdue
Aucun respect de l'ordre des demandes
Risque de famine
SOLUTION : estampiller les messages

Algorithmes base de permission (Un processus candidat doit demander a


d'autres processus la permission d'entrer en exclusion )

ISI Kef

18

19

Mthodes par permission

Un processus doit avoir l'autorisation des autres processus pour accder la


ressource
Principe gnral
Un processus demande l'autorisation un sous-ensemble donn de tous les
processus
Deux modes
Permission individuelle : un processus peut donner sa permission
plusieurs autres la fois
Permission par arbitre : un processus ne donne sa permission qu' un seul
processus la fois

ISI Kef

Les accs concurrents: l'algorithme de


Lamport

Propos en 1978, vise satisfaire les demandes des diffrents sites dans o elles
sont formules
Cet algorithme suppose que les canaux de communication entre les diffrents sites
respectent la proprit FIFO. Chacun des composants du systme utilise une
horloge scalaire qu'il synchronise lors de la rception de messages en provenance
des autres composants du systme. Trois types de messages (estampills lors de
leur envoi) sont utiliss et chacun des messages sera systmatiquement envoy
tous les autres participants :
REQUETE : un tel message est envoy lorsqu'un site veut entrer en section
critique;
REPONSE : un tel message est envoy par un site qui reoit un message du
type prcdent ;
LIBERATION : un tel message est envoy par un site lorsqu'il sort de section
critique.

ISI Kef

20

Les accs concurrents: l'algorithme de


Lamport

Chaque site gre une file d'attente dans laquelle il place, dans l'ordre induit par la
valeur de leurs estampilles, toutes les requtes pour entrer en section critique (y
compris les siennes) et leurs estampilles. En fait, la file des requtes sera rplique
sur chaque site, si bien que chaque site peut dcider de la possibilit d'entrer en
section critique sur la base des informations qu'il possde.

ISI Kef

21

22

l'algorithme de Lamport

ISI Kef

23

l'algorithme de Lamport

Elle repose sur les observations suivantes :


la proprit FIFO de chacun des canaux de communication et la synchronisation des
horloges, implique que si un site a reu un message d'accord (de type REPONSE) en
provenance du site j
toute requte antrieure de ce mme site lui est ncessairement arrive;
toute demande lui arrivant en provenance de ce site sera postrieure la sienne,
s'il en a formul une.
Si un site a reu l'accord de tous les sites et que sa demande est la plus ancienne,
aucune demande antrieure ne lui parviendra d'un autre site;
l'existence d'un ordre total sur les demandes implique que seul un site pourra rentrer
en section critique, les autres devant ncessairement attendre que la demande en
tte de file soit retire de la file (donc que le site lu sorte de section critique et
envoie un message de type LIBERATION).

ISI Kef

24

l'algorithme de Lamport
Nombre de messages changs
Le traitement complet (entre et sortie) d'une phase de section critique requiert, pour
un systme de N composants, 3*(N-1) messages (N-1 messages de chacun des
types).

ISI Kef

25

Exemple

Dans cet exemple impliquant trois sites, les sites S1 et S2 veulent entrer en section
critique alors que leurs horloges scalaires ont respectivement 3 et 2 comme valeur.
Les messages envoys par S1 S2 et S3 sont donc estampills 3.1. Les messages
envoys par S2 S1 et S3 sont quant eux estampills 2.2.
Dans la figure ci-dessous :
les envois de messages de type REQUETE correspondent aux flches bleues;
les envois de messages de type REPONSE correspondent aux flches vertes;
les envois de messages de type LIBERATION correspondent aux flches
rouges.

ISI Kef

26

l'algorithme de Lamport

ISI Kef

27

l'algorithme de Lamport

ISI Kef

28

l'algorithme de Lamport

ISI Kef

29

l'algorithme de Lamport

ISI Kef

30

l'algorithme de Lamport

ISI Kef

31

l'algorithme de Lamport

ISI Kef

32

l'algorithme de Lamport

ISI Kef

33

l'algorithme de Lamport

ISI Kef

34

l'algorithme de Lamport

ISI Kef

35

l'algorithme de Lamport

ISI Kef

36

l'algorithme de Lamport

ISI Kef

37

Algorithmes

Algorithme de [Ricart & Agrawala, 81]


[Carvalho & Roucairol, 83]
[Chandy & Misra, 84]

ISI Kef

Inter blocage dans


les SRs
Mehrez Boulares, Nour Ben Yahia
ISI Kef

Inter blocage: introduction

Solution accs concurrents ne veut pas dire absence dinter blocage.

Inter blocage : situation pour un ensemble de processus(ou transactions) o chacun


dentre eux est dans lattente de la ralisation dun vnement de la part dun autre.

Mauvaise programmation risque dinter blocage :


Sections critiques emboites on doit interdire des appels rcursifs dune section
critique (appels rcursifs lintrieure dune SC).

Besoin de plusieurs ressources : inter-blocages

ISI Kef

Inter blocage: introduction

Un ensemble de processus sont en interblocage si chaque processus dans cet


ensemble est bloqu en attente dun vnement qui seulement un autre processus
de cet mme ensemble peut dclencher.

Lvnement attendu peut tre la libration dune ressource ou lenvoie dun


message.

En cas dinterblocage aucun processus ne peut


Ni continuer son excution
Ni librer une ressource
Ni tre rveill

ISI Kef

Inter blocage : introduction

Linter-blocage demande la prsence simultane de 4 conditions (conditions


ncessaires)

1. Exclusion mutuelle: A un instant prcis, une ressource est alloue un seul


processus.

2. Saisie et attente (hold and wait): un processus dtient une ressource non
partageable et en attend des autres pour complter sa tche.
3. Pas de premption : un processus qui dtient une ressource non partageable la

garde jusqu ce quil aura complt sa tche.


4. Attente circulaire: il y a un cycle de processus tel que chaque processus pour
complter doit utiliser une ressource non partageable qui est utilise par le suivant, et
que le suivant gardera jusqu` sa terminaison.

ISI Kef

Inter blocage : introduction


Exemple :

Exclusion mutuelle: Seulement une voiture occupe un endroit particulier de la route


un instant donn.
Saisie et attente : Aucune voiture ne peut faire marche arrire.
Pas de premption: On ne permet pas une voiture de pousser une autre voiture
en dehors de la route.
Attente circulaire: Chaque coin de la rue contient des voitures dont le mouvement
dpend des voitures qui bloquent la prochaine intersection.

ISI Kef

Modlisation des inters blocages


Processus

Pi demande un exemplaire de Ri, bloqu en attente de la ressource

ISI Kef

Ressource possdant 4 exemplaires (instances)

Pj dtient un exemplaire de Rj ou Rj est affect Pj

Modlisation des inters blocages

ISI Kef

Modlisation des inters blocages

ISI Kef

Explication des graphes


- Dans G2 de fait que P1 nutilise plus quune seule ressource la condition 3 nest pas
vrifie, ainsi que ds que P1 libre la ressource, P3 peut y accder en mettant fin ainsi
un ventuel inter blocage.

* Existence de 2 cycles :

ISI Kef

10

Explication des graphes


Tous les cycles ne sont pas bloquants :

Tout graphe dallocation de ressource avec une seule occurrence


des ressources peut tre converti en graphe dattente WFG
(Wait For Graph).

ISI Kef

11

Explication des graphes


Simplification possible lorsquun processus demande une ressource
spcifique identifie :

Sommet processus ;
Arc tiquet par la ressource demande.

ISI Kef

12

Inter blocage : Solutions


Ignorer le problme (Lalgorithme de lautruche)
Dvitement : le systme alloue une ressource si elle nentranera pas dinterblocage (disposer lavance dinformations sur lutilisation des ressources par un
processus, et dcider dynamiquement de lallocation)
Prventives : le systme empche les inters blocages davoir lieu (sassurer que
lune des conditions ncessaires nest jamais remplie)
Dtection et gurison : le systme ne fait aucun effort priori. Une fois quun
inter blocage est dtect, il le corrige (requiert un algorithme de dtection et un
algorithme de correction. Surcharge de travail pour le systme.)
Les algorithmes diffrents selon le nombre dinstances des ressources.

ISI Kef

13

Inter blocage : Solutions

ISI Kef

Problmatique diffrente :

Dtection difficile.

Respect de lordre daccs aux ressources, difficile.

14

Solution base sur la prvention


A- Allocation par classe de ressource :
Consiste classer les ressources et les demander dans un certain ordre.
Soit un processus qui dtient Ri, et qui demande Rj il ne sera autoris
demander Rj que si classe(Ri) < classe(Rj) autrement il libre Ri.
Inconvnient : ne sapplique pas aux ressources logiciels et ncessite la
K de lordre daccs au ressources.
B- Allocation par estampilles :
Chaque processus acquiert au dmarrage une estampille.
Il sagit de respecter une allocation base sur un ordre croissant des
estampilles.
2 versions: Wait/Die, Wound/Wait RosenKrantz(1978).
ISI Kef

15

Solution base sur la prvention


- Les algorithmes Attente/Mort (Wait/Die) et Bless/Attente (Wound/Wait) sont deux
autres mthodes d'vitement qui utilisent une technique de rupture de la symtrie.
Dans ces deux algorithmes on prend en compte l'ge des processus et l'on
distingue un processus g (A) et un processus jeune (J).
- L'ge d'un processus peut tre dtermin par horodatage (timestamp) lors de sa
cration. Les dates les plus petites appartiennent des processus plus gs, les
plus grandes des processus plus jeunes.

ISI Kef

16

Solution base sur la prvention


Il est important de se rendre compte qu'un processus peut tre dans un tat
non-sr sans pour autant forcment conduire un inter blocage.
La notion de sr/non-sr fait uniquement rfrence la possibilit que le
systme entre dans un inter blocage ou non.
Par exemple, si un processus fait une requte sur une ressource A qui rsulte
en un tat non-sr, mais relche une ressource B pour viter une attente
circulaire, alors l'tat est non-sr mais le systme n'est pas en inter blocage.

ISI Kef

17

Wait / Die
Un processus nest autoris attendre que sil est plus vieux (estampille plus
petite).
Pi dtient la ressource, Pj demande la ressource.
Si E(Pi) > E(Pj) {demande Pj est plus ancienne}.
Pj est autoris attendre.
Sinon {demande Pi est plus ancienne}.
Pj est tu.
-

Les vieux attendent, les jeunes meurent.

Risque de famine pour les jeunes.


ISI Kef

18

Wound/Wait (Premption ou attente)


Un processus nest autoris attendre que sil est plus jeune (estampille plus
grande).
Pi dtient la ressource, Pj demande la ressource.
Si E(Pi)>E(Pj) {demande Pj est plus ancienne}.
Pi libre la ressource par premption et meurt le jeune processus redmarre
(garde son estampille) et attend la fin des vieux processus : pas de famine.
Sinon {demande Pi est plus ancienne}.
Pj est autoris attendre.
-

Les vieux rquisitionnent, les jeunes attendent.

ISI Kef

19

Wound/Wait (Premption ou attente)

ISI Kef

20

Algorithme du Banquier

Il vrifie que le fait daccorder une requte conduit un tat sur

Le cas chant la ressource est alloue, sinon elle est mise en attente

Afin de voir si un tat est sr, il faut ncessairement vrifier si les ressources sont
suffisantes.

Les demandes futures doivent tre dclares.

A chaque demande de ressource, on vrifie que cette demande ne puisse mener un


inter-blocage.

ISI Kef

21

Algorithme du Banquier

Si une demande devait mener un inter-blocage, le processus est suspendu; il sera


ractiv une fois que ce risque n'existe plus.

L'algorithme est activ chaque demande.

Les processus suspendus peuvent tre rordonnancs.

Les processus sont ventuellement ordonnancs de manire ce que tous puissent

s'excuter et se terminer.

Ordonnanceur long terme !

ISI Kef

22

Dtection des inters blocages

Linter blocage est dtect partir du WFG.

Dcision qui ncessite lexamen des WFG de tous les sites.

a- Solution centralise : Un site maintient un graphe global.

b- Solution distribu : Chaque site maintient une partie du graphe. Le graphe global est
la runion des WFG.
c- Solution hirarchique : Chaque site maintient le graphe de ses descendants.

d- Solution partiellement centralise :


Un site central maintient un WFG global.
Chaque site maintient sont WFG local et informe le site central.

Inter blocages fantmes : tat global est-il rel ?

ISI Kef

23

Dtection des inters blocages


d- Solution partiellement centralise :
Envoi dinformations linitiative du coordinateur ou des sites :
Frquence priodique, chaque droulement de lalgorithme, chaque

demande dallocation/libration de ressource : compromis.


e- Solution compltement centralise :
Chaque requte pour une ressource est transmise au site central.

Pas de WFG locaux.


Point de congestion, pas de tolrances aux pannes.

ISI Kef

24

Gurison

La gurison de linterblocage passe par la destruction dau moins un des processus


interbloqus, ce qui entrane la libration des ressources qui lui taient alloues, de
faon supprimer la prsence du cycle. Lexcution de ce processus devra en
gnral tre reprise ultrieurement.

Il y a difficult si un processus dtruit a effectu des modifications irrversibles,


ventuellement incohrentes, de donnes globales. Il faut donc dans ce cas
enregistrer une copie des donnes globales susceptibles dtre modifies par un
processus avant le lancement de ce processus ; au moment de la destruction, on
rtablit les valeurs initiales des donnes.

ISI Kef

Tolrance aux pannes


dans les SRs
Mehrez Boulares, Nour Ben Yahia
ISI KEF 2013-2014

Introduction

Nombre croissant de composants dans un systme => Probabilit plus


grande que des composants tombent en panne pendant lexcution de
lalgorithme
Causes diverses
Erreurs de conception, Accidents, Malveillances etc.
Objectif: viter de relancer un algorithme aprs chaque panne => concevoir
des algorithmes capables de fonctionner malgr des pannes.

ISI Kef

Introduction

Systme Distribu: panne systme est affect partiellement et


improbable quil le soit en totalit
Ide de solution: les sites corrects prennent en charge les tches des sites
dfaillants
Consquence: perte de performances mais pas de fonctionnement erron

ISI Kef

Introduction

La tolrance aux fautes sinscrit dans le contexte plus large de la sret de


fonctionnement.
La sret de fonctionnement (dependability) dun systme informatique est
la proprit qui permet ses utilisateurs de placer une confiance dans le
service quil dlivre.
Le service dlivr par un systme est son comportement tel quil est peru
par ses utilisateurs

ISI Kef

La sret de fonctionnement
La sret de fonctionnement

Attributs
Disponibilit (Availability)
Fiabilit (Reliability)
Sret (Safety)
Confidentialit (Confidentiality)
Intgrit (Integrity)
Maintenabilit (Maintanability)

ISI Kef

Menaces
Fautes (Faults)
Erreurs (Errors)
Pannes/ Dfaillances (Failures)

Moyens
Prvention des fautes
Tolrance aux fautes
Suppression des fautes
Prvision des fautes

Menaces

L'existence d'erreurs ("design errors") ou d'accidents physiques ("physical damage")


ou de malveillances est invitable.
Erreurs de conception, de programmation ou de saisie
Accidents dus l'environnement
Malveillances intentionnelles.
L'une des circonstances prcdentes peut ne pas gner le systme ou rester
indtecte longtemps.

Fautes, pannes ("Faults""Failures")

Le systme est en faute ou en panne si suite l'un des phnomnes prcdents il ne


respecte pas l'une de ses spcifications.

ISI Kef

Menaces

Une erreur(Error) est une anomalie de ltat du systme et susceptible dentrainer


une dfaillance. Une erreur ne provoque pas systmatiquement une dfaillance. Le
systme peut continuer dlivrer un service correct malgr un certain nombres
derreurs affectant son tat.
Une faute(fault) est la cause dune erreur.
Une erreur peut provoquer une dfaillance : Une altration du service dlivr par le
systme.
faute(fault) erreur dans ltat du systme dfaillance dans le systme.

Une faute provoque une erreur qui entrane une dfaillance


Un composant est dfaillant sil ne rpond plus sa spcification
Une faute ou panne dsigne une dfaillance temporaire ou dfinitive dun ou
plusieurs composants du systme.

ISI Kef

Menaces
Faute: Dfaut physique du matriel ou du logiciel
Erreur: Une valeur incorrecte dans le systme
Dfaillance / Panne: Dviation du systme par rapport sa spcification

ISI Kef

Le domaine d'utilisation

Le domaine d'utilisation du systme est particulirement dangereux et met en jeu des


vies humaines avec des cots lis aux pannes qui peuvent tre immenses.
Domaine des transports
Conduite automatique de trains.
Systmes de contrle en avionique.
Domaine de la production d'nergie
Conduite de centrales nuclaires.
Conduite de barrages.

ISI Kef

10

Moyens

Plusieurs moyens sont gnralement combins pour mettre en uvre la sret de


fonctionnement dun systme :
la prvention des fautes(fault prevention) consiste empcher
loccurrence des fautes ;
la tolrance aux fautes(fault tolerance) consiste dlivrer un service correct en
dpit de locurrence de fautes ;
llimination des fautes(fault removal) consiste rduire le nombre et la
svrit des fautes dans le but de les liminer du systme ;
prvision des fautes(fault forecasting) consiste estimer le nombre de
fautes courantes et futures ainsi que leurs consquences.

ISI Kef

11

Moyens
La prvention des fautes(fault prevention)

L'ensemble des techniques de conception, de fabrication qui permettent de produire


des composants informatiques de trs bonne qualit (trs fiable).
Le composant ne doit pas tomber en panne
bonne protection physique
bonne fabrication
techniques de gnie logiciel, de preuves, de tests => pas d'erreurs.
Contrle qualit
Mthodes de conception,
Programmation structure,
Protection contre les radiations,
Firewalls,...

ISI Kef

12

Moyens
La tolrance aux fautes ("Fault tolerance")

L'ensemble des techniques de conception, de fabrication des architectures qui


continuent de fonctionner mme en prsence de la panne de l'un de leurs
composants.
L'ensemble de l'architecture considre comme un tout continue de rendre le service
attendu
Dtection des erreurs
Recouvrement des erreurs
rollback
rollforward
Gestion des fautes:
Diagnostic,
Isolation
Reconfiguration
R-initialisation

ISI Kef

13

Moyens
llimination des fautes(fault removal)

Validation,
Vrification
statique,
dynamique,
Y compris les mcanismes de tolrance!
==>Injection de fautes
Maintenance
Corrective
Prventive

ISI Kef

14

Moyens
prvision des fautes(fault forecasting)

valuation du comportement du systme


Qualitatif
Identifier, classifier, analyser les pannes possibles
Quantitatif
Dterminer la probabilit avec laquelle le systme satisfait aux attributs de
dpendabilit.

ISI Kef

15

Attributs

La fiabilit
Probabilit pour qu'un systme soit continment en fonctionnement sur une
priode donne (entre 0 et t).
La disponibilit
Probabilit pour qu'un systme soit en fonctionnement un instant t donn.
La maintenabilit
Probabilit pour qu'un systme en panne l'instant 0 soit rpar l'instant t.
La Sret:
Probabilit pour qu'un systme soit continment en fonctionnement non
catastrophique sur une priode donne (entre 0 et t).
Confidentialit:
Ne pas dvoiler des informations sans autorisation
Intgrit:
Absence d'altrations incorrectes de l'tat du systme

ISI Kef

Techniques permettant datteindre la tolrance


aux fautes

16

La tolrance aux fautes est mise en uvre par la combinaison de deux techniques.
Le traitement de la faute(fault treatment) qui vise viter quune faute
survenue ne se reproduise.
prvoir des composants multiples, pour rduire la probabilit quune faute
conduise une dfaillance, raliser des traitements multiples (par exemple :
raliser la mme opration par des algorithmes diffrents pour tenter dviter
les fautes de conception).
Le traitement derreur(error processing) qui vise liminer une erreur avant
quelle ne produise une dfaillance.
dtecter lexistence dun tat incorrect (erreur), remplacer ltat incorrect par
un tat correct (conforme aux spcifications).

ISI Kef

17

Traitement de faute

Lobjectif du traitement de faute vise viter quune faute ne se reproduise.

On procde au diagnostic de faute(fault diagnosis) qui vise identifier la faute,


puis, on procde la passivation(fault passivation) de la faute qui consiste
gnralement neutraliser les composants fautifs en les excluant du systme.

ISI Kef

Traitement de lerreur

18

Lobjectif du traitement de lerreur est dliminer une erreur affectant le systme afin
quelle nentraine de dfaillance . Elle peut sexprimer sur deux formes.
Le recouvrement derreur consiste remplacer ltat erron du systme par
un tat correct ;
Le masquage derreur consiste compter sur la redondance prsente dans
le systme pour que celui-ci continue dlivrer un service correct malgr un tat
erron.

ISI Kef

Recouvrement derreur

19

Deux mthodes sont possibles :


la reprise consiste remplacer ltat erron par un tat correct dans lequel
le systme tait avant locurrence de lerreur.
la poursuite consiste remplacer ltat erron par un nouvel tat correct
construit partir de ltat erron.

ISI Kef

Compensation derreur

20

Elle peut prendre deux formes :


la dtection et compensation derreur.
le masquage derreur.

La dtection et compensation derreur consiste remplacer le composant erron par


un composant correct. Le masquage derreur consiste en une compensation derreur.
La reprise demande de faire rgulirement de sauvegardes de ltat du systme
appel point de reprise. Pour transformer un tat erron en un tat correct,
on rinitialise ltat du systme partir du dernier point de reprise. La poursuite
consiste construire un nouvel tat correct partir de ltat erron.

ISI Kef

21

Sret de fonctionnement et systmes rpartis

La sret de fonctionnement d'un systme rparti doit tre tudie soigneusement

Architecture de n sites en coopration


Si le taux de panne d'un site est
Chaque site est indispensable
Le taux de panne du systme est n .

Au contraire une organisation efficace d'un systme rparti (techniques de tolrance


aux pannes) atteint des niveaux de sret de fonctionnement qu'aucune approche
d'vitement ne peut atteindre (fiabilit, disponibilit, scurit) un cot acceptable.

ISI Kef

22

Classification des fautes (1)

Des critres
Origine de la faute
Type de composant : ex. lignes ou sites
Cause de la faute: bnignes ou malignes
Dfaillances temporaires ou dfinitives : si le composant fonctionne il
fonctionne correctement
ex. ligne transmet le msg ou non / site traite le msg ou non
Dfaillances byzantines : comportement arbitraire du composant dfaillant.
Si le composant fonctionne, il ne fonctionne par correctement linsu des
autres composants.
ex. site rpond blanc certains sites et noir dautres.

ISI Kef

23

Classification des fautes (2)


Dure de la faute
Dfinitive
Temporaire
Dtectabilit de la faute
Dtectable localement. Rparation par le site lui-mme.
Non dtectable localement. Rparation ncessite change de messages.

ISI Kef

24

Hirarchie

Sites
Site mort-n : site nexcute aucune instruction de son algo.
Site en panne franche : site fonctionne correctement jusqu lapparition de la
panne et cesse totalement de fonctionner.
Site byzantin : comportement arbitraire.

ISI Kef

25

Typologie (1)

Panne franche
Composant fonctionne correctement puis panne et cesse immdiatement de
fonctionner = panne permanente
Panne franche de site
Coupure dune ligne => changement de topologie du rseau
Panne transitoire
Comportement erron des composants pendant une certaine priode.
Comportement correct ensuite.
On peut distinguer si la panne napparat quune fois ou plus ou moins
priodiquement
Corruption mmoire
Annulation dune transaction
Perte de messages sur une ligne

ISI Kef

26

Typologie (2)

Panne temporelle
Une sortie correcte associe une requte entrante se manifeste de faon
incohrente avec les spcifications.
Trop tard ou jamais
Trop tt
Le cas le plus frquent est celui d'une manifestation trop-tardive.
Ex. : Surcharge d'un processeur, Horloge trop rapide, Dlai de transmission
trop long.
Panne byzantine
Toute panne engendrant une comportement scartant des spcifications
Fautes byzantines "naturelles"
erreur physique non dtecte (sur une transmission de message,
en mmoire, sur une instruction).
erreur logicielle amenant un non vrification des spcifications.
Fautes byzantines "malicieuses"
comportement visant faire chouer le systme (sabotage,virus ....).

ISI Kef

27

Spcifications

Spcifications pour les sites


Si un site na pas atteint un tat final, il finira par excuter une autre tape de
lalgorithme
Spcifications pour les liens de communications
Un site j reoit un message dun site i au plus une fois et seulement si i a
prcdemment envoy le message j
Si i a envoy un message j et j excute infiniment des tapes de lalgorithme
alors j finira par recevoir le message de i.

ISI Kef

28

Algorithmes Robustes

Robuste : Garantir la correction du comportement global du systme vis vis des


spcifications de lalgorithme
Spcifications dfinies en terme dinvariants qui doivent tre constamment
vrifis
Aucun dysfonctionnement nest tolr pour le systme
Algorithmes robustes masquent les fautes
Approche dite pessimiste

ISI Kef

29

Algorithmes Robustes : exemple comportemental

Exclusion Mutuelle
Proprits de sret et de vivacit toujours vrifies
Par exemple, on ne se retrouvera jamais avec une configuration o 2 sites sont
en mme temps en SC
lection
Un et un seul site sera lu
Par exemple, aucun moment il existe une configuration o simultanment
plusieurs sites dcident quils sont lus.

ISI Kef

30

Algorithmes auto-stabilisants

Finir par garantir la correction du comportement global du systme vis vis des
spcifications de lalgorithme
Systme tolre certaines priodes de dysfonctionnement
Algorithmes ne masquent pas les fautes
Approche dite optimiste

ISI Kef

31

Algorithmes Auto-stabilisants: exemple comportemental

Exclusion mutuelle
Proprit de sret non vrifi pendant un intervalle de temps
Deux sites peuvent se retrouver en SC
MAIS au bout dun moment le systme retrouve un comportement correct
(lalgorithme retrouve de lui mme un tat valide)

ISI Kef

Vous aimerez peut-être aussi