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 :

Temps accordé à un processus


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Par défaut Temps accordé à un processus
    Bonjour,

    j'aimerai savoir s'il est possible de limiter le temps d'exécution que l'on accorde à un processus?

    Le but étant de ne pas laisser un utilisateur monopoliser le processeur.

    Peut-on limiter le temps pour une fonction de type popen? Par exemple limité la commande lancé par popen à 1minute.

    Merci à tous

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    j'aimerai savoir s'il est possible de limiter le temps d'exécution que l'on accorde à un processus?
    Le but étant de ne pas laisser un utilisateur monopoliser le processeur
    Sur (quasiment) toutes les APIs de multithreading, on peut déterminer une priorité à un thread... Tu ne lui diras pas en combien de temps il doit s'exécuter, mais si il a la priorité sur les autres threads (de calculs, de gui, ...)

    Peut-on limiter le temps pour une fonction de type popen? Par exemple limité la commande lancé par popen à 1minute.
    Je comprends pas bien ce que tu veux faire... Que doit faire la fonction popen au bout d'une minute ? S'arrêter ou laisser les autres threads travailler ?

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par dvp_zero Voir le message
    j'aimerai savoir s'il est possible de limiter le temps d'exécution que l'on accorde à un processus?
    Oui, mais en général, c'est le processus lui-même qui est courtois et qui propose de ne pas bouffer l'intégralité des ressources disponibles.
    D'un point de vue global, tu ne peux que réduire sa priorité au minimum. Cela laissera plus de temps CPU aux autres processus, mais ça ne réduira pas pour autant les ressources que consomme le processus discourtois.

    Citation Envoyé par dvp_zero Voir le message
    Peut-on limiter le temps pour une fonction de type popen? Par exemple limité la commande lancé par popen à 1minute.
    Tu peux toujours faire un timer et lui envoyer un KILL si ça t'amuse, mais terminer un sous-processus abruptement n'est pas forcément une bonne idée en soi...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    sur unixoide, il y a la commande "nice" qui donne une priorité au processus..

    Sinon, comme l'a dit Mac LAK, ce n'est pas recommandé sur une sous-partie..

    Le mieux à faire dans ces cas-là est de faire soit des boucles avec des sleep autour des parties vraiment "consuméristes", ou bien de les découper adéquatement, et ensuite de les entourer par de telles boucles ou sleep ..

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Par défaut
    Merci à tous pour vos réponses.

    Je vais envisager alors la solution avec priorité.

    L'idée que j'avais avec popen était de me dire que, si le programme lancé via popen plante et ne reviens pas après un laps de temps déterminé, on le kill.

    Maintenant je ne sais pas si, en regardant le code retour de popen, celà suffit à contourner les incidents d'exécutions.

    J'avais lu qu'il existait la fonction getrlimit qui permettait d'accéder aux ressources d'un processus mais comme ici je suis dans le cas d'un "sous processus" avec popen, je ne savais pas comment l'utiliser.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/08/2007, 19h52
  2. Tuer un processus après un certain temps
    Par elm dans le forum POSIX
    Réponses: 6
    Dernier message: 26/07/2007, 15h56
  3. [SOLARIS] Consommation processus temps reel
    Par droussa dans le forum Solaris
    Réponses: 2
    Dernier message: 26/06/2007, 18h46
  4. fonction pour calculer le temps de processus
    Par torNAdE dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 23/10/2006, 15h54
  5. Le temps d'execution d'1 processus en avant &en arrière
    Par elmessoussi dans le forum Administration système
    Réponses: 1
    Dernier message: 08/12/2005, 11h32

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