Bonjour,
c'est problème vu en cours dont j'ai pas bien compris.
C'est une simulation de trafic automobile à une intersection entre deux voies (1 et 2) munient de feux tricolores, cette simulation s'appuie sur deux programmes :
  1. Le programme carrefour exécuté par un seul processus et qui a pour but de gérer les feux tricolores, il est lancé au début de la simulation.
  2. le programme voiture est exécuté par les autres processus en parallèles.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
int peux_passer = 1;
int sens_actif = 1;
int voitures_engages = 0;
Voici le code du programme carrefour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
while(1){
sleep(PERIODE);
peux_passer = 0;
while(voitures_engages>0);
sens_actif=3-sens_actif;
peux_passer =1;
le code du programme carrefour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
int sens = sens_random();
while(!peux_passer || sens != sens_actif());
voitures_engagees++;
sleep(TRAVERSEES);
voitures_engages--;
NB : j'ai cherché sur google avant de venir demander votre aide

Ma question si on dispose de n processus Voitures, comment se fait le lancement du processus principal et les n processus voitures et le processus carrefour ?
Est-ce que cela a une relation avec les sémaphores ?
Merci d'avance.