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

Multithreading Discussion :

MultiTache sur Linux


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par défaut MultiTache sur Linux
    Bonjour , je m'attaque à la partie "Temps reel" de mon application.
    Celle-ci à pour but de faire de l'acquisition sur plusieurs cannaux , et d'en sortir un signal traitée( qui résulte d'opération , et de traitement sur les cannaux bruts) , puis ensuite je doit détecter une variation particuliere sur ce signal traitée.

    Je voulais avoir votres avis , sur comment agencer tout cela .

    Tout d'abord j'avais pensé faire 2 taches :
    -T1: une qui fait exclusivement l'acquisition
    -T2: l'autre qui affiche sur le graphe et fait un log des data dans des .txt

    La tache T1 doit :
    ~ Lire sur le port parallele
    ~ Stocker dans un vector les data qui arrive sur les 4 voies
    ~ Appliquer l'algorithme pour générer des nouveaux points dans un 5eme vector qui sera le signal traitée
    ~ Essayer de détecter la variation sur ce signal traitée
    ~ Transmettre les data des 4 voies au fur et a mesure à T2 , ainsi que de la 5eme voie


    La tache T2 doit :
    ~ Creer 4 fichier txt ( un pour chaque voies , et y sauvegarder les data )
    ~ Afficher les data au fur et a mesure sur le graphe


    Ma question est , comment communiquer entre les processus ?
    Ouvrir 5 pipes ? entre T1 et T2? ou bien utiliser un segment de mémoire partagé? Que me conseillez vous ?
    Avez vous une autre idée pour mon approche ?

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut
    Citation Envoyé par rockt13 Voir le message
    Ma question est , comment communiquer entre les processus ?
    Ouvrir 5 pipes ? entre T1 et T2? ou bien utiliser un segment de mémoire partagé? Que me conseillez vous ?
    Avez vous une autre idée pour mon approche ?
    A mon avis tu ferais mieux de faire des thread et de faire la communication par signal/slot

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Salut,

    J'aurais fait plutôt un truc du genre :

    T1:
    -je lis mes 4 données
    -j'écris mes 4 données
    -j'envois mes 4 données à t2

    T2:
    -je récupère les 4 données (et met dans des listes)
    -je fais du traitement sur mes listes
    -j'affiche mon résultat
    -je redonne la main à T1

    Si tu as besoin de plus de données de T1 pour avoir un résultat, ou si l'affichage n'a pas besoin d'être très rapide, tu peux faire plusieurs cycles de T1 avant d'émettre les données à T2.

    Ensuite, je suppose que si tu es venu dans le forum Qt, ce n'est pas pour utilisé des vector et des pipes . Il y a des mécanismes bien plus intéressants avec Qt, comme les signaux slots (Cf. Alp).

    G.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut, pour détailler ma reponse :

    T2 :
    -tu lit et stocke tes donné dans un vector par exemple
    -a temps regulier tu emet un signal avec les donné stocké

    T1
    -ton ihm
    -elle recoie le vector et fait des traitements

    peut être mettre des traitements dans T1 à toi de voir

    Citation Envoyé par Gulish Voir le message
    Ensuite, je suppose que si tu es venu dans le forum Qt, ce n'est pas pour utilisé des vector et des pipes . Il y a des mécanismes bien plus intéressants avec Qt, comme les signaux slots (Cf. .
    Le pipe est trés bien gérè par Qt avec QProcess
    http://qt.developpez.com/faq/?page=q...ation_Qprocess

    Mais cela me semble ne servire à rien pour son problème

  5. #5
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Juste une petite idée en passant : ne faudrait-il pas ajouter un thread uniquement dédié à l'IHM de manière à éviter les freezes du côté GUI ?

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par FloMo Voir le message
    Juste une petite idée en passant : ne faudrait-il pas ajouter un thread uniquement dédié à l'IHM de manière à éviter les freezes du côté GUI ?

    comment cela?

  7. #7
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Salut


    A mon avis tu ferais mieux de faire des thread et de faire la communication par signal/slot
    +1, surtout que les threads de Qt sont réentrants, c'est à dire que tu peux effectuer une connexion entre un signal qui sera déclenché dans un thread avec un slot qui sera exécuté dans un autre thread. Très pratique pour les échanges entre ton code qui s'occupe de la BDD et celui qui s'occupe de l'affichage, par exemple.

Discussions similaires

  1. performances 9i sur linux
    Par learn dans le forum Oracle
    Réponses: 4
    Dernier message: 17/12/2004, 20h42
  2. quel sgbd sur linux??
    Par fabfab1 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 27/11/2004, 18h38
  3. lancer OEM via le browser (10g sur linux)
    Par learn dans le forum Entreprise Manager
    Réponses: 6
    Dernier message: 20/09/2004, 17h04
  4. [analyse de syntaxe] pour C et C++ sur Linux
    Par Madmac dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/07/2004, 06h37
  5. Multitâche sous Linux.
    Par epeios dans le forum Administration système
    Réponses: 3
    Dernier message: 13/02/2004, 16h03

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