Paradigmes de la concurrence NFP137 1

Documents pareils
NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Cours de Systèmes d Exploitation

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Problèmes liés à la concurrence

Solution de paiement Monetico Paiement Web. Module Prévention Fraude

On appelle variable condition une var qui peut être testée et

Chapitre 4 : Exclusion mutuelle

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Ordonnancement temps réel

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

AnaXagora LMS v3.0. Guide d utilisation

Réplication des données

L exclusion mutuelle distribuée

Ordonnancement temps réel

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

Introduction à la programmation concurrente

Initiation au HPC - Généralités

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Cours de Base de Données Cours n.12

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

FORMATION CXA01 CITRIX XENAPP & WINDOWS REMOTE DESKTOP SERVICES

Projet Active Object

Implémentation des SGBD

V 8.2. Vous allez utiliser les services en ligne de la plate forme de dématérialisation de la Salle des Marchés achatpublic.com.

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Import factures depuis journal de vente

Cours Bases de données 2ème année IUT

Plateforme AnaXagora. Guide d utilisation

Le modèle client-serveur

Manuel d'installation de GESLAB Client Lourd

Bases de données et sites WEB Licence d informatique LI345

Démarrer et quitter... 13

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Données Réparties. Thibault BERNARD.

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Baladeur Santé VITAL'ACT

Partage avec collaboration Important : Ce type de partage exige la connexion à un serveur CmapServer.

ENVOI SIMPLE (SMS)...

Partie 7 : Gestion de la mémoire

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t

L apprentissage automatique

Tutoriel D utilisation. Du PGI Open line d EBP

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Introduction à la Programmation Parallèle: MPI

La sécurité dans les grilles

Noyau de concurrence par moniteur pour Java ou C# pour une autre sémantique plus fiable et plus performante

NOTICE D INSTALLATION

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

Bases de données avancées Concurrence d'accès et reprise

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Guide d installation et d utilisation

GloboFleet. Mode d emploi CardControl Plus

Espace Numérique Régional de Santé PACA. Formation Web Conférence

Styler un document sous OpenOffice 4.0

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

1- ACCES AU SERVICE UIBNET

Formation analyse des accidents du travail avec l arbre des causes

Créer et partager des fichiers

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

emachines de la gamme G720/G520 Guide rapide

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Leica Geosystems Licences des logiciels Introduction & Installation

TRAITEMENTS DE FIN D ANNEE

Conception des systèmes répartis

CONDITIONS PARTICULIERES DE VENTE EN LIGNE DE TITRES DE TRANSPORT SUR REMONTEES MECANIQUES

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

DG-ADAJ: Une plateforme Desktop Grid

REALISATION d'un. ORDONNANCEUR à ECHEANCES

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Limites finies en un point

Livret d Epargne Salariale

Numérisation. Copieur-imprimante WorkCentre C2424

Guide d installation CLX.PayMaker Office (3PC)

Support application ProgrÉ. Académie de Paris

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

1 - Se connecter au Cartable en ligne

Algorithmique et Programmation, IMA

1 Mesure de la performance d un système temps réel : la gigue

Instructions d utilisation. SEAvision Software V05.13

DECOUVERTE DU LOGICIEL CIEL GESTION COMMERCIALE

Retour d expérience RATP. Intégrer le test de performance au cœur du processus de développement agile. Challenges, techniques, résultats.

Travaux pratiques Configuration d un pare-feu sous Windows XP

La haute disponibilité

Transport et Logistique face à la mondialisation

Configuration de la Borne Interactive

18 TCP Les protocoles de domaines d applications

CH.3 SYSTÈMES D'EXPLOITATION

SYSTÈME DE GESTION DE FICHIERS

GESTION CLIENTELE GESTION CLIENTELE V /05/2014 DOC HEITZ INDICE 1 Page 1/46

VigiClé Système «KeyWatcher»

CONDITIONS PARTICULIERES DE VENTE EN LIGNE DE TITRES DE TRANSPORT SUR REMONTEES MECANIQUES

L AUTOMATISME LE SIGNAL

Architectures Client-Serveur

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

HEITZ X Pro GESTION CLIENTÈLE

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

Transcription:

Paradigmes de la concurrence NFP137 1

