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

Visual C++ Discussion :

Interruption logicielle dans Windows ?


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    tut
    tut est déconnecté
    Membre éclairé
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par défaut Interruption logicielle dans Windows ?
    Bonjour,
    Je suis en train de développer un logiciel industriel temps réel avec Windows XP (oui, je sais, ce n'est pas la meilleure solution, mais on ne choisit pas toujours...).
    Bref, je ne tiens pas le temps réel car un de mes threads se fait préempter là où je préférerai qu'il ne le soit pas.
    Ma question est : existe-t-il un moyen de demander à Windows de ne pas préempter un bloc de code ?
    J'ai essayé de mettre ce thread plus prioritaire que tous les autres, mais cela ne fonctionne pas, il se fait quand même préempter.
    Je cherche donc un truc similaire aux interruptions logicielles, le genre de mécanismes que l'on peut trouver dans les OS temps réel...

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    La gamme nt est considérée comme du temps réel mou c'est à dire avec un temps de réponse de l'ordre de 10 ms ,et sans assurance que le délai borné soit respecté.
    Windows ce embedded 6.0 se situe dans la gamme du temps réel dur
    c'est à dire un temps réponse inférieur à 10 ms et avec l'assurance que le temps de repères bornés soit respecté.
    je ne pense pas que tu puisses empêcher le système de préempté le thread sous NT.
    Le mieux c'est d'utilisé des lib spécialisées comme : rtx de citrix

  3. #3
    tut
    tut est déconnecté
    Membre éclairé
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par défaut
    Merci Farscape,
    toujours aussi rapide précis et efficace ! you're the


    Bon je crois que mon salut réside dans RTX... Je vais regarder cela de plus près.

  4. #4
    tut
    tut est déconnecté
    Membre éclairé
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par défaut
    Après des mesures plus approfondies, il semblerait que mes problèmes proviennent d'une mauvaise gestion du port série. En effet, développant avec Qt, j'ai utilisé une classe de gestion de port série en open source : QExtSerialPort, qui est portable par recompilation sous Windows & Linux. La portabilité étant un critère de cette appli. Cette classe fonctionne, pas de problème. Par contre, elle n'utilise pas le mode FILE_FLAG_OVERLAPPED ! ce qui fait que les envois de trames sont synchrones...
    Farscape, j'ai récupéré dans la FAQ Visual ta classe de gestion de port série (et ce n'est pas la première fois, il va falloir que je te verse des royalties ) et j'aimerai savoir si tu en as fait une version plus récente ?
    Bon, je vais intégrer ce driver et voir si ça améliore mes problèmes temps réel.
    J'ai lu l'article MSDN sur RXT, c'est vraiment bien ce truc.

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par tut Voir le message
    Après des mesures plus approfondies, il semblerait que mes problèmes proviennent d'une mauvaise gestion du port série. En effet, développant avec Qt, j'ai utilisé une classe de gestion de port série en open source : QExtSerialPort, qui est portable par recompilation sous Windows & Linux. La portabilité étant un critère de cette appli. Cette classe fonctionne, pas de problème. Par contre, elle n'utilise pas le mode FILE_FLAG_OVERLAPPED ! ce qui fait que les envois de trames sont synchrones...
    Farscape, j'ai récupéré dans la FAQ Visual ta classe de gestion de port série (et ce n'est pas la première fois, il va falloir que je te verse des royalties ) et j'aimerai savoir si tu en as fait une version plus récente ?
    Bon, je vais intégrer ce driver et voir si ça améliore mes problèmes temps réel.
    J'ai lu l'article MSDN sur RXT, c'est vraiment bien ce truc.
    il va falloir que j'y songe ,
    non je n'ai rien de neuf sur le sujet, sauf que je voudrais bien l'adapter pour la faire fonctionner sous windows CE qui ne supporte pas ce fameux flag FILE_FLAG_OVERLAPPED ...
    et malgré mes différentes lectures comme programming windows embedded ce 6.0 (très très décevant) j'ai bien compris qu'il faut tout ce taper à la main , la gestion de la file d'attente etc...
    j'irais jeter un oeil à QExtSerialPort pour voir comment ils ont implémentés ça ..

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    bon j'ai jeté un oeil a cette classe ,ils se sont pas trop foulé
    comment tu gères l'évènement il y a quelque chose à réceptionner sans tout bloquer ?

Discussions similaires

  1. Empécher l'installation de logiciel dans windows
    Par maxagaz9 dans le forum Windows XP
    Réponses: 7
    Dernier message: 01/03/2012, 10h17
  2. C#, utiliser mon logiciel dans windows
    Par davaub dans le forum C#
    Réponses: 4
    Dernier message: 20/04/2011, 15h20
  3. Comment installer un logiciel dans Windows VM ?
    Par Ithaca dans le forum VirtualBox
    Réponses: 1
    Dernier message: 29/01/2011, 19h13
  4. [FLASH] Utiliser un logiciel dans flash
    Par Ricardeau dans le forum Flash
    Réponses: 2
    Dernier message: 24/06/2005, 14h13
  5. installer une variable environnement dans windows xp pack 2
    Par superjeanpi dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/03/2005, 10h13

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