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

Langages de programmation Discussion :

algorithmes sur les sémaphores


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 28
    Par défaut algorithmes sur les sémaphores
    bonjour, quelqu'un peut m'aider à résoudre ce problème, moi suis vraiment coincé !
    Dans un système, on a un processus qui produit des boules blanches (représentant des atomes
    d’hydrogène), et un processus qui produit des boules rouges (représentant des atomes d’oxygène).
    Ils utilisent pour cela la fonction CreerBoule qui prend en entrée le type de boule (Oxy ou Hydro) et
    renvoie une boule (de type Tboule). Les boules sont placées dans deux récipients séparés, suivant
    leur couleur :
    RecipHydro pour les blanches (l’hydrogène), RecipOxy pour les rouges (l’oxygène). Deux processus
    assembleur construisent (chacun indépendamment) des ensembles de trois boules, toujours une
    rouge et deux blanches (ça donne une molécule d’eau), et placent le résultat dans un troisième
    récipient de nom RecipEau. La molécule d’eau est renvoyée par la fonction SyntheEau, qui prend en
    paramètres d’entrée 2 boules blanches et une rouge.
    Les récipients intermédiaires sont de taille finie ; ils contiennent MaxHydro et MaxOxy boules. Le
    troisième est de taille infinie. On dispose des primitives prendre et mettre, qui prennent en
    paramètre le nom du récipient et qui permettent de prendre ou de mettre 1 boule (en paramètre).
    L’accès à un récipient ne peut se faire que par un processus à la fois (mais 2 processus doivent
    pouvoir accéder en même temps à des récipients différents).
    Question: Proposer des algorithmes pour chaque processus du système (utilisant les sémaphores)

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Par défaut
    Citation Envoyé par arthson Voir le message
    bonjour, quelqu'un peut m'aider à résoudre ce problème, moi suis vraiment coincé !
    Bonjour,

    qu'as tu essayé? Où est ce que tu bloques?
    As tu regardé le modèle producteur consommateur?
    http://fr.wikipedia.org/wiki/Mod%C3%...r-consommateur

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 28
    Par défaut
    au fait j'ai pas bien compris ces histoires en cours !
    je sais qu'il y' a les algorithmes, mais comment les appliquer !
    si je pourrais avoir une lumière, je peux m'en sortir !
    merci

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Par défaut
    Citation Envoyé par arthson Voir le message
    si je pourrais avoir une lumière, je peux m'en sortir !
    merci
    Alors, la question est:
    - qui sont tes producteurs? Qui fabrique les boules? Dans ce cas, tu as deux familles de producteurs (hydro et oxygène).
    - qui consomme les boules? Qui se sert des boules?
    - comment appliquer le modèle des consommateurs et consommateurs dans ce cas? En particulier, il te faut 2H et 1O. S'il t'en manque, tu ne peux pas construire ton atome.

    C'est plus clair?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 28
    Par défaut
    merci pour les éclaircissement
    bon j'ai pu quand même trouver quelque chose, verifie un peu :


    Procéssus principal
    Début
    MaxHydro =0
    MaxOxy = 0
    MinHydro = M
    MinOxy = N
    Mutex_hydro = 1*
    Mutex_oxy = 1*
    Mutex_eau = 1*
    Création_hydro ()*
    Création_oxy ()*
    Mutex_hydro =1*
    Mutex_oxy = 1*
    Fin


    Procéssus Création_hydrogène
    Début
    Tant que (0) faire
    Boule_hydro = CreerBoule (hydro)
    P (MinHydro)
    P (Mutex_hydro)
    Mettre (RecipHydro, Boule_Hydro)
    V (Mutex_hydro)
    V (MaxHydro)
    Fin tant que
    Fin


    Proc Création_oxy
    Début
    Tant que (0) faire
    Boule_Oxy = creerBoule (oxy)
    P (MinOxy)
    P (Mutex_oxy)
    Mettre (Recip_Oxy, Boule_Oxy)*
    V (Mutex_oxy)
    V (MaxOxy)
    Fin tant que
    Fin











    Processus Assembleur1
    Début
    Tant que (vrai) faire
    P (MaxOxy)*
    P (Mutex_oxy)*
    Boule_oxy = prendre (Recip_oxy)*
    V (Mutex_oxy)*
    V (MinOxy)*
    Pour i = 1 à 2
    P (MaxHydro)*
    P (Mutex_hydro)*
    Boule_hydro (i) = Prendre (RecipHydro)*
    V (Mutex_hydro)*
    V (MinHydro)*
    BouleEau = SyntheEau (Boule_hydro (1), Boule_hydro (2), Boule_oxy)*
    P (Mutex_eau)*
    Mettre (RecipEau, BouleEau)*
    V (Mutex_eau)
    Fin tant que
    Fin


    Processus Assembleur2
    Début

    Tant que (vrai) faire
    P (MaxOxy)*
    P (Mutex_oxy)*
    Boule_oxy = prendre (Recip_oxy)*
    V (Mutex_oxy)*
    V (MinOxy)*
    Pour i = 1 à 2
    P (MaxHydro)*
    P (Mutex_hydro)*
    Boule_hydro (i) = Prendre (RecipHydro)*
    V (Mutex_hydro)*
    V (MinHydro)*
    BouleEau = SyntheEau (Boule_hydro (1), Boule_hydro (2), Boule_oxy)*
    P (Mutex_eau)
    Mettre (RecipEau, BouleEau)*
    V (Mutex_eau)
    Fin tant que
    Fin

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Par défaut
    sur le principe, c'est pas mal.
    • Tant que (0) en revanche, tu ne vas pas beaucoup exécuter ta boucle. Tant que (vrai), c'est mieux.
    • Comment tu gères les tailles finies des deux conteneurs de boules?

Discussions similaires

  1. Algorithme sur les tableaux à grandes dimensions
    Par bobo034 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 26/05/2008, 17h11
  2. algorithme sur les vecteurs
    Par alouha dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/04/2008, 19h41
  3. Algorithms sur les mauvais conteneurs
    Par NiamorH dans le forum SL & STL
    Réponses: 3
    Dernier message: 01/02/2008, 12h26
  4. [Tableaux] Aide pour un algorithme sur les tableaux
    Par sara21 dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2007, 11h28

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