Application concurrente Architecture logique - Une application est découpée en un ensemble de processus séquentiels, s exécutant en parallèle et capables de communiquer entre eux. - Le comportement opérationnel de l application est exprimé par le comportement concurrentiel des processus NFP137 2

Application concurrente Objectifs - Exprimer un comportement correct des processus en utilisant des mécanismes de synchronisation - Présenter un ensemble de problèmes de base et leurs solutions NFP137 3

Modèle de processus Processus séquentiel Programme en exécution sur un processeur virtuel (multiprocesseurs, partage d un processeur) Processus concurrents Exécution en parallèle Processus indépendant si son exécution n interagit pas avec l exécution d autres processus du système Processus coopérant si son exécution dépend de l exécution d autres processus (partage de données) NFP137 4

Modèle de processus Processus coopérants Unités de découpage des activités d une application Intérêt : - Partage d information - Augmentation de la vitesse d exécution (si multiprocesseurs) - Modularité NFP137 5

Modèle de processus États de synchronisation d un processus séquentiel Actif Blocage logique Réveil logique Bloqué Événements programmés au niveau de l architecture logique NFP137 6

Modèle de processus Propriétés - Le comportement des processus est asynchrone - Les processus peuvent partager des données - Un processus est vu comme une thread NFP137 7

Paradigmes de la concurrence Modélisation de classes de problèmes fréquemment rencontrés Solution à un paradigme constitue un composant dans la conception de système ou d application concurrente NFP137 8

Paradigmes de la concurrence Principaux paradigmes l exclusion mutuelle accès cohérent à des ressources partagées la cohorte coexistence d un groupe de taille maximale le passage de témoin coopération par découpage de tâches entre les processus les producteurs consommateurs communication par un canal fiable les lecteurs-rédacteurs compétition cohérente le repas des philosophes allocation de plusieurs ressources et interblocage NFP137 9

Exclusion mutuelle Exemple 1 Partage d une imprimante par 2 processus P et Q qui produisent des suites de lignes processus_p imprimer( je suis );//P1 imprimer( le processus P );//P2 processus_q imprimer( je suis );//Q1 imprimer( le processus Q );//Q2 [P1P2Q1Q2] je suis le processus P je suis le processus Q OK [P1Q1P2Q2] je suis je suis le processus P le processus Q Incohérent NFP137 10

Exemple 2 partage d une variable entier compte=0 //variable partagée processus_p entier x = 0; // variable locale pour j de 1 à 16 faire x = compte; //P1 x = x +1 ; //P2 compte = x ; //P3 fait processus_q entier x = 0; // variable locale pour j de 1 à 16 faire x = compte; //Q1 x = x +1 ; //Q2 compte = x ; //Q3 fait Résultat attendu compte=32 {compte=0} [P1 P2 P3] 16 [Q1 Q2 Q3] 16 {compte=32} {compte=0} [P1 P2 P3Q1 Q2 Q3] 16 {compte=32} {compte=0} [P1Q1P2P3Q2Q3] 16 {compte=16}! NFP137 11

Exclusion mutuelle Terminologie ressource critique ressource partagée dont l utilisation n est faite que par un processus à la fois exclusion mutuelle condition de fonctionnement garantissant l accès exclusif à la ressource section critique phase d utilisation d une ressource critique par un processus Une section critique par ressource critique NFP137 12

Exclusion mutuelle Accès exclusif à une ressource Hypothèses de fonctionnement H1 Les vitesses relatives des processus sont quelconques H2 Les priorités ou les droits des processus sont quelconques H3 tout processus sort au bout d un temps fini de sa section critique NFP137 13

Exclusion mutuelle Spécification de comportement C1 Un processus au plus en section critique C2 Pas d interblocage actif ou passif Si aucun processus n est en section critique et que plusieurs demandent à y entrer, alors un demandeur doit entrer en section critique au bout d un temps fini C3 Un processus bloqué hors de sa section critique ne doit pas empêcher un autre d y entrer C4 La solution doit être symétrique NFP137 14

Exclusion mutuelle Autres propriétés souhaitables P1 Équité pas de famine de processus P2 Respect des priorités des processus, des échéances P1 et P2 contradictoires! Remarque : l exécution d une section critique peut être vue comme une action atomique soit entièrement, soit pas du tout NFP137 15

