Académique Documents
Professionnel Documents
Culture Documents
critiques
(INE2)
Pr. Safae DAHMANI
@: dahmani@inpt.ac.ma
Bureau 111
21/04/2022
Chapitre II
Partage des ressources et Synchronisation
21/04/2022
Synchronisation
• Définition
• Objets de synchronisation
• Interblocage
21/04/2022
Synchronisation
Y=Y+2 Y=Y^2
Y=A^2
Y
Y
X=Y+2
Synchronisation
● Synchronisation: c’est le mécanisme qui permet de:
Read count = 5
Changement de contexte
Read count = 5
○ Variable condition
Synchronisation
● Mutex (Mutual Exclusion) : Mécanisme de verrou pour la protection
d’une section critique
● Lorsqu'une tâche souhaite accéder à une section critique elle doit
d’abord acquérir le verrou:
○ Le verrou doit être libre/ouvert; aucune autre tâche n’est dans la section critique
○ La tâche devient momentanément propriétaire du verrou
○ Le verrou est ouvert de nouveau a la fin du traitement
○ Si le verrou est fermé au moment de l’acquisition, la tâche est suspendue jusqu’à
réouverture du verrou
Synchronisation
● Mutex (Mutual Exclusion) :
○ Variable Booléenne
○ Possède une liste d’attente
○ Manipulée par deux opérations atomiques:
void acquire(verrou v) {
■ Acquire (V) : if (v)
v = false
else
// Ajouter la tâche à la liste d’attente de v }
■ Release (V):
void release(verrou v){
if (file_attente(v) != vide)
// Débloquer une tâche en attente dans file
else
v = true}
Synchronisation
● Mutex (Mutual Exclusion) :
Initialiser(verrou)
acquire(verrou)
...
// Section critique
...
release(verrou)
Synchronisation
● Mutex (Mutual Exclusion) : Exemple POSIX
#include <pthread.h>
void V(sémaphore s) {
s += 1;
if (s <= 0)
// Débloquer une des tâches de la file associée à s
}
Synchronisation
● A la différence d’un Mutex, un sémaphore permet à plusieurs tâches de
rentrer dans une section critique commune
○ Un périphérique pourrait accepter un nombre limité de requêtes simultanées.
T3
○ Tâche1 Tâche2: signifie que Tâche1 doit être T2
■ L’exécution dans un moniteur permet de garantir l’exclusion mutuelle entre les opérations
■ L’exécution dans un moniteur permet de garantir l’exclusion mutuelle entre les opérations
■ Signal: est une opération vide si aucun processus n’est bloqué sur cette condition. Sinon,
le processus “signaleur” est suspendu et un processus bloqué sur C est réactivé.
#include <pthread.h>
T1
R1 R2
T2
Synchronisation
● Interblocage (Dead Lock): Un processus est en état d’interblocage s’il est
bloqué en attente d’une condition qui ne se produira jamais.
○ Prévenir:
■ Prévenir statiquement en empêchant l’arrivée du deadlock
○ Guérir
■ Détection
■ Récupération
Synchronisation
● Prévention statique:
■ Chaque demande d’allocation peut alors être définie comme “sûre” s’il reste
suffisamment de ressources pour satisfaire le pire cas (condition 4).
Synchronisation
● Identification :
● Réduction :
36
Questions
21/04/2022