juin
2011
On aura besoin de trois sémaphores pour protéger l’accès aux ressources partagées : coiffeur : pour l’accès au coiffeur. client : pour l’accès aux clients. mutex : un sémaphore pour l’accès en exclusion mutuelle sur la variable partagée NbClientsEnAttente. Exemple d’algorithme pour le problème du coiffeur fatigué : initialisations : sémaphore présence_client = 0 ; // le coiffeur dort au début; il est fatigué! sémaphore coiffeur = 1 ; // pas de clients au début. […]
juin
2011
Dans un salon de coiffure, il y a un coiffeur C, un fauteuil F dans lequel se met le client pour être coiffé et N sièges pour attendre. • S’il n’a pas de clients, le coiffeur C somnole dans le fauteuil F. • Quand un client arrive et que le coiffeur C dort, il le réveille, C se lève. Le client s’assied dans F et se fait coiffer. • Si un client arrive pendant que […]
juin
2011
Un étudiant qui se spécialise en anthropologie et accessoirement en informatique s’est embarqué dans un projet de recherche pour voir s’il était possible d’enseigner les interblocages aux babouins d’Afrique. Il repère un profond canyon et y jette une corde au travers, de sorte que les babouins puissent le traverser à bout de bras. Plusieurs babouins peuvent traverser en même temps, pourvu qu’ils aillent tous dans la même direction. Si des babouins qui se dirigent vers […]
juin
2011
1- Un babouin qui se présente pour traverser doit d’abord passer par un processus de gestion. Il formule sa demande. Soit elle est mise dans une file d’attente d’un sémaphore appelé gestion_est, soit elle est prise en compte directement si la ressource gestion_est est disponible. P(gestion_est) C’est tout de même un babouin de plus! il faut donc incrémenter le nombre de babouins (nb_babouin_est) dont les demandes ont été formulées. nb_babouin_est ++ On doit tester s’il […]