Exclusion mutuelle Schéma d exécution des processus Processus tant que vrai faire hors-sc entrée-sc // contrôle de l accès de P SC // utilisation sortie-sc // P libère l accès fait Remarque : on considère pour plus de généralité des processus cycliques NFP137 16

La cohorte Coopération d un groupe de processus Exemples Un service multiprogrammé avec N serveurs au plus Partage d une ressource à N points d accès Partage de N ressources banalisées : mémoire paginée Hypothèse tout processus quitte au bout d un temps fini la cohorte Remarque si N=1 on retrouve l exclusion mutuelle NFP137 17

La cohorte Hypothèse complémentaire tout processus quitte au bout d un temps fini la cohorte Remarque si N=1 on retrouve l exclusion mutuelle Spécification de comportement N processus au plus, N fixé coopèrent de manière asynchrone pour -se répartir une tâche ou un service -partager N ressources banalisées NFP137 18

La cohorte Schéma d exécution processus P tant que vrai faire hors-groupe entrée-groupe//contrôle l accès au groupe groupe //participation au groupe sortie-groupe // libère un accès fait NFP137 19

Passage de témoin Coopération par division du travail entre les processus : envoi d un signal, fin d une action Schéma d exécution(exemple) Processus tant que vrai faire attente-signal// attend le droit d accès suite d actions envoi-signal// envoie le droit d accès fait NFP137 20

Producteurs-Consommateurs Coopération entre deux types de processus les producteurs et les consommateurs via un tampon ou une voie de communication avec un nombre maximal de messages NFP137 21

Producteurs-Consommateurs Spécification Contexte commun tampon de N cases producteur consommateur tant que vrai faire tant que vrai faire produire un message; retirer un message; déposer un message; consommer le message; fait fait Objectif Asservir la vitesse moyenne de production à la vitesse moyenne de consommation en ralentissant le moins possible le producteur NFP137 22

Producteurs-Consommateurs Hypothèses 1- vitesses relatives quelconques 2- tampon de taille fixe, 1 case=1message, vide initialement 3- tout message est déposé et retiré une fois et une seule 4- le dépôt et le retrait se font en un temps fini NFP137 23

Producteurs-Consommateurs Propriétés de la solution 1- exclusion mutuelle d accès aux messages 2- le producteur attend si le tampon est plein, il est réveillé dès que le tampon n est plus plein 3- le consommateur attend si le tampon est vide, il est réveillé dès que le tampon n est plus vide 4- pas d interblocage NFP137 24

Producteurs-Consommateurs Schéma d exécution Contexte commun tampon de N cases vide; entier nbmess=0; //nombre de messages dans tampon producteur tant que vrai faire produire un message; si nbmess==n alors attendre; déposer un message; nbmess++; réveil éventuel d un consommateur; fait NFP137 25

Producteurs-Consommateurs Schéma d exécution consommateur tantque vrai faire si nbmess==0 alors attendre; retirer un message; nbmess--;réveil éventuel du producteur; consommer le message; fait NFP137 26

Lecteurs-Rédacteurs Compétition d accès à un ensemble de données par un ensemble de processus - lecteurs accès seulement en lecture - rédacteurs accès en lecture et écriture Objectif Garantir la cohérence des données Spécification - plusieurs lectures simultanément - les écritures sont en exclusion mutuelle NFP137 27

Lecteurs-Rédacteurs Hypothèse complémentaire tout processus termine sa lecture ou son écriture au bout d un temps fini Spécification de comportement - Les lectures sont concurrentes et cohérentes, les écritures sont en exclusion mutuelle - Priorité aux lecteurs, équité entre lecteurs et rédacteurs, service à l ancienneté NFP137 28

Lecteurs-Rédacteurs Schéma d exécution lecteur tant que vrai faire début-lecture;//contrôle l accès en lecture lecture; fin-lecture;//libère un accès en lecture ou écriture fait; rédacteur tant que vrai faire début-écriture;//contrôle accès écriture écriture; fin-écriture;//libère accès en lecture ou écriture fait; NFP137 29

Le repas des philosophes Partage de plusieurs classes de ressources entre des processus concurrents asynchrones Hypothèses de fonctionnement Méthodes d allocation : globale, à la demande, une à une tout processus libère ses ressources au bout d un temps fini Interblocage possible Famine possible NFP137 30

