next up previous contents
Next: Implémentation Up: Sémaphores Previous: Sémaphores   Contents

Exemple d'accès à une ressource critique

Exemple : opération bancaire. Une opération bancaire, est une opération délicate puisque la moindre perturbation dans la transaction peut entraîner des erreurs dans le calcul des sommes en jeu. Nous nous proposons de modéliser une transaction bancaire par les 3 opérations suivantes :

Considérons maintenant 2 processus en concurrence, P1 et P2. On peut alors imaginer les 2 séquences possibles suivantes :

  P1 P2      
Opération LIRE X LIRE X ou LIRE X -
  ADD 1 ADD 1   ADD 1 -
  ECR X -   ECR X -
  - ECR X   - LIRE X
  - -   - ADD 1
  - -   - ECR X
Résultat X = X + 1   X = X + 2



Comme on le voit, 2 modes opératoires conduisent à des configurations différentes.

Ce type de ressources est appelé ``ressource critique''. Pour réglementer les conflits d'accès à ces ressources ont été mis en place des indicateurs, appelés sémaphores, qui empêchent l'accès simultané de plusieurs processus à une ressource partagée.

Le principe est de décrémenter un compteur lors de l'accès à la ressource et de l'incrémenter lors de sa libération.

Le sémaphore ne peut devenir négatif. Un processus qui demande à décrémenter un tel sémaphore est mis en attente.


next up previous contents
Next: Implémentation Up: Sémaphores Previous: Sémaphores   Contents
Arnaud Revel
2001-11-26