Cours 2 : Allocation de ressources

 
 
Un deuxième problème de synchronisation est celui de l'accès par un ensemble de processus à un ensemble de n ressource s critiques : c'est une généralisation du cas précédent.

1 Le schéma de l'allocation de ressources

 
 
Le schéma d'allocation de N exemplaires de ressources exclusives est une généralisation du schéma précédent : on considère à présent que l'on a N sections critiques. Le sémaphore d'allocation de ressources –appelé Res ici – est initialisé au nombre d'exemplaires de ressources initialement disponibles (N ici). Une opération d'allocation correspond à une opération P(Res) – allocation d'une jeton si il y en a au moins un disponible – et la restitution de ressource correspond à une opération V(Res).
 
 
INIT (Res, N)
 
 
 
 
Allocation : P(Res)
 
 
     Utilisation de la ressource Res
 
 
Restitution : V(Res)
 
 

Fig 3 : Allocation de ressource : P4 est bloqué

Fig 4 : Allocation de ressources : P4 est débloqué
 
 
Les figures 3 et 4 montrent sur un exemple le mécanisme d'allocation de ressources. Les processus P1, P2 et P3 demandent successivement à accéder à un exemplaire de ressources. Les trois opérations P sont passantes (on a initialement 3 jetons) et chaque processus obtient sa ressource. Cependant, le processus P4 est bloqué : il n'y a plus de jeton dans le compteur du sémaphore et plus d'exemplaires de ressources. Lorsque le processus P2 a terminé d'utiliser son exemplaire de ressources, il restitue celle-ci par une opération V(Res). Le jeton est rendu et attribué au processus P4 ainsi que l'exemplaire de ressource libéré.
Synchronisation entre processus Allocation de ressources