Académique Documents
Professionnel Documents
Culture Documents
interprocessus
Objectifs de ce module
En suivant ce module vous allez:
Comprendre la problématique
de l'accès concurrent.
Comprendre les algorithmes de
résolution.
Trouver des solutions
optimisées.
ZIDANE NORDINE ENSET RABAT
La communication interprocessus
Plan du module
Voici les parties que nous allons aborder:
Blocage et interblocage.
Supprimer l'attente active.
ZIDANE NORDINE ENSET RABAT
La communication interprocessus
Blocage et interblocage
Notions et sémantique
Plan de la partie
Voici les chapitres que nous allons aborder:
Un exemple concret
Définitions de la section critique
Généralisation du problème
Pertinence de l’étude
Critères nécessaires pour une
solution valide
Première solution algorithmique
L'excès de courtoisie
L'algorithme de Dekker
ZIDANE NORDINE ENSET RABAT
L'algorithme de Peterson
L'instruction test & set
Nécessité d'utiliser d'autres méthodes
Blocage et interblocage
Un exemple concret
Un professeur
veut réserver une
salle de TP
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
Un exemple concret
Il se connecte sur
campus booster
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
Un exemple concret
Il se connecte sur
campus booster
La salle est
libre
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
Un exemple concret
Il se connecte sur
campus booster
La salle est
libre
Un autre professeur
ZIDANE NORDINE ENSET RABAT
veut réserver la
même salle de TP
Blocage et interblocage
Un exemple concret
Il se connecte sur
campus booster
La salle est
libre
Il se connecte sur
ZIDANE NORDINE ENSET RABAT
campus Booster
Blocage et interblocage
Un exemple concret
Il se connecte sur
campus booster
La salle est
libre
Il se connecte sur
ZIDANE NORDINE ENSET RABAT
campus Booster
La salle est
libre
Blocage et interblocage
Un exemple concret
Il réserve la salle
La salle est
réservée!
Il se connecte sur
ZIDANE NORDINE ENSET RABAT
campus Booster
La salle est
libre
Blocage et interblocage
Un exemple concret
Il réserve la salle
La salle est
réservée!
Il réserve la salle
ZIDANE NORDINE ENSET RABAT
Généralisation du problème
Généralisation du problème
Répéter
Section d’entrée
Section critique
Section de sortie
Section restante
Toujours
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
Généralisation du problème
Application
Section de sortie
Blocage et interblocage
Pertinence de l'étude
Etc…
Blocage et interblocage
Exclusion Mutuelle :
À tout instant, au plus un processus peut
être dans une section critique (SC) pour
une variable donnée.
Non interférence :
Si un processus s’arrête dans sa section
restante, ceci ne devrait pas affecter les
autres processus.
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
Atomicité = indivisibilité
Blocage et interblocage
Thread Ti:
repeat
while(turn!=i){};
SC
turn = j;
SR
ZIDANE NORDINE ENSET RABAT
forever
Blocage et interblocage
repeat repeat
while(turn!=0){}; while(turn!=1){};
SC SC
turn = 1; turn = 0;
SR SR
forever forever
ZIDANE NORDINE ENSET RABAT
L’excès de courtoisie
Processus Ti:
repeat
flag[i] = vrai;
while(flag[j]==vrai){};
SC
ZIDANE NORDINE ENSET RABAT
flag[i] = faux;
SR
forever
Blocage et interblocage
L’excès de courtoisie
Après Après
Processus T0: vous, Processus T1: vous,
monsieur monsieur
repeat repeat
flag[0] = vrai; flag[1] = vrai;
while(flag[1]==vrai) while(flag[0]==vrai)
{}; {};
SC SC
flag[0] = faux; flag[1] = faux;
SR SR
forever forever
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
L’excès de courtoisie
L’excès de courtoisie
L’algorithme de Dekker
ZIDANE NORDINE ENSET RABAT
Blocage et interblocage
L’algorithme de Dekker
L’équitié
Le fonctionnement correct de l'algorithme de
Dekker dépend du fait que chaque processus finit
toujours par progresser.
L’algorithme de Dekker
Notions et sémantique
Plan de la partie
Voici les chapitres que nous allons aborder:
Définition d’un sémaphore
Sémaphore d’exclusion mutuelle
Sémaphore de synchronisation
Généralisation : Le rendez-vous
Le risque d’interblocage
Le modèle producteur-consommateur à
une case
ZIDANE NORDINE ENSET RABAT
Supprimer l’attente active
Sémaphore – n.
Introduits par Dijkstra en 1965. Les sémaphores sont un
outil élémentaire de synchronisation qui évitent l'attente
active.
Sémaphore – n. Un sémaphore s =
Un entier e(s) ;
Une file d'attente f(s) ;
Deux primitives P(s) et V(s).
Soit p le processus qui effectue P(s) ou V(s).
ZIDANE NORDINE ENSET RABAT
Supprimer l’attente active
P(s) V(s)
E(s)=e(s) +1
e(s)= e(s) -1
si e(s)<=+0 alors
si e(s)<0 alors
sortir(q,f(s));
État(p)=bloqué;
état(q)=éligible;
Entrer(p,f(s));
entrer(q,f(éligibles));
ZIDANE NORDINE ENSET RABAT
Supprimer l’attente active
P(s) V(s)
E(s)=e(s) +1
e(s)= e(s) -1
si e(s)<=+0 alors
si e(s)<0 alors
sortir(q,f(s));
État(p)=bloqué;
état(q)=éligible;
Entrer(p,f(s));
entrer(q,f(éligibles));
Sémaphore de synchronisation
Utilisation :
Processus 1 Processus 2
Généralisation : Le rendez-vous
P(mutex);
nb=nb+1; ...
si nb=n alors V(Ssync; nb=0; P(Sync);
V(mutex); V(Sattend,n);
P(Sattend); ...
Supprimer l’attente active
Le risque d’interblocage
P(semB); P(semA);
<SC> <SC>
V(semB); V(semA);
V(semA); V(semB);
Supprimer l’attente active
Le risque d’interblocage
Détection, guérison
Producteur Consommateur
Producteur Consommateur
P(vide) P(plein)
produire(messageP); retirer(case, messageC);
déposer(case, messageP); consommer(messageC);
V(plein) V(vide)
Amélioration:
Producteur Consommateur
ZIDANE NORDINE ENSET RABAT
produire(messageP); P(plein)
P(vide) retirer(case, messageC);
déposer(case, messageP); V(vide)
V(plein) consommer(messageC);
Supprimer l’attente active
Résumé du module
Interruption
Interblocage
critique
La communication interprocessus
Publications
Sites web
http://www.microsoft.com/france/windows/vista/default.mspx
ZIDANE NORDINE ENSET RABAT
http://www.docsdunet.com/doc_ado.html
http://www.linux-france.org/article/dalox/
Félicitations
Vous avez suivi avec succès le
chapitre n°3
La communication
interprocessus
ZIDANE NORDINE ENSET RABAT
La communication interprocessus
Fin
ZIDANE NORDINE ENSET RABAT