IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Sychronisation des processus en C


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut 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 :
    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.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 428
    Points : 43 051
    Points
    43 051
    Par défaut
    Le processus principal est lancé par la fonction main, appelée au démarrage d'un programme C.

    Le code contenu dans main va créer les différents processus.

    Le sémaphore te servira à réserver certaines ressources et la synchroniser entre différents processus.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. [C#] Configuration du niveau de priorite des processus
    Par stephdiplo150 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/04/2007, 23h29
  2. faire un petit menu qui lance des processus
    Par tomsoyer dans le forum Linux
    Réponses: 4
    Dernier message: 30/11/2004, 18h37
  3. lancer des processus
    Par dylan dans le forum Général Python
    Réponses: 2
    Dernier message: 10/06/2004, 14h02
  4. [langage] fonctionnement des Processus
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 11h12
  5. Réponses: 2
    Dernier message: 04/10/2002, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo