Mémoire partagée avec peu de registres 04/04/13Displexity1.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Contrôle de la concurrence
GEF 435 Principes des systèmes d’exploitation
Tris.
Chapitre annexe. Récursivité
1 CNAM Vendredi 29 Novembre 2002 Bases de Données Avancées UV C Responsable : Mr Scholl PROTOCOLE A DEUX PHASES Meryem Guerrouani.
Algorithmes et structures de données avancés
Portée des variables VBA & Excel
Fonctions & procédures
Introduction à l’Algorithmique
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Synchronisation des Processus
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Chapitre 3 Coopération et synchronisation par variables partagées
Exercices Algorithmiques
Les éléments de mémorisation
Exécution en ordre partiel Une fois les instructions renommées, les seules dépendances qui subsistent entre instructions registre-registre sont les dépendances.
INTRODUCTION.
FLSI602 Génie Informatique et Réseaux
variable aléatoire Discrète
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel
Les bases de l’Algorithmique
Sous-programmes Concepts généraux Passage de paramètres Fonctions
Récursivité.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Section XI Traitement de fichiers
Synchronisation et communication entre processus
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Vincent Gramoli, IRISA Advisor: Alex Shvartsman
Atomicité Transactions Atomiques Recouvrement à Base de Journal
1.2 COMPOSANTES DES VECTEURS
Algorithmique et Programmation
Complément Le diagramme des classes
Etude de cas : buffer clavier
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Présentation Structures de Données et TDA
IFT Complexité et NP-complétude
Programmation concurrente
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
CSI3525: Concepts des Languages de Programmation
Chapitre 3 Interblocages 3.1. Ressources
Chapitre 9 Les sous-programmes.
Partie II Sémantique.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)
Synchronisation Classique
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Exemple de gestion d'un buffer clavier en liste circulaire
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
Ch. PAUL - Piles et Files à l'aide de listes chainées
Fondements de l’algorithmique des réseaux
LES PILES ET FILES.
INTRODUCTION.
Les machines de Turing Lionel Blavy Sébastien Giraud Fabien Tricoire
Algorithmes de tri et de recherche
Interactions entre Processus
GF-11: Tri Interne Efficace et Tri Externe
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Mémoire partagée avec peu de registres 04/04/13Displexity1

Système distribué Processus Communication/coopération: Par messages Par objets ( mémoire partagée== par registres) 04/04/13Displexity2

04/04/13Displexity3

Que veut-on résoudre et comment on le spécifie? Tâche Entrées, Sorties Spécification :une relation entrées / sorties Problème/ spécification: exclusion mutuelle Objets 04/04/13Displexity4

