Contrôle de concurrence par sémaphores(suite) NFP137 C13 1

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

Chapitre 4 : Exclusion mutuelle

Cours de Systèmes d Exploitation

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

Ordonnancement temps réel

Problèmes liés à la concurrence

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

Exercices INF5171 : série #3 (Automne 2012)

L exclusion mutuelle distribuée

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Cours de Base de Données Cours n.12

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

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

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

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

Introduction à la programmation concurrente

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

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

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

Votre projet. d entreprise. Centre Régional d Investissement Rabat - Salé - Zemmour - Zaër

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

TD2 Programmation concurrentielle

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

SOMMAIRE. 3. Comment Faire? Description détaillée des étapes de configuration en fonction du logiciel de messagerie... 3

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

e-secure guide d'utilisation

Liste des Paramètres 2FC4...-1ST 2FC4...-1PB 2FC4...-1PN 2FC4...-1SC 2FC4...-1CB

Manuel Utilisateur MISE A JOUR DU CLIENT SOFIE VERS LA VERSION 5. v0.99

La replication dans PostgreSQL

CHARTE DE GESTION DES COOKIES

PREMIERE DEMANDE D UNE CARTE NATIONALE D IDENTITE

Données Réparties. Thibault BERNARD.

Synchro et Threads Java TM

gestion des processus La gestion des processus

offre 2014 FortunE 6 FCpi truffle Fonds commun de placement dans l innovation

Ordonnance relative à la loi fédérale sur le crédit à la consommation

CEG4566/CSI4541 Conception de systèmes temps réel

Initiation au HPC - Généralités

Mode d emploi. Appareil de programmation Multi

.id. _la solution de pilotage de votre entreprise ERP / CRM / BPM. informatique & développement

Ordonnancement temps réel

Le langage C. Séance n 4

Réplication des données

Wifi, oui mais comment?

Partie 7 : Gestion de la mémoire

Information sur l accés sécurisé aux services Baer Online Monaco

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

SOPHOS - Endpoint Security and Control.doc

1 Définition et présentation. 2 Le réseau Numéris. 3 Les services. 3.1 Les services Support (Bearer service) SYNTHESE

Exécutif temps réel Pierre-Yves Duval (cppm)

CI1 - A quel besoin répond un objet technique?

Comment se connecter au VPN ECE sous vista

Ecole Niveau. Nous vous remercions pour votre participation.

Cours Microfer Chartres

VOCALYS LITE.

Baladeur Santé VITAL'ACT

Fidélité Type 3 Carte de points et cartes cadeaux avec

Diagnostic adaptatif d'un flux d'alarmes par méta diagnostic distribué Application à la détection d'intrusions dans un serveur Web

FCPI TRUFFLE. Brochure à caractère promotionnel, sans valeur contractuelle.

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Être engagé comme associé actif peut devenir un piège Nouveauté en 2013

GUIDE POUR PAYER LES COTISATIONS DU ZONTA INTERNATIONAL EN LIGNE

Konica Minolta, un leader aux standards de sécurité les plus élevés du marché

Le module Supply Chain pour un fonctionnement en réseau

Modèle conceptuel : diagramme entité-association

«LA FIDÉLITÉ POUR NOUS, CE SONT DES PETITS GESTES DE LA VIE DE TOUS LES JOURS»

SMS sur le réseau fixe

FONCTIONS TÉLÉPHONIQUES

Devenez intuitif DEVENEZ INTUITIF. Un guide pratique pour réveiller Votre intuition et les capacités de votre Esprit CHRISTOPHER NOGALA ~ 1 ~

S6 FSR Opportunité d affaire

Etude sur Le service de restauration scolaire

Quelles ressources pour vivre seul, en 2014, dans une commune du Doubs? Essai d évaluation

Génie Logiciel avec Ada. 4 février 2013

Premiers pas sur le site ecommerce.cléde13.fr. Sommaire

Introduction aux Systèmes et aux Réseaux

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

Les processus légers : threads. Système L3, /31

L optimisation du processus de facturation automatique avec DIAClient Sql

Manuel de l utilisateur

GUIDE D INSTALLATION INTERNET haute vitesse

DE CENTRALISE FACTURE CRE ATION

GUIDE MEMBRE ESPACE COLLABORATIF. Février 2012