Le repas des philosophes Hypothèses chaque assiette (philosophe) a une place fixe chaque baguette a une place fixe accès à chaque baguette en exclusion mutuelle Propriétés pas d interblocage pas de famine P4 B0 P0 B1 B4 P1 P3 P2 B2 B3 NFP137 31

Le repas des philosophes Une première solution prendre les baguettes une par une, la sienne puis celle de droite Philosophe i // i identifiant 0..n-1 tant que vrai faire penser; prendre la baguette i; prendre la baguette(i+1)%n; manger; rendre la baguette i; rendre la baguette(i+1)%n; fait; } NFP137 32

Le repas des philosophes Problème Tous les philosophes peuvent prendre leur baguette gauche au même moment et se bloquer lorsque la baguette droite n est pas accessible. Il y a alors interblocage Idée : allocation globale Un philosophe prend les deux baguettes si elles sont disponibles, sinon il attend Pas d interblocage, mais risque de famine NFP137 33

Etude de cas 1 : surveillance par Les activités : Webcam 8 Pilotes qui gèrent 8 webcam 3 Serveurs qui récupèrent les images : chaque serveur gère 3 webcam. La communication : Chaque pilote dépose une image dans un dépôt commun Chaque serveur demande à être autorisé à retirer les 3 images du dépôt Le serveur autorisé retire les images. NFP137 34

Pilote Webcam0 Serveur0 Attendre synchro Signaler dépot Envoyer Retirer Demander ressource Rendre Pilote Webcam7 Serveur2 Les pilotes sont des clients Les serveurs sont des serveurs NFP137 35

La synchronisation : Le pilote attend qu un serveur demande des images Un serveur demande d accéder à 3 webcam Lorsque l accès lui est permis, il signale à chaque pilote qu il est prêt à retirer l image associée Chaque pilote acquiert une image et envoie l image dans le dépôt à destination du serveur Le serveur retire les 3 images Le serveur libère l accès à la ressource Passage de témoin Producteurs- Consommateurs Exclusion mutuelle Exclusion mutuelle NFP137 36

Algorithme Un Client tant que vrai faire synchro.attendre (X) ; // attente d un signal envoyé à X par un serveur Lecture_de_la_Camera (Z) ; // acquisition de l image bimap. Préparation de la donnée avant rangement. depot.envoyer (X,Y) // envoi vers les serveurs de l image Y prise par la Webcam X fait NFP137 37

Un Serveur Algorithme Tant que vrai faire // le client donne 3 noms de Webcam negociation_avec_le_client (A,B,C) ; // réservation des Webcams ressource.demander(a) ; ressource.demander(b) ; ressource.demander(c) ; // réveil des pilotes synchro.signaler(a) ; synchro.signaler(b) ; synchro.signaler(c) ; // retrait de l image de A et copie dans Y depot.retirer(a,y) ; // retrait de l image de B et copie dans Z depot.retirer(b,z) ; // retrait de l image de C et copie dans T depot.retirer(c,t) ; // libération des Webcams ressource.rendre(a) ; ressource.rendre(b) ; ressource.rendre(c) ; fait NFP137 38

Etude de cas N 2 : surveillance d usines NFP137 39

Etude de cas N 2 : surveillance d usines Les activités 5 usines produisent un rapport d activités 3 serveurs récupèrent ces rapports 1 collecteur les affiche La communication Un rapport est transféré de chaque usine dans un serveur qui le transforme en une image stockée dans une base d images Périodiquement le collecteur affiche le contenu de la base d images NFP137 40

Un proxy associé à une usine produit des données Un serveur retire une donnée, construit une image et demande l accès à la base à l emplacement réservé pour l usine Le collecteur demande le droit d accéder à la base La synchronisation - les proxys s exécutent dans l ordre 0,1 passage de témoin Le retrait n est possible que si l envoi a été fait : le plus ancien rapport est retiré : chaque usine dépose son rapport à son tour Un serveur récupère ce rapport et construit une image qui sera stockée dans la BD ; un seul serveur à la fois peut accéder à la BD Le collecteur interdit l accès aux serveurs pour lire la BD Exclusion mutuelle Lecteurs/rédacteurs Producteurs/consommateurs NFP137 41