Parallélisme1. Problèmes du parallélisme et Outils permettant de les résoudre. M. Ould Braham. Master1 (DMI/FST Limoges) 1



Documents pareils
Chapitre 4 : Exclusion mutuelle

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

Problèmes liés à la concurrence

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

Cours de Systèmes d Exploitation

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

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

Partie 7 : Gestion de la mémoire

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

Cours de Base de Données Cours n.12

Cours A7 : Temps Réel

Synchro et Threads Java TM

Ordonnancement temps réel

Données Réparties. Thibault BERNARD.

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

Resolution limit in community detection

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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

CH.3 SYSTÈMES D'EXPLOITATION

L exclusion mutuelle distribuée

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

SYSTÈME DE GESTION DE FICHIERS

UE Programmation Impérative Licence 2ème Année

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Systemes d'exploitation des ordinateurs

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Introduction aux Systèmes et aux Réseaux

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Programmation C. Apprendre à développer des programmes simples dans le langage C

Gestion des processus

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

Le langage C. Séance n 4

Introduction à la programmation concurrente

Gestion répartie de données - 1

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

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

Implémentation des SGBD

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Support de cours système d exploitation

Annexe 6. Notions d ordonnancement.

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

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

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

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

REALISATION d'un. ORDONNANCEUR à ECHEANCES

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

Module BDR Master d Informatique (SAR)

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

Conception des systèmes répartis

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Métriques de performance pour les algorithmes et programmes parallèles

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Introduction aux algorithmes répartis

Organigramme / Algorigramme Dossier élève 1 SI

Microprocesseur + Logiciel

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

4.2 Unités d enseignement du M1

Manière de manipuler le générateur de numéros de transaction TAN

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Ordonnancement temps réel

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

Feuille TD n 1 Exercices d algorithmique éléments de correction

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Programmation d Applications Concurrentes et Distribuées (INF431)

Structure fonctionnelle d un SGBD

Programmation Web. Introduction

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Logiciel de base. Première année ENSIMAG

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

Compilation (INF 564)

Network musical jammin

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Réplication des données

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : La compilation

Cours d initiation à la programmation en C++ Johann Cuenin

Programmation Web. Madalina Croitoru IUT Montpellier

Approche Contract First

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Cours de Génie Logiciel

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Cours d algorithmique pour la classe de 2nde

Licence Sciences et Technologies Examen janvier 2010

Réglages du module de sauvegarde de Biblionet (Monoposte)

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Cours Bases de données

IV- Comment fonctionne un ordinateur?

Programmation système en C/C++

Transcription:

Parallélisme1 Problèmes du parallélisme et Outils permettant de les résoudre M. Ould Braham Master1 (DMI/FST Limoges) 1

Contenu du cours (9h, 6 Séances) Problèmes du parallélisme Modèles de fonctionnement parallèle Outils du parallélisme Master1 (DMI/FST Limoges) 2

Problèmes du parallélisme Exclusion mutuelle Partage de ressource(s) Famine Interblocage Master1 (DMI/FST Limoges) 3

Modèles de fonctionnement parallèle Producteurs/Consommateurs Lecteurs/ Rédacteurs Clients/Serveurs Caractéristiques d un bon fonctionnement Master1 (DMI/FST Limoges) 4

Outils du parallélisme Interruption Lecture/Ecriture Indivisible Evénement Sémaphore Moniteur Master1 (DMI/FST Limoges) 5

Contenu du TD (15h, 10 séances) Utilisation des sémaphores Unix Utilisation des tubes Unix Utilisation des Files de messages (BAL) Traitement de l exclusion mutuelle Master1 (DMI/FST Limoges) 6

Contenu du TP (6h, 4 séances) Utilisation des sémaphores Unix Utilisation des tubes Unix Utilisation des Files de messages (BAL) Contrôle de TP Master1 (DMI/FST Limoges) 7

Problèmes du parallélisme Introduction Exclusion mutuelle Partage de ressources Master1 (DMI/FST Limoges) 8

