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

Windows Discussion :

Connaître l'état d'un processus


Sujet :

Windows

  1. #1
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut Connaître l'état d'un processus
    Salut,

    je bosse sur un petit code en C permettant de lister les processus en cours sur la machine et d'en récupérer certaines infos (pid, ppid, nom, commande, ...) via les structures PROCESSENTRY32 et MODULEENTRY32.

    Je n'ai pas trouvé de champs indiquant l'état du processus.
    Par exemple sous linux les différents état sont :
    • D : En sommeil ininterruptible
    • R : En cours d'exécution
    • S : En sommeil
    • T : Stoppé ou stracé
    • Z : Zombie
    Quels sont les différents états que peut prendre un processus sous windows ? et est-il possible de récupérer cet état ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    Je sais qu'il existe de tels champs dans les informations de performance d'un thread (thread state et thread wait reason), mais je ne sais pas comment on y accède.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Tu as à peu prés les mêmes etats sous linux et windows avec l'etat zombi en moins sous windows et encore pas sur.

    Pour les récupérer par contre là je ne sais pas il faut regarder dans msdn les fonctions qui ont attrait au processus et non aux threads (hein Medinoc)

    Parce que je peux avoir 1 processus a l'etat sommeil qui a 5 threads dont 1 est zombi, l'autre stoppé, l'autre éligible,...

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Ben justement, j'ai regardé dans la msdn mais je n'ai rien trouvé à propos de connaître l'état d'un processus. J'ai trouvé comment les lister, avoir le pid, le ppid, le nom, la commande, la priorité ... mais rien sur l'état .

    Peut-être ai-je mal cherché (développant principalement en Java, j'ai rarement (jamais) eu à utiliser la msdn, il est donc fort possible que j'ai raté un truc ) ?

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Par curiosité pourquoi as tu besoin de connaitre cet etat ? EN plus si tu developpes en Java la question est tres bien a sa place dans le forum Java.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Pour Java je parlais du langage que j'utilise d'habitude (en gros c'est mon excuse pour ma méconnaissance de la msdn ), mais je fais ce dev en C (cf mon premier post) [HS](mais heeeu, il est où mon gc )[/HS].

    Quand au pourquoi du comment, Java ne permet pas de récupérer d'infos sur les processus (lister les processus, avoir des infos sur ceux-ci, etc) car elles sont trop dépendantes du système (ce qui rentre en conflit avec la portabilité Java).
    Je travail donc sur une API Java qui appel du code natif en C pour récupérer ces infos.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    Citation Envoyé par hegros
    Pour les récupérer par contre là je ne sais pas il faut regarder dans msdn les fonctions qui ont attrait au processus et non aux threads (hein Medinoc)

    Parce que je peux avoir 1 processus a l'etat sommeil qui a 5 threads dont 1 est zombi, l'autre stoppé, l'autre éligible,...
    Sous Windows, j'en suis moins sûr que toi.
    N'oublie pas que le Kernel de Windows gère tout directement au niveau thread, pas au niveau process comme Linux...

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par Médinoc
    Sous Windows, j'en suis moins sûr que toi.
    N'oublie pas que le Kernel de Windows gère tout directement au niveau thread, pas au niveau process comme Linux...
    Si c'est pareil comme dis plus haut tu peux avoir un processus en sommeil qui posséde 1 thread eligible, un autre endormi et un autre à l'etat pret.

    Enfin pour en être sur il faudrait encore le lire clairement dans msdn

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Pour information...
    Les états possibles d'un thread sous Windows : http://www.microsoft.com/mspress/boo...5610215-14.JPG
    .

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2006, 12h39
  2. [Système]Comment connaître l'ID de mon processus Java ?
    Par _Mac_ dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 14/02/2006, 17h53
  3. Récupérer l'état d'un processus créé avec CreatProcess
    Par Didier L dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/09/2005, 01h39
  4. Connaître l'état d'une connexion réseau
    Par SteelBox dans le forum Windows
    Réponses: 8
    Dernier message: 29/07/2004, 13h30
  5. Connaître l'état d'un service
    Par NoisetteProd dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 06/08/2003, 18h04

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