Transcript
Mr. Mehrez Boulares, Mr. Nour Ben Yahia
2013-2014
Systmes
Rpartis
Introduction aux systmes rpartis
Les ordinateurs ont subi des changements incroyables depuis leur mise enopration vers 1945:
plus en plus de puissance,
cot de fabrication a constamment diminu permettant aux usagers dedisposer 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 rapidestant 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 ellenous amnera vers l'informatique distribue.
ISI Kef - 2013/2014
2
Introduction aux systmes rpartis
L'informatique rpartie s'oppose la fois l'informatique centralise, celle desgros 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 lerseau 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 unemme imprimante.
les communications : envoi par le rseau de courrier dans une bote auxlettres lectronique un ou plusieurs utilisateurs connects. Accs par le
rseau tlphonique des services d'informations : annuaires, banques de
donnes, etc.
ISI Kef - 2013/2014
3
Introduction aux systmes rpartis
ISI Kef - 2013/2014
4
Introduction aux systmes rpartis
ISI Kef - 2013/2014
5
Exemple de Systme Rparti : Un
intranet
ISI Kef - 2013/2014
Source : Coulouris, Dollimore
and Kindberg Distributed
Systems: Concepts and Design
Edition 3, Addison-Wesley
2001
6
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
7
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
8
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
9
ISI Kef - 2013/2014
10
Classification de Flynn
ISI Kef - 2013/2014
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.
11
Dfinitions (1)
MIMD mmoire partage
Les processeurs ont accs la mmoire comme un espace d'adressageglobal. 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. Cesecond 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
12
Dfinitions (2)
Un systme rparti est un ensemble de sites relis par un rseau, comportantchacun une ou plusieurs machines.
"Un systme rparti est un systme qui vous empche de travailler quand unemachine dont vous navez jamais entendu parler tombe en panne" Lamport
"Du point de vue utilisateur, un systme rparti se comporte comme un systmetraditionnel, mais sexcute sur de multiples units indpendantes" Tanenbaum
Un systme dexploitation rparti fournit et contrle laccs aux ressources dusystme rparti.
Un systme dexploitation parallle contrle lexcution de programmes sur unemachine parallle (multiprocesseurs).
Un systme dexploitation de rseaux fournit une plateforme de machinesrelies par un rseau chacune excutant son propre systme dexploitation.
ISI Kef - 2013/2014
13
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
14
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
15
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 de diffrentes considrations stratgiques, humaines et
professionnelles.
ISI Kef - 2013/2014
16
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
17
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
18
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
19
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 distributiongographique (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
20
Comparaison entre diffrentes architectures
Comparaison des deux architectures centralise etdistribue
L'architecture centralise supporte un noyau central alors que l'architecturedistribue peut supporter plusieurs.
Le cot de l'une ou l'autre architecture varie suivant le domaine. En rglegnrale, 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
21
Comparaison entre diffrentes architectures
Comparaison des deux architectures centralise et
distribue
Du point de vu de larchitecture :
Pas parallle/Pas distribu : Machine squentielle (un seul processeur).
Parallle/Pas Distribu : Machines vectorielles, Machines mmoirespartages, Machines SIMD.
Pas Parallle/Distribu : Rseau dordinateurs avec communication lenteexemple : Internet.
Parallle/Distribu : Rseau haut dbit.
ISI Kef - 2013/2014
22
ISI Kef - 2013/2014
23
ISI Kef - 2013/2014
24
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
dinterconnexionRseau 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
25
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
26
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
27
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
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
29
Intgration de lexistant En anglais : legacy.
Connexion sur toutes les ressources dune entreprise.
Interoprabilit des applications.
Transactions rparties.
ISI Kef - 2013/2014
30
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
31
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
32
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
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
34
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
35
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
36
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
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
38
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
39
Du centralis vers le rparti
ISI Kef - 2013/2014
40
Mehrez Boulares, Nour Ben Yahia
ISI KEF 2013/2014
Gestion du temps dans
les SRs
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
2
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
3
INTRODUCTIONDans 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
4
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
5
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
6
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
7
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
8
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
9
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 larception 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 systmerparti asynchrone fiable
ISI Kef
10
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
11
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
12
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 immdiatementobservable 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 jnest 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 lobservationcohrente 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
13
ETAT GLOBALUn 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 rcep-tionj(m) est soit capt dans elj, soit le message m appartient ecij.
C2: si lvnement missioni(m) nest pas capt dans eli, lvnement rcep-tionj(m) nest pas non plus capt dans elj.
ISI Kef
14
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
15
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 dansltat local elk du processus Pk alors que sa rception ne lest pas dans ltat local eljdu 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 cohrencenest pas assure car la rception du message m4 est enregistre dans elj sans queson 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
16
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
17
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
18
NOTION DE PRCDENCE CAUSALE
ISI Kef
19
NOTION DE PRCDENCE
CAUSALE
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
20
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
21
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
22
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
23
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
24
HORLOGE LOGIQUE SCALAIRE
ISI Kef
25
HORLOGE LOGIQUE SCALAIRE
ISI Kef
26
HORLOGE LOGIQUE SCALAIRE
ISI Kef
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).
27
HORLOGE LOGIQUE SCALAIRE
ISI Kef
La rgle de comparaison des dates est alors :
28
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
29
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
30
HORLOGE LOGIQUE VECTORIELLE
ISI Kef
31
HORLOGE LOGIQUE VECTORIELLE
ISI Kef
32
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
33
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
34
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
35
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
36
Correction TD
ISI Kef
37
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
38
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
39
Correction TD
ISI Kef
40
Correction TD
ISI Kef
41
Correction TD
ISI Kef
42
Mehrez Boulares, Nour Ben Yahia
ISI Kef
Accs concurrent
dans les SR
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
2
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
3
Les tats d'un processus
ISI Kef
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
4
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
5
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
6
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
7
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
8
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
9
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
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
11
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 P1vers 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
12
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
13
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
14
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
15
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
16
Algorithmes Algorithme de [Le Lann, 77]
Algorithme de [ Ricart & Agrawala, 83 ]
ISI Kef
17
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
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
19
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
l'algorithme de Lamport
ISI Kef
22
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
23
l'algorithme de LamportNombre 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
24
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
25
l'algorithme de Lamport
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
Algorithmes Algorithme de [Ricart & Agrawala, 81]
[Carvalho & Roucairol, 83]
[Chandy & Misra, 84]
ISI Kef
37
Mehrez Boulares, Nour Ben Yahia
ISI Kef
Inter blocage dans
les SRs
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
2
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
3
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
4
Inter blocage : introductionExemple :
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 voitureen dehors de la route.
Attente circulaire: Chaque coin de la rue contient des voitures dont le mouvementdpend des voitures qui bloquent la prochaine intersection.
ISI Kef
5
Modlisation des inters blocages
ISI Kef
6
Processus Ressource possdant 4 exemplaires (instances)
Pi demande un exemplaire de Ri, bloqu en attente de la ressource Pj dtient un exemplaire de Rj ou Rj est affect Pj
Modlisation des inters blocages
ISI Kef
7
Modlisation des inters blocages
ISI Kef
8
Explication des graphes
ISI Kef
9
- 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 :
Explication des graphes
ISI Kef
10
Tous les cycles ne sont pas bloquants :
Tout graphe dallocation de ressource avec une seule occurrencedes ressources peut tre converti en graphe dattente WFG
(Wait For Graph).
Explication des graphes
ISI Kef
11
Simplification possible lorsquun processus demande une ressource spcifique identifie :
Sommet processus ; Arc tiquet par la ressource demande.
Inter blocage : Solutions
ISI Kef
12
Ignorer le problme (Lalgorithme de lautruche)
Dvitement : le systme alloue une ressource si elle nentranera pas dinter-
blocage (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.
Inter blocage : Solutions
ISI Kef
13
- Problmatique diffrente :
Dtection difficile.
Respect de lordre daccs aux ressources, difficile.
Solution base sur la prvention
ISI Kef
14
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 laK 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).
Solution base sur la prvention
ISI Kef
15
- 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.
Solution base sur la prvention
ISI Kef
16
Il est important de se rendre compte qu'un processus peut tre dans un tatnon-sr sans pour autant forcment conduire un inter blocage.
La notion de sr/non-sr fait uniquement rfrence la possibilit que lesystme entre dans un inter blocage ou non.
Par exemple, si un processus fait une requte sur une ressource A qui rsulteen 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.
Wait / Die
ISI Kef
17
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.
Wound/Wait (Premption ou attente)
ISI Kef
18
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.
Wound/Wait (Premption ou attente)
ISI Kef
19
Algorithme du Banquier
ISI Kef
20
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.
Algorithme du Banquier
ISI Kef
21
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 !
Dtection des inters blocages
ISI Kef
22
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 ?
Dtection des inters blocages
ISI Kef
23
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.
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 engnral 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 unprocessus avant le lancement de ce processus ; au moment de la destruction, on
rtablit les valeurs initiales des donnes.
ISI Kef
24
Mehrez Boulares, Nour Ben Yahia
ISI KEF 2013-2014
Tolrance aux pannes
dans les SRs
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
2
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
3
Introduction La tolrance aux fautes sinscrit dans le contexte plus large de la sret de
fonctionnement.
La sret de fonctionnement (dependability) dun systme informatique estla 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 perupar ses utilisateurs
ISI Kef
4
La sret de fonctionnement
ISI Kef
Attributs
Disponibilit (Availability)
Fiabilit (Reliability)
Sret (Safety)
Confidentialit (Confidentiality)
Intgrit (Integrity)
Maintenabilit (Maintanability)
Menaces
Fautes (Faults)
Erreurs (Errors)
Pannes/ Dfaillances (Failures)
Moyens
Prvention des fautes
Tolrance aux fautes
Suppression des fautes
Prvision des fautes
La sret de fonctionnement
5
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
6
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
7
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
8
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
9
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
10
MoyensLa 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
11
MoyensLa 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
12
Moyensllimination des fautes(fault removal)
Validation,
Vrification
statique,
dynamique,
Y compris les mcanismes de tolrance!
==>Injection de fautes
Maintenance
Corrective
Prventive
ISI Kef
13
Moyensprvision 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
14
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
15
Techniques permettant datteindre la tolranceaux fautes
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 fautesurvenue 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
16
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
17
Traitement de lerreur 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
18
Recouvrement derreur 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
19
Compensation derreur 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
20
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
21
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
22
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
23
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
24
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
25
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
26
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
27
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
28
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
29
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
30
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
31
chapitre1.Cours.SR.pdfchapitre2.Cours.SRchapitre3.Cours.SRchapitre4.Cours.SRchapitre5.Cours.SR
top related