systemes repartisreparti.pdf

174
Mr. Mehrez Boulares, Mr. Nour Ben Yahia 2013-2014 Systèmes Répartis

Upload: z

Post on 25-Sep-2015

261 views

Category:

Documents


11 download

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