security
COURS
SYSTEMES D’EXPLOITATION
-Communication et synchronisation interprocessus-
Pr. K. ZINEDINE
E-mail : zinedinek@yahoo.fr 1
Communication et Synchronisation
Interprocessus
2
1
20/01/2014
Introduction
Les processus coopèrent souvent pour traiter un même problème.
Ces processus s'exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs) ou bien sur des ordinateurs différents.
Ils doivent alors s'échanger des informations (communication interprocessus).
Il existe plusieurs moyens de communication interprocessus.
Nous pouvons citer, entre autres, les variables communes, les fichiers communs, les signaux, les messages et les tubes de communication
3
Variables et fichiers communs
Les processus partagent un ensemble de données communes qui sont soit en mémoire (variables ou segments de données) soit sur disque (fichiers).
Chaque processus peut accéder en lecture ou en écriture à cet ensemble de données appelé espace de données commun.
Des problèmes peuvent se poser lorsque plusieurs processus essayent d'accéder en même temps à un espace commun.
Si deux processus ou plus lisent ou écrivent des données partagées, le résultat dépend de l'ordonnancement des processus.
C'est ce qu'on appelle des accès concurrents.
4
2
20/01/2014
Variables et fichiers communs
Supposons deux processus qui partagent une variable v.
Le premier processus incrémente de 1 la valeur de v alors que l'autre la décrémente de 1. La valeur initiale de v=1.
P1 : v=++;
P2 : v=--;
Supposons que les processus P1 et P2 s'exécutent en temps partagé.
Le processus P1 est en cours d'exécution.
Il est suspendu juste après l'exécution de l'instruction « incrémenter v ».
Le processus P2 est élu et exécute les instructions « charger v »,
« décrémenter v» et « sauvegarde v ».
Le processus P2 se termine avec v = 0.
Le processus P1 est ensuite élu et exécute l'instruction store v et donc v=2.
5