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

C Discussion :

Charge de la machine


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut Charge de la machine
    Salut !

    Je suis confronte a un probleme que bien des gens ont deja du rencontrer... J'aimerai faire une fonction qui determine la charge de la machine (utilisation des processeurs). Sous linux, ok, ya pas plus simple puisqu'une simple lecture dans /proc/loadavg nous donne cette info...

    Mais le probleme, c'est que j'aimerai faire une fonction portable (au moins Linux et SunOS), et /proc/loadagv n'existe pas partout.

    Alors deux possibillites : soit je trouve un code portable (et c'est la que je vous demande de m'aider), soit j'ecris deux codes differents.

    Pour la seconde solution, je vous demande alors comment recuperer au niveau du pre-processing le type de machine sur la quelle on est (genre un #ifdef LINUX)...

    Merci de votre aide !
    "Dis oui à celui qui te dit non, et il te dira peut-être.", Gogoye - Les Proverbes à la Con

  2. #2
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut Re: Charge de la machine
    Citation Envoyé par Gogoye
    Mais le probleme, c'est que j'aimerai faire une fonction portable (au moins Linux et SunOS), et /proc/loadagv n'existe pas partout.
    Pas possible, il faut réécrire ta fonction pour chaque SE. Chaque SE gère le CPU différement ! Sous Windows, tu peux aller voir dans la base de registre ... Si si, on faisait comme ça avec Windows 98 :-) Reposer la question dans le forum Dev. Windows.

    Pour la seconde solution, je vous demande alors comment recuperer au niveau du pre-processing le type de machine sur la quelle on est (genre un #ifdef LINUX)...
    Tu peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    // Type d'UNIX ?
    enum
    {
      UNIX_LINUX=0,
      UNIX_CYGWIN
    };
     
    // Type de Windows ?
    enum
    {
      WINDOWS_WINDOWS=0,
      WINDOWS_CYGWIN,
      WINDOWS_MINGW
    };
     
    // Linux
    #if defined(linux) || defined(__linux) || defined(__linux__)
    #  define OS_UNIX UNIX_LINUX
     
    // Cygwin = Linux sous Windows : "__CYGWIN__"
    #elif defined(__CYGWIN__)
    #  define OS_UNIX UNIX_CYGWIN
     
    // MinGW = Environement GNU minimal sous Windows
    #elif defined(__MINGW32__)
    #  define OS_WINDOWS WINDOWS_MINGW
     
    // Windows
    #elif defined(_Windows) || defined(_WIN32) || defined(__WIN32__)
    #  define OS_WINDOWS WINDOWS_WINDOWS
    #endif
    Les autres SE, je sais pas.

    @+ Haypo

  3. #3
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Salut.

    Deja merci de ta reponse Haypo.

    Pour Windows, je n'ai pas vraiment besoin de me prendre la tete, cet OS est "hors contexte"... on cluster tourne essentiellement sous Linux/Unix avec des machines Sun et des simples PC.

    Donc apparemment, j'ai pas le choix, je suis obliger d'ecrire du code different.

    Ainsi j'aimerai simplement savoir comment differentier une machine sous Linux d'une machine sous Unix: SunOS/SolarisX (voir de differentier ces differents types d'Unix, car chacun possede aussi ses specificites).

    Merci de vos conseils.
    "Dis oui à celui qui te dit non, et il te dira peut-être.", Gogoye - Les Proverbes à la Con

  4. #4
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Pour les #define propres aux OS, voir le projet http://predef.sourceforge.net

    Sinon, pour la charge, tu peux peut-etre te servir de top (voire des sources si c'est dispo).

  5. #5
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Merci Deadlock pour ton info, c'est exactement le genre de lien ce qu'il me fallait...

    @bientot pour un autre probleme ;)
    "Dis oui à celui qui te dit non, et il te dira peut-être.", Gogoye - Les Proverbes à la Con

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

Discussions similaires

  1. Parallélisme : partage de charge entre machines?
    Par zerocoolyoussef dans le forum Alimentation
    Réponses: 1
    Dernier message: 11/05/2009, 13h16
  2. Réponses: 3
    Dernier message: 18/03/2009, 15h15
  3. [streams] Charge supplémentaire pour la machine
    Par Invité dans le forum Administration
    Réponses: 0
    Dernier message: 31/10/2007, 15h33
  4. l'analyse et la charge d'une machine en linux
    Par timtima dans le forum Administration système
    Réponses: 10
    Dernier message: 11/05/2007, 10h15
  5. [OpenSTA] Test de montée en charge avec OpenSTA et plusieurs machines
    Par Rrominet dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 07/03/2007, 12h08

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