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

Unix Discussion :

[Unix] Priorité d'un processus


Sujet :

Unix

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [Unix] Priorité d'un processus
    Bonjour tout le monde,

    Voilà je me pose une question sur un bout de code dans le livre que je suis en train de lire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    pid_t pid;
    int priorite;
    struct sched_param param;
    ...
    param.sched_priority = 10;
    setpriority(PRIO_PROCESS, pid, 10);
    if (sched_setscheduler(pid, SCHED_FIFO, &param) == -1)
        perror ("pb setscheduler");
    priorite = getpriority(PRIO_PROCESS, pid);
    printf("Je suis le fils, ma priorité d'ordonnancement est: %d\n", priorite)
    ...
    Je ne vois pas à quoi sert l'instruction setpriority (ligne 7) puisque juste derrière on appel sced_setscheduler qui contient en plus de la nouvelle politique d'ordonnancement le paramètre param?

    Imaginons que l'on change la ligne 6 par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    param.sched_priority = 15;
    Dans ce cas là, le printf va retourner la valeur 15 non?

    Merci d'avance...
    Flo

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,

    Le setpriority modifie la "politesse" du pid.
    Tandis que le param.sched_priority n'est utilisé que pour les processus temps réel.
    Or, a ce que j'en ai compris, un processus ne peut passer en temps réel que si sa priorité est supérieur à la normal et comme la priorité d'un processus est calculer par l'ordonnanceur à l'aide de la "politesse" de celui-ci, cela permet ensuite de pouvoir le passer en temps réel.
    Cordialement.

  3. #3
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Le setpriority modifie la "politesse" du pid.
    Je traduirais plutôt "niceness" par gentillesse.
    ɹǝsn *sıɹɐlos*

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Moi et l'anglais...
    J'ai juste utilisé le terme employé dans le man français de sched_setscheduler
    Cordialement.

  5. #5
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Ah oui. Il semble en effet que c'est le terme consacré.

    La première traduction des pages de manuel utilisait "priorité", ce qui est incorrect car signifiant le contraire, puis "courtoisie" que je trouve plus proche de l'anglais "nice", puis effectivement "politesse".

    Dans tous les cas, l'idée est une valeur représentant l'aptitude d'un processus à laisser les autres lui passer devant.
    ɹǝsn *sıɹɐlos*

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ah ok,

    Je pensais que la notion de "courtoisie" s'appliquait seulement pour les processus classique (non temps réel).
    Et que, dans mon exemple, la priorité statique définie par le param.sched_priority suffisait puisque l'ordonnanceur était en mode FIFO.

    En tout cas merci pour la réponse!

    Flo

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par florent738 Voir le message
    Je pensais que la notion de "courtoisie" s'appliquait seulement pour les processus classique (non temps réel).
    C'est bien le cas.
    Et que, dans mon exemple, la priorité statique définie par le param.sched_priority suffisait puisque l'ordonnanceur était en mode FIFO.
    Je pense comme toi. Dans le cas du code présenté, l'appel setpriority n'a pas d'influence sur la priorité effective du processus car sched_setscheduler est en mode FIFO et affecte une priorité absolue. La fonction getpriority renvoie la valeur de "niceness" qui n'est pas utilisée.
    ɹǝsn *sıɹɐlos*

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bon cela me rassure alors si tu pense comme moi

    En effet le [set/get]priority concerne la valeur du niceness.
    Si on veut récup la priorité statique il faut passer par sched_getparam() pour ensuite avoir accès à param->sched_priority.

    C'est plus clair maintenant...je marque "Résolu"

    Merci encore.
    Flo

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/08/2007, 19h52
  2. Modification de la priorité d'un processus
    Par Slivo dans le forum Windows
    Réponses: 4
    Dernier message: 24/04/2007, 20h25
  3. Réponses: 6
    Dernier message: 29/08/2006, 09h18
  4. [Process] Changer la priorité d'un processus
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/02/2005, 12h12
  5. [VB6] Forçage de la priorité d'un processus Windows
    Par okyle dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/06/2004, 11h27

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