Sychronisation des processus en C
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 :
- 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.
- le programme voiture est exécuté par les autres processus en parallèles.
Code:
1 2 3 4
|
int peux_passer = 1;
int sens_actif = 1;
int voitures_engages = 0; |
Voici le code du programme carrefour :
Code:
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:
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 :lol:
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.