Trois corrections sont ici proposees : - fichier pont_version0.c : cette solution est basee sur un compteur de ressources. On associe un semaphore a compteur pour compter le poids de vehicule en cours de transit sur le pont. Lorsque le semaphore passe a zero, c'est que le pont est plein et les threads sont bloquees. On utilise, d'autre part, un mutex (section critique) afin d'eviter un interblocage si un camion et des voitures font un acces simultane au semaphore a compteur. - fichier pont_version1.c : cette solution est basee sur les semaphores prives. Ici, les semaphores prives (qui sont des semaphores a compteur) permettent de bloquer les threads si la ressource n'est pas libre (pont). Le mutex est utilise pour proteger l'acces aux variables d'etats qui decrivent l'etat des threads et des ressources. - fichier pont_version2.c : idem pont_verson1.c sauf qu'ici, on ne fait plus la differences entre toutes les threads. Il n'y a plus que 2 semaphores prives (un pour les camions, un pour les voitures)