Manuel Utilisateur Téléphone IP Thomson ST 2030

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Protéger une machine réelle derrière une machine virtuelle avec pfsense

ig / Check avec les tests des périmètres et le Checker modulaire de la Confédération

Contrat du Programme d Affiliation

FIP Axe Croissance. FIP Axe Croissance investira dans des PME industrielles, commerciales ou de services présentant les caractéristiques suivantes :

1. faciliter la création des sociétés à responsabilité limitée (SARL) :

Contrôle Parental Numericable. Guide d installation et d utilisation

Boite à outils. Guide des formalités de création d entreprises. Document élaboré par le cabinet de conseil ORIGINAL INVEST

Documentation relative à l installation des certificats e-commerce de BKW

TUTORIAL 1 ETUDE D UN MODELE SIMPLIFIE DE PORTIQUE PLAN ARTICULE

Cie L*43.62 a* b* Des couleurs qui tiennent la route. Solutions de gestion des couleurs pour le secteur de l automobile

Travaux pratiques Configuration d un pare-feu sous Windows XP

Transcription:

Contrôle de concurrence par sémaphores(suite) NFP137 C13 1

Principe -un sémaphore ne contient qu un compteur, c est parfois insuffisant pour exprimer le contrôle d un problème concurrent -Dans le schéma des sémaphores privés, l action de synchronisation est associée non plus à une ressource mais à un processus : c est le processus qui détecte s il doit se bloquer ou non NFP137 C13 2

Définition un sémaphore privé spriv d un processus P i est tel que -seul P i peut exécuter P(spriv) et V(spriv) les autres processus ne peuvent exécuter que V(spriv) -la valeur initiale du sémaphore doit être 0 : E0(spriv,0) -la file d attente d un sémaphore privé contient au plus un processus -la valeur d un sémaphore privé vérifie spriv.e -1 NFP137 C13 3

Utilisation de données partagées et de sémaphores privés pour le contrôle de la concurrence -un processus se bloque lui-même sur son sémaphore privé, si nécessaire, en utilisant des données partagées reflétant l état du système :les données de contrôle -les données de contrôle doivent être lues et écrites en section critique, celle-ci doit être libérée avant le blocage éventuel du processus -les données de contrôle servent à un processus à Noter son blocage Noter qu un processus doit être réveillé NFP137 C13 4

Exemple : schéma clients/serveur Un processus serveur dont le rôle est d offrir un service à des processus clients ne peut s exécuter que sur demande des clients, il traite une seule demande à la fois. Contexte commun sémaphore spriv; E0(spriv,0); Processus serveur Tant que vrai faire P(spriv); // service Fait; Processus client 1... V(spriv);... Processus client 2... V(spriv);... NFP137 C13 5

Schéma de synchronisation Contexte commun N processus; //identifiés par 0,,N-1 Sémaphore sempriv[n];tout i,e0(sempriv[i],0); Sémaphore mutex; E0(mutex,1); D; //ensemble de variables partagées Processus P i Booleen OK;//contrôle du blocage hors SC //demande de ressources et blocage éventuel Utilisation des ressources //libération des ressources et réveil éventuel de processus NFP137 C13 6

Schéma de synchronisation //demande de ressources et blocage éventuel P(mutex); si cond1(d)// condition de non blocage pour P i alors noter le non blocage dans D; OK=true; sinon noter dans D le blocage;ok=false; finsi; V(mutex); //blocage éventuel hors section critique si non OK alors P(sempriv[i]);finsi; Utilisation des ressources //libération des ressources et réveil éventuel de processus NFP137 C13 7

Schéma de synchronisation //libération des ressources et réveil éventuel de processus P(mutex); mise à jour des variables de D; pour tout processus bloqué Y faire si cond2(y)//condition de réveil de Y alors mise à jour de D; V(sempriv[Y]); // réveil de Y finsi; fait; V(mutex); NFP137 C13 8

Le repas des philosophes Principe de la solution - allocation globale des deux baguettes - les variables de contrôle reflète l état d un philosophe Un philosophe pense, demande les baguettes ou mange il mange en un temps fini Un philosophe peut acquérir ses baguettes si ses voisins ne mangent pas, sinon il se bloque Un philosophe libère ses baguettes en notant qu il pense Un philosophe réveille éventuellement un philosophe voisin demandeur et au préalable note que ce dernier mange NFP137 C13 9