Introduction Lorsque des activités se déroulent en parallèle Des relations d ordre conflictuel Des relations de coopération Deux classes de modèle peuvent être distinguées Les modèles centralisés Les modèles Distribués Solution du domaine de la Synchronisation Master1 (DMI/FST Limoges) 9

Introduction Tous les modèles utilisés pour résoudre ces problèmes de synchronisation mettent en œuvre le concept fondamental de processus comme outil de représentation et de structuration des traitements parallèles. Master1 (DMI/FST Limoges) 10

Exclusion mutuelle Section critique Exemple de section critique: Réservation de places Const Max = 20 //Nombre de places maximum var Reservees : Entier 0 //Partagée procedure Reserver ( Demandees : Entier ) Debut Si ( Reservees + Demandees <= Max ) Alors Reservees Reservees + Demandees Sinon Afficher( 'Réservation refusée ') ; Fsi Fin Reserver ; Master1 (DMI/FST Limoges) 11

Exclusion mutuelle Exemple d entrelacement conflictuel Processus P1(+3) Processus P2 (+2) Test P1, P2 Reservees Si (Res+Dem)<=20 V,? 17 Si (Res+Dem) < =20 V, V 17 Res Res + Dem V, V 19 Res Res + Dem V, V 22 Master1 (DMI/FST Limoges) 12

Exclusion mutuelle Remarques Tout processus peut être interrompu à tout moment par le superviseur Une des deux réservations aurait dû être refusée Il y a eu une perte de lecture au niveau de P1 Master1 (DMI/FST Limoges) 13

Exclusion mutuelle L'instruction: Res<-- Res + Dem s'écrit en langage assembleur sous la forme: Load Res; Accu<--Res Add Dem ; Accu <-- Accu + Dem Store Res; Res <-- Accu Master1 (DMI/FST Limoges) 14

Exclusion mutuelle Autre exemple d entrelacement de deux processus utilisant la procédure Reserver (Ass) Processus P1 (+3) Processus P2 (+2) Accu P1, P2 Reservees Si (Res+Dem)<=20?,? 17 Accu Res 17,? 17 Si (Res+Dem) <= 20 17,? 17 Accu Res 17, 17 17 Accu Accu+Dem 17, 19 17 Res Accu 17, 19 19 Accu Accu+Dem 20, 19 19 Res Accu 20, 19 20 Master1 (DMI/FST Limoges) 15

Exclusion mutuelle Remarques Une des deux réservations aurait dû être refusée Il y a eu une perte d écriture au niveau de P2 Le Résultat ne correspond pas aux opérations effectuées Master1 (DMI/FST Limoges) 16

Exclusion mutuelle Procédure d annulation de places procedure Annuler ( Annulees : Entier ) Debut Reservees Reservees - Annulees Fin Annuler ; Master1 (DMI/FST Limoges) 17

Exclusion mutuelle L'instruction: Res<-- Res - Annu s'écrit en langage assembleur sous la forme: Load Res ; Accu<--Res Sub Annu ; Accu <-- Accu - Annu Store Res ; Res <-- Accu Master1 (DMI/FST Limoges) 18

Exclusion mutuelle Autre exemple d entrelacement de deux processus utilisant les procédures Reserver et Annuler (Ass) Processus P1 (+3) Processus P2 (-2) Accu P1, P2 Reservees Si (Res+Dem)<= 20?,? 17 Accu Res 17,? 17 Accu Res 17, 17 17 Accu Accu - Ann 17, 15 17 Res Accu 17, 15 15 Accu Accu+Dem 20, 15 15 Res Accu 20, 15 20 Master1 (DMI/FST Limoges) 19

Exclusion mutuelle Remarque Le Résultat ne correspond pas aux opérations effectuées Là ausi il ya eu perte d'écriture au niveau de P2 Master1 (DMI/FST Limoges) 20

