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

Réseau C Discussion :

gérer le socket en mode threadless


Sujet :

Réseau C

  1. #1
    Membre régulier Avatar de Thor Tillas
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 90
    Points
    90
    Par défaut gérer le socket en mode threadless
    Voilà, je dois transformer un logiciel utilisant les thread en un environnement sans thread.

    Je suis encore dans une phase de conception et je recherche des idées ou des manière de récupérer la main lorsque quelque chose arrive sur ma carte réseau.

    En gros, au lieu d'avoir un thread qui fait du polling sur ma connexion socket, j'aimerais qu'interruption se lève et tombe dans une routine qui lui dise quoi faire avec le nouveau message.

    Ca me parraissait vraiment trivial avant de commencer à faire mes recherches, puisque je pensais qu'il suffisait de dire qu'on voulait que tel fonction soit appelé lorsque la carte recoit quelque chose.
    Mais finalement, je suis de moins en moins sur de comment tout cela peut fonctionner.

    Est-ce que la commande request_irq est faite pour cela ?

    Bref... en panne d'idée je me suis dit : "ben tiens, il doit surement y avoir quelqu'un qui l'a déjà fait..." mais mes recherches sur developpez.net sont rester infructueuse...

    Alors quelqu'un a-t-il déjà résolu ce problème ?
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Thor Tillas
    Voilà, je dois transformer un logiciel utilisant les thread en un environnement sans thread.
    Qu'est-ce qui t'empêche d'avoir des threads ? C'est quand même un sacré retour en arrière pour écrire une application un peu conséquente...
    Je suis encore dans une phase de conception et je recherche des idées ou des manière de récupérer la main lorsque quelque chose arrive sur ma carte réseau.
    Si tu es dans un environnement POSIX.1, select() est ton sauveur...

    Evidemment, si tu es "à l'ancienne" avec une application embarquée minimaliste, ton générateur d'évènements est l'interrution de reception de la carte réseau...

    Euh, Linux embarqué, tu connais ?
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre régulier Avatar de Thor Tillas
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 90
    Points
    90
    Par défaut
    bon... euh pour ce qui concerne de l'environnement... euh...

    Alors voilà. Le projet sur lequelle je travaille a pour but de faire passer une extension de c++ nommée POP-C++ d'une version thread à une version threadless.

    POP-C++ est un langage de programmation d'application distribué sur un réseau de type grid computing. Il permet à l'utilisateur de coder des applications très proche du C++ (seulement 6 nouveau mot clé) mais distribuer sur un réseau sans savoir ou se trouveront les objet...
    En gros popc s'occupe de placer les objet et de faire la communication entre eux.

    Le groupe qui nous a mandaté aimerais pouvoir déployer ce langage sur des nodes d'un super ordinateur genre le Cray XT3. Les nodes de ces superordinateur sont threadless car il ne veulent pas perdre de temps à switcher de contexte.

    Sur chaque node est installé un linux minimal.

    En fait je connais linux à un niveau basique (je mis suis mis pour le projet...) et j'ai un bagage de 6 mois en C et C++ (pour dire je fais pas de différence entre l'un et l'autre...). Donc c'est un peu la galère.

    Voilà sinon je ne sais pas si c'est un POSIX.1 (va me falloire un peu de temps pour découvrir ce qui se cache derrière ce terme d'ailleurs) et je ne connais pas grand chose au système embarqué...

    Mais pour ma défence, j'ai quand meme du compiler un noyau linux minimal puis coder un driver trivial pour le port parralèle en se basant sur l'exemple du port série (ou l'inverse je sais plus)...

    J'espère que c'est un peu plus clair...
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

  4. #4
    Membre régulier Avatar de Thor Tillas
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par Thor Tillas
    Voilà sinon je ne sais pas si c'est un POSIX.1 (va me falloire un peu de temps pour découvrir ce qui se cache derrière ce terme d'ailleurs)

    ok il m'a pas fallu longtemps... pour les autres incultes comme moi : http://fr.wikipedia.org/wiki/POSIX


    J'ai oublié de mentionner le site de mon projet (en fait on est deux à bosser dessus, mais comme c'est moi qui ai le compte sur developpez.net... je profite pour faire semblant d'être important ) bien sur c'est uniquement pour ceux que l'idée interesse... POP-C++ est libre de droit et les sources sont donc disponible sur le site du Grid groupe (notre commanditaire).

    site du projet : http://gpinfo3.hefr.ch/~drinij/unm/
    site du gridgroup : http://www.eif.ch/gridgroup
    site de popc : http://www.eif.ch/gridgroup/popc
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

Discussions similaires

  1. Passer une socket en mode non bloquant
    Par ProgVal dans le forum Langage
    Réponses: 2
    Dernier message: 24/12/2009, 21h15
  2. Intercepter le trafic socket en mode user ?
    Par Pizza Royale dans le forum Linux
    Réponses: 11
    Dernier message: 08/09/2008, 14h18
  3. [C#] socket en mode synchrone et asynchrone
    Par Cyrill26 dans le forum Développement
    Réponses: 0
    Dernier message: 23/07/2007, 16h32
  4. Ouvrir un socket en mode "promiscuous"
    Par Keul125 dans le forum Langage
    Réponses: 4
    Dernier message: 27/04/2007, 13h54
  5. Socket et mode de communication
    Par Mandotnet dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 15/01/2007, 17h44

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