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

Linux Discussion :

Synchronisation de deux processus fils avec des signaux


Sujet :

Linux

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Synchronisation de deux processus fils avec des signaux
    Bonjour,

    Voici l'intitulé de mon énoncé :
    Un travail à réaliser comporte un partie initiale globale (notée T1), deux travaux T1 et T2 chacun décomposé en 3 parties (T1a, T1b, T1c, T2a, T2b, T2c) et une partie finale TF. Les travaux T1 et T2 peuvent être réalisés simultanément avec les réserves suivantes, où "début" et "fin" indiquent les instants de début et de fin d'un tavail donné :
    - début(T2a)>=fin(T1a)
    - début (T1c)>=fin(T2b)

    Implanter ce travail à réaliser à l'aide de trois processus (un père et deux fils), les fils réalisant les travaux T1 et T2, la synchronisation éant effectuée par des signaux.

    Je ne sais pas comment procéder ? Est ce que je dois faire deux fork dans le père ?
    Toute aide est la bienvenue

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par microbus Voir le message
    Implanter ce travail à réaliser à l'aide de trois processus (un père et deux fils), les fils réalisant les travaux T1 et T2, la synchronisation éant effectuée par des signaux.

    Je ne sais pas comment procéder ? Est ce que je dois faire deux fork dans le père ?
    Ben oui puisque l'énoncé indique que le père a 2 fils. Donc le père fait un premier fork, le cas 0 du fork devient le premier fils, puis il fait un 2° fork, le cas 0 de ce 2° fork devient le second fils.

    Je te conseillerais de décomposer au maximum ce genre de travail, avec une fonction pour gérer chaque fils de façon à avoir un code clair et non une espèce de gros paté où tout est mélangé et où personne ne comprendras que dalle (trop souvent vécu ce genre de truc sur ce fofo)...

    Donc ça pourrait être un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ...
     
    ... <initialisation des variables, des tableaux, etc...>
    // Création du premier fils
    switch(fork())
    {
        case (-1): // Erreur de fork à gérer
            break;
        case 0: // Fils 1
            fils1();
            exit(0);
    }
     
    // ici on est toujours le père et il est unique puisque le fils se termine par exit()
     
    // Création du second fils
    switch(fork())
    {
        case (-1): // Erreur de fork à gérer => probablement aller killer le premier fils
            break;
        case 0: // Fils 2
            fils2();
            exit(0);
    }
     
    // Ici les deux fils sont lancés - Traitement du père
    ...
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void fils1()
    {
        ....
    }
    void fils2()
    {
        ....
    }
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Points : 593
    Points
    593
    Par défaut
    Et écrit peut-être les algos du père et des deux fils sur une feuille de papier avant de coder. Grossièrement hein, il ne s'agit pas de décrire chaque instructions C, mais dans les grandes lignes, histoire de connaître chaque étapes.

Discussions similaires

  1. Comment créer deux processus fils UNIX avec C
    Par Astronge dans le forum C
    Réponses: 2
    Dernier message: 20/05/2015, 17h36
  2. Comment créer deux processus fils UNIX avec C
    Par Astronge dans le forum Linux
    Réponses: 2
    Dernier message: 20/05/2015, 12h33
  3. Réponses: 12
    Dernier message: 10/10/2012, 16h04
  4. Gérer l'affichage des fenêtres avec des signaux
    Par flomanson dans le forum Débuter
    Réponses: 10
    Dernier message: 09/09/2011, 13h48
  5. Réponses: 1
    Dernier message: 17/09/2010, 01h40

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