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 :

Projet de simulation de Kanban


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Projet de simulation de Kanban
    Bonjour,

    J'ai un projet à réaliser en langage C (programmation système) visant à illustrer la méthode kanban. Le but est de dire combien de produits on souhaite et les postes de travail (production) s'assureront de "produire" la quantité demandée. N'étant pas fort en programmation, c'est pourquoi je sollicite votre aide . L'objectif est d'utiliser les notions vus comme les processus/threads, les files de messages, les sémaphores, les mutex, etc...

    D'après le projet, on a au moins 3 niveaux de production (postes amont ou aval, ca dépend comment on voit les choses). Chaque poste dispose de 2 containers et si j'ai bien compris, si l'un venait à se vider, alors on utilise le 2ème container mais on s'assuera d'avoir envoyer un message au fournisseur lui demandant de remplir le container vide.

    J'ai pensé illustrer les postes de production par des threads, le message envoyé au fournisseur serait illustré par la file de messages, des sémaphores pour qu'un poste transmette la pièce au poste en amont dès lors que ses sous-postes aient terminé leur travail.

    Qu'en pensez-vous ? Si vous avez besoin de précision, n'hésitez pas à me demander car j'ai moi-même eu du mal à comprendre l'énoncé au début.

    Merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour,

    Qu'en pensez-vous ?
    C'est un programme en C. Ce n'est pas une question de programmation système sous linux. Si tu travailles aussi mal sur ton projet que tu choisis le forum sur lequel tu poses des questions, abandonne le projet tout de suite. Tu gagneras beaucoup de temps.

    Tu demandes une opinion; tu obtiens une opinion.

    Maintenant, c'est à toi de bosser. Reviens quand tu auras des points d'accroche.

    Ou alors envoie un chèque pour rémunérer ceux qui bossent à ta place.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour,



    C'est un programme en C. Ce n'est pas une question de programmation système sous linux. Si tu travailles aussi mal sur ton projet que tu choisis le forum sur lequel tu poses des questions, abandonne le projet tout de suite. Tu gagneras beaucoup de temps.

    Tu demandes une opinion; tu obtiens une opinion.

    Maintenant, c'est à toi de bosser. Reviens quand tu auras des points d'accroche.

    Ou alors envoie un chèque pour rémunérer ceux qui bossent à ta place.
    En voyant ton message, j'aurai tendance à m'énerver mais j'vais rester calme !
    "Qu'en pensez-vous ?" je faisais allusion à "J'ai pensé illustrer les postes de production par des threads..."
    Ensuite, la matière pour laquelle j'ai ce projet énonce les notions de programmation système comme les processus (fork), les threads, les synchronisations (sémaphore, files de messages)....

    Ou alors envoie un chèque pour rémunérer ceux qui bossent à ta place
    Moi qui voulais de l'aide sur un forum, j'espère que les membres de developpez.net sont pas comme toi !

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    J'espère aussi. Vive la biodiversité. Ça m'évitera de rencontrer trop de primo-postant comme toi
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut
    Ouaip, cela peut sembler vexant en première réponse, mais à la décharge de Flodelarab il faut dire que ta demande est assez similaire à d'autres : on ne voit pas de travail déjà fourni. D'où des réactions un peu tranchantes, mais malheureusement régulièrement compréhensibles.
    Pour ma part, je ne suis pas spécialiste Kanban, et cela dépend de ta vision de la décomposition de la chose.

    Je pense que si tu faisais (par exemple) un graphique avec le déroulement de la méthode, et ce qui se passe en cours de route (genre use-case), "on" (et "je" en particulier) y verrait plus clair. À partir de là, une autre explication (ou autre graphique) en plaçant les endroits où tu utilises thread, file, etc, serait déjà une première approche à partir de laquelle les spécialistes pourront donner leur avis sur l'organisation. Ensuite viendra le codage, et les questions techniques.
    Je ne serai pas le spécialiste qui t'aidera, mais je reste optimiste sur le fait que tu as eu un problème de formulation (dvp n'est pas le sdz, en terme de lecteurs).

    [edit] Je dis cela, car je sens le sujet avec du potentiel pour de futurs lecteurs : approche, analyse/décomposition, composants techniques. Alors reprends ta respiration et redémarre.
    poke 1024,0; poke 214,214

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par AdmChiMay Voir le message
    Ouaip, cela peut sembler vexant en première réponse, mais à la décharge de Flodelarab il faut dire que ta demande est assez similaire à d'autres : on ne voit pas de travail déjà fourni. D'où des réactions un peu tranchantes, mais malheureusement régulièrement compréhensibles.
    Pour ma part, je ne suis pas spécialiste Kanban, et cela dépend de ta vision de la décomposition de la chose.

    Je pense que si tu faisais (par exemple) un graphique avec le déroulement de la méthode, et ce qui se passe en cours de route (genre use-case), "on" (et "je" en particulier) y verrait plus clair. À partir de là, une autre explication (ou autre graphique) en plaçant les endroits où tu utilises thread, file, etc, serait déjà une première approche à partir de laquelle les spécialistes pourront donner leur avis sur l'organisation. Ensuite viendra le codage, et les questions techniques.
    Je ne serai pas le spécialiste qui t'aidera, mais je reste optimiste sur le fait que tu as eu un problème de formulation (dvp n'est pas le sdz, en terme de lecteurs).

    [edit] Je dis cela, car je sens le sujet avec du potentiel pour de futurs lecteurs : approche, analyse/décomposition, composants techniques. Alors reprends ta respiration et redémarre.
    Merci AdminChiMay pour ton message calme Je parlai évidemment du début (de l'approche et analyse/décomposition) pas de l'implémentation pour l'instant. Un graphique ? (Peut-être?) que celui-là ferait l'affaire ? : https://www.dropbox.com/s/8bb46o25bj...C3%A9.png?dl=0
    Y a une demande (combien de produits souhaités) et la demande est transmise au postes qui débutent alors la production. Dans l'image on a Poste 1, Poste 2 et Poste 3. Dans chacun de ses postes, on a la même chose : prenons par exemple Poste1 : il a 2 sous-postes (Poste1a et Poste1b). Mais ces derniers disposent également de 2 sous-postes chacun

    Avant d'aller plus loin, est-ce que c'est plus compréhensible ? N'hésite pas à me le faire savoir

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut
    C'est un pas en avant, je dirai.
    Pour moi, Kanban est d'abord associé à "méthode agile". Je ne suis pas certain que ce soit ce dont tu parles.

    Quoi qu'il en soit, il faut détailler ce dessin.

    -- Trois niveaux de production, genre "amont-aval" : on voit les flèches, ok.
    -- Tu parles de <1 poste ↔ 2 containers>, et là, je ne vois pas les deux bacs (containers) pour chaque "niveau".
    -- Si un bac est plein, on commence à remplir l'autre : donc le poste précédent "livre" au point d'entrée du suivant, et ce point "d'entrée du suivant" vérifie qu'on s'adresse au bon bac, avec en plus une décision à prendre ("envoyer un message").

    Avec un peu de recul :
    -- un niveau reçoit dans deux bacs : ça ne snifferait pas la FIFO ?
    -- le niveau receveur voit si le bac est plein : la file a donc une "longueur" maximum ? et il sait à quel niveau il doit envoyer un message pour dire file n°1 ou file n°2 ?

    Cela donnerait :
    - un lanceur (processus d'origine ?) démarre les niveaux, en précisant bien à chacun (thread ?) à qui il peut s'adresser et/ou recevoir des messages ?
    - un niveau (thread ?) est créé, il doit savoir à qui envoyer ses livraisons (avec 2 adresses de livraisons ?), et surveiller ses livraisons entrantes, et à qui signaler (terme pas totalement au hasard) qu'il doit changer de bac (file ?).
    Bon, avec tout ça, il y a bien un moment où tout cela s'arrête : quelles sont les conditions d'arrêt ? et donc celles d'initialisations de tout ce bazar ?

    Tu reprends ton schéma à la main, tu le retravailles, et après soit tu le repostes soit tu en fais une description textuelle. Pour cela, tu remplaces tous mes "?" par des affirmations/choix à toi, que tu justifies selon ta vision.

    Comme d'habitude : un papier, un crayon, et on tente de dessiner ce que l'on comprend du sujet. En y allant doucement (et avec une bonne analyse de texte du sujet), on arrive en principe à un bon début de solution. Je ne serai pas de passage avant tard demain, mais si tu es assez clair dans ta description de :
    - ce qu'il y a comme éléments (voir "architecture" au sens large),
    - quelles sont les règles de comportement de chacun,
    - quel composant(s) informatique tu places pour chaque élément,
    alors il y a de meilleures chances que d'autres aient matière à t'aider à continuer.
    poke 1024,0; poke 214,214

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Prenons ce schéma que je viens de faire avec Word (et Paint) : https://www.dropbox.com/s/o9bfztc9r2...ation.png?dl=0

    Faudra que je vois avec le prof pour plus d'explications car dès fois je pars sur des choses...et je constate que c'est pas ça :p
    Dans cet arbre, ne t'occupe pas des flèches pour l'instant, on a une Demande : genre un ordinateur. Prenons Poste A1 pour exemple (ce que je vais dire est valable pour Poste B1 et ses sous-postes, idem pour Poste C1...). Eh bien on va demander à Poste A1 de monter une carte mère par exemple.Il va demander au Poste en aval (Poste A2) d'en assembler une. Poste A2 a besoin pour ce faire d'avoir les constituants de la carte mère et va demander à ses sous-postes Poste A3 et Poste A4 de lui fournir ce qu'il a besoin, etc...

    Maintenant concernant les flèches que j'ai dessinées c'est pour illustrer le fait que ce qu'ont produit Poste A1, Poste B1 et Poste C1 vont "s'unir" (s'assembler peu importe) pour devenir le produit final au client demandeur.

    Chaque poste dispose de 2 containers comme je l'ai dit mais concernant leur fonction je suis dans le doute x)

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut
    Je crois qu'effectivement, tu dois demander des précisions, car j'ai l'impression de découvrir les choses au fil de l'eau. Avec une autre impression : ce que je vais penser/croire à un moment risque d'être à refaire au moment suivant.

    Tu mentionnes qu'on demande "genre" : ben, à lire, ça peut faire mauvais genre. Il faut rester précis : c'est ce cas, ou bien c'est un autre. Si c'est généraliste, utiliser des termes généralistes (avec lettre et indices si tu veux, comme pour la numérotation des postes). Tes flèches ont un sens, mais qui ne s'accorde pas à ta dernière phrase.

    On continue sur la première lancée : on formule / reformule, afin de vérifier qu'on comprend bien, voir tenter de trouver des questions à poser au prof. Je vais tenter de ne pas me laisser dériver par de vieux souvenirs de modélisation/simulation d'ateliers de production.

    Donc : un poste doit assembler un objet, à partir de composants qui lui sont fournis par d'autres (sous-)postes. On a une vision en arbre que ton dessin reflète bien, et presque récursive.
    - Est-tu certain que A1 soit différent des autres Ai ? Ce serait le seul qui n'ai qu'un seul bac de livraison ?
    - Pour i > 1, tout poste a visiblement 2 files (bacs) de livraison. C'est une constante du problème ou bien ce nombre peut changer ?
    - Ce que tu appelles "Demande", ce ne serait pas plutôt une forme de A0 ? qui lui aurait 3 bacs de livraison au lieu de 2 ? Et du coup, tes flèches sont inutiles, ce serait plutôt des traits vers A1/B1/C1 comme ce qui est dessiné en dessous ?
    À chaque étape ou question, avoir une réponse précise à donner.

    Regardons ton dessin. Tu es en train de dessiner un bel arbre, dont la racine est "Demande". Il te faut savoir quelles sont les caractéristiques de cet arbre : chaque nœud a-t-il un nombre fixe ou variable de fils ? ou bien seul le premier nœud a un nombre différent des autres ? Chaque nœud doit faire un boulot, et demande les pièces nécessaires aux fils ?
    C'est à vérifier à partir de ton énoncé, ou de ton prof qui s'attend probablement a des demandes d'éclaircissement.

    Regardes bien cette structure d'arbre : ne vois-tu pas un peu de lumière(s) ? (surtout que Noël approche ?) On verrait presque se dessiner, avec de l'imagination, des processus père/fils.

    Réponds bien aux questions, et ton dessin devrait trouver sa forme définitive. Tu auras un modèle fiable.
    Ensuite seulement, on peut causer technique. Genre un nœud de l'arbre pourrait être un processus/thread, est-ce que ses bacs/containers pourraient être des files, à tout z'hasard ? etc.
    À chaque étape ou question, avoir une réponse précise à donner.
    poke 1024,0; poke 214,214

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Re,
    Si ca t'intéresse voici le sujet du projet mais j'ignore si t'arriveras à comprendre quelque chose car c'est tellement flou : https://www.dropbox.com/s/yfcrkr61ul...anban.pdf?dl=0

  11. #11
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut
    Bonjour ! De retour après quelques jours.
    Si cela peut te rassurer, je crois que je serai du genre à poser des questions complémentaires au prof.
    D'après le document, j'ai l'impression de comprendre le côté basique au premier graphique, et encore au second graphique (que le prof n'a je pense pas fait), mais ensuite, je pédale un peu dans la semoule à la première lecture de la suite. Bref, des éclaircissements à demander.
    Je crois que dans ce genre de cas tu dois :
    • Voir le principe de base. Donc tu as à chaque étape un poste qui a besoin de travailler sur demande. Donc il (ce poste) reçoit une demande d'un côté (donc un message / une file de demande), qui transmet ses besoins à un/plusieurs fournisseur(s) de pièce(s) : file(s) de message(s) à envoyer (un par fournisseur).
    • Il dispose de 2 bacs de réception à capacité limitée (files de taille donnée, à toi de gérer) par fournisseur. L'une pleine signifie au fournisseur de livrer dans l'autre. Donc il faut lui envoyer un message. De ce que je lis, tu n'as dans ce sujet qu'un seul fournisseur. Mais le paramétrage de 1 à >1 reste "assez facile".
    • Quand il a construit un élément, il livre à celui qui a demandé (2 bacs/files possibles, à toi de savoir à laquelle fournir).
    • Il y a deux discussions à mettre à jour : du poste vers le(s) fournisseur(s), et du poste vers le point de livraison.
    • Un processus doit définir et initialiser tous ces postes/processus et recueillir la bonne terminaison.

    Reste, facile à dire, combien de postes sont concernés : à vérifier avec le prof s'il veut bien répondre (vis-à-vis de "son" dessin). Le reste est "générique".

    Je résume. Sur ce genre de sujet : lire, voir ce qui est commun ("générique"), faire un modèle valable pour ce "générique" (les postes, dans ce cas), et voir comment les démarrer et les terminer. Je serai aussi du genre à poser des sujets où des questions sont à poser, pour voir la réaction, mais à quand même donner les éclaircissements passé un certain temps. Que se passe-t-il de ton côté ?
    poke 1024,0; poke 214,214

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/07/2011, 19h24
  2. Projet de simulation avec python
    Par Sam-e dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 10/03/2011, 10h47
  3. [Lazarus] Projet de simulation des mouvements de planètes
    Par beatz dans le forum Lazarus
    Réponses: 1
    Dernier message: 07/05/2010, 10h35
  4. Réponses: 0
    Dernier message: 11/02/2008, 00h35
  5. Réponses: 9
    Dernier message: 10/01/2007, 09h04

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