Exclusion mutuelle L exécution par plusieurs processus des sousprogrammes Reserver et Annuler ( qui se partagent la variable Reservees) ne peut être correct que si ces sous-programmes s excluent mutuellement au niveau des sections critiques (S.C) Master1 (DMI/FST Limoges) 21

Exclusion mutuelle Mécanisme de l exclusion mutuelle La procédure Entrer_Exmut (Demande d entrer en exclusion mutuelle) Bloque le processus appelant tant que la section critique est occupée La procédure Quitter_Exmut (Signale la sortie de l exclusion mutuelle) Autorise un autre processus à y entrer Master1 (DMI/FST Limoges) 22

Exclusion mutuelle La procédure de réservation s écrit alors procedure Reserver ( Demandees : Entier ) Debut Entrer_Exmut Si ( Reservees + Demandees <= Max ) Alors Reservees Reservees + Demandees Sinon Afficher( Réservation refusée ) ; Fsi Quitter_Exmut Fin Reserver ; Master1 (DMI/FST Limoges) 23

Exclusion mutuelle La procédure d annulation s ecrit alors procedure Annuler ( Annulees : Entier ) Debut Entrer_Exmut Reservees Reservees Annulees Quitter_Exmut Fin Annuler ; Master1 (DMI/FST Limoges) 24

Exclusion mutuelle Remarques Les procédures Entrer_Exmut et Quitter_Exmut seront implantées différemment en fonction de l outil utilisé Les appels Entrer_Exmut et Quitter_Exmut doivent être dans les procédures pour une raison de bonne structuration mais ils peuvent aussi apparaitre dans les processus Master1 (DMI/FST Limoges) 25

Partage de ressource(s) Un protocole est nécessaire pour accéder à une ressource. Généralement ce protocole impose à un processus d appeler une opération Allouer avant toute utilisation de la ressource puis une opération Libérer lorsque le processus a fini d utiliser la ressource allouée. Généralement, pour une ressource en plusieurs exemplaires la syntaxe de ces deux opérations est : procédure Allouer ( Nb_Expl : Entier ) ; procédure Libérer ( Nb_Expl : Entier ) ; Master1 (DMI/FST Limoges) 26

Partage de ressource(s) La stratégie FIFO ( First In First Out ) est la plus simple et la plus équitable des stratégies d ordonnancement des requêtes (demandes). Toutefois, des priorités sont souvent introduites pour ordonner les requêtes ( priorité des processus, nombre de ressources déjà allouées, etc. ), dans ce cas, il peut y avoir le problème de famine pour faible priorité Master1 (DMI/FST Limoges) 27

Partage de ressource(s) Exemple Allocation FIFO d une ressource en plusieurs exemplaires (inconvénients) Demandes Nbr_Dispo = 4 P1 : Allouer(5) P2 : Allouer(2) P3 : Allouer(2) Optimisation du nombre de demandes satisfaites (FIFO si possible) Master1 (DMI/FST Limoges) 28

Partage de ressource(s) L'allocation des ressources pose également le problème d'interblocage des processus ( blocage perpétuel des deux processus) Exemple: soit deux processus P1 et P2 se partageant deux ressources exlusives R1 et R2 Master1 (DMI/FST Limoges) 29

Partage de ressource(s) Exple d interblocage Processus P1 Processus P2 Demande de R1 : satisfaite Demande de R2 : satisfaite Demande de R1 : bloquée Demande de R2 : bloquée Master1 (DMI/FST Limoges) 30

Partage de ressource(s) Graphe d allocation des ressources P1 P2 Il y a un arc entre un processus et un autre si le premier attend une ressource détenue par l autre Il y a un interblocage s il y a un cycle dans le graphe d'allocation Master1 (DMI/FST Limoges) 31

Partage de ressource(s) Solutions au problème d interblocage Algorithmes de prévention (Avant) Algorithmes d évitement (Au moment) Algorithmes de détection/résolution (Périodiquement) Master1 (DMI/FST Limoges) 32