Objets (déterministes) Registres ( Val read(), write(Val v)) Pile, file, …( mettre(Val v), Val enlever()) Test and set (Boolean tas(Boolean v)) Compare and set ( Boolean cas(Val C,Val x, Val y) Consensus ( Val decide( Val x)) 04/04/13Displexity5

Implémenter les objets Correction Progression ( aussi valable pour les tâches,….) 04/04/13Displexity6

Correction Spécification séquentielle: elle décrit le comportement de lobjet si les processus lutilisent en séquence. Quelle est la condition de correction quand plusieurs processus lutilisent concurremment ? par rapport à la spécification séquentielle 04/04/13Displexity7

Registres Spécification séquentielle: une lecture retourne la dernière valeur écrite (la valeur initiale sil ny a pas de valeur écrite précédemment). Spécification concurrente: (sûre) si une écriture et une lecture sont concurrentes la lecture peut retournée nimporte quelle valeur (Régulier) si une écriture et une lecture sont concurrentes, la lecture peut retourner une des écritures concurrentes ou la valeur écrite précédemment (valeur initiale si pas décriture avant) 04/04/13Displexity8

SURE, REGULIER, ATOMIQUE 04/04/13Displexity WRITE( 4) WRITE( 5) READ 5 9

SURE, REGULIER, ATOMIQUE 04/04/13Displexity WRITE( 4) WRITE( 5) READ WRITE( 4)WRITE( 5) READ 5 10

SÛRE 04/04/13Displexity WRITE( 4) WRITE( 5) READ 4 ou 5 ou 87 !!! 11

REGULIER 04/04/13Displexity WRITE( 4) WRITE( 5) READ 4 ou 5 12

REGULIER 04/04/13Displexity WRITE( 4) WRITE( 5) READ 4 ou 5 13

ATOMIQUE 04/04/13Displexity WRITE( 4) WRITE( 5) READ 54 14

ATOMIQUE 04/04/13Displexity WRITE( 4) WRITE( 5) READ WRITE( 4) WRITE( 5)

ATOMIQUE Chaque appel à une opération semble être instantanée et apparaitre entre le moment de son invocation et de sa réponse. Point de linéarisation La séquence dopérations ainsi obtenue respecte la spécification séquentielle 04/04/13Displexity16

ATOMIQUE Cette définition sapplique pour tous les objets Bonne propriété de composition Très forte Dautres types de corrections sont considérées: séquentielle, quiescente ….. Objets atomiques/ implémentation dobjet linéarisable 04/04/13Displexity17

Registres Combien de lecteurs/ écrivains peuvent y accéder? SWSR, SWMR, MWSR, MWMR Contenu du registre: booléen, multi-valué Correction: sûr (safe), régulier, atomique 04/04/13Displexity18

Années : A partir dun SWSR booleen sûr (le plus faible) on peut construire un MWMR multi valué atomique (le plus fort) Tous les processus qui invoquent une opération font des pas. 04/04/13Displexity19

Progression Que se passe-t-il si certains processus ne font pas de pas? ( la définition formelle de latomicité tient compte du fait quune opération peut être débutée mais pas terminée « pendante ») 04/04/13Displexity20

Digression: consensus Spécification: Accord : tous les processus qui décident, décident la même valeur Validité : si un processsus décide il décide une valeur proposée Terminaison : Tous les processus corrects décident Tâche: ( I,O, Objet: Spécification séquentielle :Tous les decide retournent largument du premier decide 04/04/13Displexity21

Wait free Un processus, sil fait des pas, (quoi que fassent les autres) peut toujours finir son opération Très fort 04/04/13Displexity22

Wait free On peut faire peu de choses wait free: snapshot ( instantanée de la mémoire) oui, renommage (2n-1) oui ; exact non pile file etc…. non Impossibilité du consensus 04/04/13Displexity23

Impossibilité du consensus WF Il est impossible de faire du consensus wait free pour n>=2 processus avec des registres Une configuration bivalente initiale : (0,1) 04/04/13Displexity Proc 1 Proc

04/04/13Displexity25 Proc 1 Proc

Une configuration bivalente et les suivantes monovalentes 04/04/13Displexity Q P

Une configuration bivalente et les suivantes monovalentes 04/04/13Displexity Q P R R Q P R R Contradiction 27

Une lecture et une écriture ou deux écritures sur le même registres 04/04/13Displexity Q P R/W W Q P W Contradiction 28

2 écritures sur des registres différents 04/04/13Displexity Q P W W Q P W W Contradiction 29

Consensus WF pour 2 processus avec une file Init: 1, 0 04/04/13Displexity30

Consensus WF pour 2 processus avec une file Init: 1, 0 Pour le processus i Val Decide (Val v)== {R[i]:=v; x=enlever(); si x==1 alors return v sinon return R[1-i]} 04/04/13Displexity31

Pour 2 processus On peut faire du consensus wait free pour 2 processus avec une file + des registres On ne peut pas faire du consensus wait free avec des registres on ne peut pas faire de file wait free avec des registres 04/04/13Displexity32

Non blocking Parmi les processus un dentre eux finit son opération Les autres peuvent être bloqués 04/04/13Displexity33

Snapshot Un ensemble de registres, le registre R[i] est écrit par le processus i et lu par tous. 2 opérations : update( val v), Val [] scan() Implémentation naïve: update(val v) exécuté par le processus i : R[i]=v; Scan lecture séquentielle de tous les registres ( Collect ) 04/04/13Displexity34

Cette implémentation nest pas atomique 04/04/13Displexity Update (11) Update (22) (0, 22)

Scan()= { A=collect (); B=collect(); while ( A<>B){A:=B; B=collect();} Return A;} Atomique: point de linéarisation entre les 2 derniers collects 04/04/13Displexity36

Non blocking : un processus qui écrit peut empêcher tous les autres de terminer le scan (un processus progresse (celui qui fait les write)) Pas wait free Il est possible de le réaliser wait free 04/04/13Displexity37

Obstruction free Si un processus est seul alors il termine son opération propriété faible On peut « tout » faire obstruction free Attention il faut toujours assurer la correction quand il y a des exécutions concurrentes 04/04/13 Displexity38

Retour sur les registres n processus dont on connait les identités 1..n Si on peut réaliser un objet (une tâche, un pb) avec des registres alors on peut le faire avec n registres SWMR (un par processus) Faut-il n registres pour tout tâche/objet/pb ???? 04/04/13Displexity39

n processus dont les identités sont dans un ensemble 1..M avec M>>n. Avec M registres on peut « tout » faire A-t-on besoin de M registres??? 04/04/13Displexity40

04/04/13Displexity41

Moins de registres que de processus: problèmes 3 processus, 2 registres: Proc A écrit dans le registre 1 Proc B écrit dans le registre 2 Proc C écrit alternativement dans 1 et dans 2: C peut nêtre jamais vu 04/04/13Displexity42

Pas de registres pré-alloués: problème A et B exécutent le même code et écrivent répétitivement dans le registre 1 puis le registre 2. A ne voit jamais les écritures de B ( par contre B voit A) 04/04/13Displexity43

N processus qui ont des identités dans 1..M avec M>>N Peut on « tout » faire avec moins de M registres?? Les registres ne peuvent pas être alloués suivant les noms des processus Peut on « simuler » le fait quil y a un registre SWMR par processus? 04/04/13Displexity44

Premiere approche On commence par faire du renommage wait free. Les processus ont alors un nom entre 1 et 2n-1 Chaque processus a alors un accès exclusif à un des 2n-1 registres auxquels il accède suivant son nom. Mais il faut dabord faire du renommage 04/04/13Displexity45

Borne inférieure On ne peut pas faire une telle émulation avec n-1 registres Argument de couverture: un processus couvre un registre si son prochain pas consiste à écrire dans ce registre Preuve par contradiction: on construit une exécution où n-1 processus couvrent chacun un registre 04/04/13Displexity46

N=6 04/04/13Displexity47 P Q R S T

Borne inférieure Puis le dernier processus réalise une Ecriture en écrivant dans les registres 04/04/13Displexity48 P Q R S T

Borne inférieure Puis le dernier processus réalise une Ecriture en écrivant dans les registres 04/04/13Displexity49 P Q R S T

Borne inférieure Puis le dernier processus réalise une Ecriture en écrivant dans les registres 04/04/13Displexity50 P Q R S T

Borne inférieure Puis le dernier processus réalise une Ecriture en écrivant dans les registres Ecriture terminée 04/04/13Displexity51 P Q R S T

Borne inférieure Les n-1 processus recouvrent les registres et lEcriture est perdue 04/04/13Displexity52

Borne inférieure Il faut au moins n registres MWMR pour simuler n registres SWSR. 04/04/13Displexity53

Autre approche On peut simuler (non blocking) n registres SWMR avec n registres MWMR 04/04/13Displexity54

Shared variable : array of n MWMR-register : R Code for process p Local variable: set of Values View = ensemble vide ; integer k = 0 04/04/13Displexity55

04/04/13Displexity Write( x): 1 v = (x; p; k) //valeur, processus, numero 2 next = 0 3 View = View U {v} 4 do 5 Snap = NBScan() 6 View = Snap U View 7 write(R[next]; V iew) 8 next = (next + 1) mod m 9 until (card {r s.t v in Snap[r])}=n) 10 k = k

read(q): //lecture du registre de q View = Collect() return x such that (x; q; u) in View with maximal u 04/04/13Displexity57

LA simulation non blocking permet de réaliser toute tâche wf ( qui était possible avec un registre par processus) 04/04/13Displexity58

Autres résultats …. La prochaine fois ! 04/04/13Displexity59

Résultats connus (Modèle où il ny a pas de pannes: un processus qui a commencé à faire des pas en fera une infinité) O(Log(n)) registres MWMR sont nécessaires et suffisants pour faire une élection de leader. Styer et Peterson (PODC89) n registres pour faire de lexclusion mutuelle ( Burn et Lynch (Information and Computation 1993) 04/04/13Displexity60

Résultat connus Des bornes inf : Il faut au moins sqrt(n) registres pour le consensus (randomisé) obstruction free (Ellen et Al [JACM98]) sqrt( n-1)/2 pour avoir des estampilles (obstruction free) 04/04/13Displexity61

Mais les algorithmes connus pour le consensus randomisé et pour les estampilles wf utilisent n ou n-1 registres…. 04/04/13Displexity62