• [^] # Re: Comment limiter l'utilisation du processeur ?

    Posté par . En réponse au journal Comment limiter l'utilisation du processeur ?. Évalué à 10.

    ce que tu dis est absolument faux.

    nice joue sur la priorite d'une tache. On va faire une explication assez simple et assez breve. La plupart des ordinateurs ne disposent que d'une unite de calcul centrale (le processeur) or il arrive frequement que plusieurs processus (un programme en cours d'execution) desirent etre simultanement dans le processeur, ce qui n'est bien sur pas possible. Le role de l'ordonnanceur (scheduler) est de choisir qu'elle tache sera effectivement mise dans le processeur.

    les systemes multitache doivent s'assurer de l'equite d'occupation entre tout les processus et selon le desir de l'administrateur. Ainsi une priorite est affecte a chaque tache et le systeme met dans le processeur la tache qui a la plus haute priorite. Cette prorite est generalement calculee dynamiquement sur des statistique a plus ou moins grande echelle (souvent de l'ordre de 5 secondes) ainsi une tache reclamant beaucoup de CPU se vera penalisee pour favoriser les taches interactives.

    C'est a ce niveau la qu'intervient nice, quand tu fais un "nice -n xx" tu dis : la priorite de ce processus sera celle qu'il devrait avoir _PLUS_ xx. Ceci permet de favoriser ou de defavoriser l'election du processus. Mais cela n'influence en rien le taux d'occupation du processeur. Le but de tout ordonnanceur etant tout de meme d'arrive a accomplir le maximum de tache en un minimum de temps. Tant que la tache nicee pourra s'executer elle le fera (IDLE ne deviendra pas la tache courante) par contre elle se fera preempter si jamais un autre processus desire faire quelque chose.

    Pour te rendre compte de cela fait un top et amuse toi avec nice et des programmes tout simple consitues de for(;;;) ou while(1) et de sleep().

    Si ca en interesse quelqu'un je peux mettre en ligne un rapport que j'ai fait sur l'ordonnancement, il y a notament une tentative d'etude du code source de l'ordo de linux 2.6

    Note : y'a des incorrections techniques mais on va pas pinailler