#include #include #include #include #include #include #define NB_CAMIONS 5 #define NB_VOITURES 5 #define NB_VEHICULES (NB_CAMIONS+NB_VOITURES) // La semaphore a compte sem_t sem_compteur; // Initialiser le mutex pour proteger l'acces a la semphore a compte pthread_mutex_t camion_sc = PTHREAD_MUTEX_INITIALIZER; void acceder_au_pont(int tonnes) { // A completer } void quitter_le_pont(int tonnes) { //A completer } // A completer avec les temps de parcours de la voiture void* voiture(void* arg) { int pid=(int)arg; acceder_au_pont(5); printf("Voiture %d : je traverse le pont\n",pid); printf("Voiture %d : je quitte le pont\n",pid); quitter_le_pont(5); pthread_exit(NULL); return(NULL); } // A completer avec les temps de parcours du camion void* camion(void* arg) { int pid=(int)arg; acceder_au_pont(20); printf("Camion %d : je traverse le pont\n",pid); printf("Camion %d : je quitte le pont\n",pid); quitter_le_pont(20); pthread_exit(NULL); return(NULL); } int main() { // A completer : initialiser la semaphore a comptes. // A completer : Lancer les threads : un thread par vehicule (voiture et camion) return 0; }