Information Technology Reference
In-Depth Information
Cet échange de données peut se faire par le biais d'une zone de mémoire partagée,
par le biais d'un fichier ou encore en utilisant les outils de communication offerts par
le système d'exploitation. Dans tous ces cas, les processus ne sont plus indépendants
et ils effectuent des accès concurrents aux ressources logicielles que sont la mémoire
partagée, le fichier ou encore les outils de communication. Plus généralement, une
ressource désigne toute entité dont a besoin un processus pour s'exécuter. La ressource
peut être matérielle comme le processeur ou un périphérique ou elle peut être logi-
cielle comme une variable.
Une ressource est caractérisée par un état qui définit si la ressource est libre ou
occupée et par son nombre de points d'accès, c'est-à-dire le nombre de processus
pouvant l'utiliser en même temps. Notamment, on distinguera la notion de ressource
critique qui correspond à une ressource ne pouvant être utilisée que par un seul
processus à la fois. Un processeur par exemple correspond à une ressource critique;
en effet, il n'est pas possible d'allouer celui-ci à deux processus simultanément. Une
imprimante est un autre exemple d'une telle ressource.
L'utilisation d'une ressource par un processus s'effectue en trois étapes. La première
étape correspond à l'étape d'allocation de la ressource au processus qui consiste à
donner la ressource au processus qui la demande. Une fois que le processus a pu
obtenir la ressource, il l'utilise durant un certain temps (deuxième étape) puis il rend
la ressource : c'est la dernière étape de restitution de la ressource. Les phases d'allo-
cation et de restitution d'une ressource doivent assurer que la ressource est utilisée
conformément à son nombre de points d'accès. Par ailleurs, l'étape d'allocation de
la ressource peut se révéler bloquante pour le processus qui l'effectue si tous les points
d'accès de la ressource demandée sont occupés. Au contraire, l'étape de restitution
d'une ressource par un processus peut entraîner le déblocage d'un autre processus en
attente d'accès à cette ressource.
Plusieurs schémas de synchronisation entre processus ont été définis afin de garantir
une bonne utilisation des ressources par les processus et d'une manière plus générale
une communication entre processus cohérente et sans perte de données. Ces schémas
sont : l'exclusion mutuelle, l'allocation de ressources, le producteur-consommateur
et les lecteurs-rédacteurs.
12.3.1 L'exclusion mutuelle
Un exemple simple
Nous allons mettre en lumière ce premier problème de synchronisation à l'aide d'un
exemple simple. Pour cela, considérons donc le petit programme de réservation de
place (dans un avion, un train…) donné ci-après.
Réservation :
si nbplace > 0
alors
réserver une place;
nbplace = nbplace - 1;
fsi
 
 
Search WWH ::




Custom Search