Le repas des philosophes Contexte commun Type statut=(pense, demande, mange); statut état[5];tout i de 0 à 4, etat[i]=pense; //initialement tous les philosophes pensent Sémaphore mutex; E0(mutex,1);//accès aux variables Sémaphore sempriv[5]; tout i de 0 à 4 E0(sempriv[i],0); Processus philosophe i Booleen OK; tant que vrai faire penser; prélude; // demande à manger manger; postlude; // finit de manger fait; NFP137 C13 10

Le repas des philosophes Prélude P(mutex);//accès aux variables de contrôle état[i]=demande; si (état[(i+1)%5] mange et état[(i-1)%5] mange) alors état[i]=mange;ok=vrai; sinon OK=faux; finsi; V(mutex); si non OK alors P(sempriv[i]); finsi; NFP137 C13 11

Le repas des philosophes Postlude P(mutex);//accès aux variables de contrôle état[i]=pense; //le philosophe i essaie de réveiller ses voisins si (état[(i+1)%5]=demande et état[(i+2)%5] mange) alors état[(i +1)%5]=mange;V(sempriv[(i+1)%5]);finsi; si (état[(i-1)%5]=demande et état[(i-2)%5] mange) alors état[(i-1)%5]=mange;v(sempriv[(i-1)%5]);finsi; V(mutex); La solution est sans interblocage, mais n est pas équitable : risque de famine NFP137 C13 12

Lot de ressources banalisées Un lot de N ressources banalisées est partagé par un ensemble de M processus; chaque ressource est en accès exclusif Un processus peut demander X ressources X N; les ressources sont allouées globalement Si un processus détecte qu il doit se bloquer par manque d un nombre suffisant de ressources, il faut mémoriser sa requête dans une file d attente qui est une donnée partagée Lorsqu un processus libère ses ressources, il doit réveiller éventuellement un ou plusieurs processus en consultant les requêtes de la file d attente et en allouant le cas échéant le nombre de ressources demandées NFP137 C13 13

Lot de ressources banalisées Contexte commun entier stock=n;//nombre de ressources disponibles file F de requete; //une requête est un couple (i,x) i est le numero du // processus et X le nombre de ressources demandées procedure ajouter(file F;entier i;entier X) //ajoute le processus i et sa demande X dans la file F procedure ôter(file F;entier i;entier X) //retire de la file la requête (i,x) procedure premier(file F;entier i;entier X) //lit la première requête de la file F; sémaphore mutexstock; E0(mutexStock,1); sémaphore sempriv[m]; tout i de 0 à M-1,E0(sempriv[i],0); NFP137 C13 14

Lot de ressources banalisées Processus proc i //i, 0 à N-1 identifiant du processus booleen OK;entier X; tant que vrai faire calculer X; //demande de X ressources P(mutexStock); si X stock alors stock=stock-x;ok=vrai; sinon ajouter(f,i,x);ok=faux; finsi; V(mutexStock); si non OK alors P(sempriv[i]);finsi; choix de X ressources //en exclusion mutuelle utilisation de X ressources NFP137 C13 15

Lot de ressources banalisées //Restitution de X ressources par proc i Rendre les ressources;//en E.M.avant réveil de processus Entier j,y; P(mutexStock); stock=stock+x; si non file-vide(f) alors // on tente de satisfaire la première requête premier(f,j,y); si Y stock alors //on peut satisfaire la requête stock=stock-y; ôter(f,j,y);//retrait de la requête de F V(sempriv[j]);//réveil du processus j finsi; V(mutexStock); NFP137 C13 16

Lot de ressources banalisées Variante réveil de plusieurs processus //Restitution de X ressources par proc i Rendre les ressources;//en EM, avant réveil de processus entier j,y; P(mutexStock); stock=stock+x; // on satisfait les requêtes dans l ordre de la file tant que non file-vide(f) faire premier(f,j,y); si Y stock alors //on peut satisfaire la requête stock=stock-y; ôter(f,j,y);//retrait de la requête de F V(sempriv[j]);//réveil du processus j sinon break;finsi;//la requête ne peut pas être satisfaite fait; V(mutexStock); NFP137 C13 17