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