Nouveau planificateur de tâches pour le kernel
Selon cet article de SlashDot, le kernel 2.6.23 aura un nouveau planificateur de tâches pour le temps processeur surnommé CFS, pour Completely Fair Scheduler.
Le planificateur fonctionne sensiblement différemment de l'ancien, qui séparait le temps processeurs en plusieurs parties et y insérait des programmes dans une méthode round-robin. Celui-ci peut fonctionner selon 2 modes : bureau ou serveur.
Dans les 2 cas, le planificateur crée une bande de temps, un peu comme un montage de film, des programmes a exécuter. Selon le créateur, nous devrions voir une amélioration en utilisation bureau!
Dernière modification le 13/07/2007 @ 19:14 par Nick
Écrit le: 11/07/2007 @ 08:55
Pour compléter la description du fonctionnement, voici ce que j'en comprends : la liste des programmes est ordonnancée en fonction de l'application ayant le plus besoin d'utiliser du temps processeur. Ce besoin est calculé en fonction d'une valeur (wait_runtime), qui calcule depuis combien de temps une application n'a pas eu la possibilité de tourner. Avant, c'était en fonction de la demande du programme.
Voici un exemple :
Disons qu'un programme prend beaucoup de temps CPU (on compile du code, c'est lourd comparé au mouvement de la souris). Avec l'ancien système, on aurait donc attribué beaucoup de temps à la compilation avant de donner la possibilité à la souris de bouger, ce qui aurait rendu le système plus "choppy"; Avec CFS, cette application devra donner la place aux autres applications pour que celles-ci puissent faire leur travail. Cependant, si les autres applications n'ont pas besoin de ce temps, elles passent à la prochaine.
On se rapproche donc de quelque chose qui ressemble plus au principe de multitask, c'est-à-dire de faire tourner plusieurs tâches en même temps plutôt qu'une derrière l'autre.
Évidemment, le fait qu'une application soit "nice" ou non influence aussi le temps allouée à l'application (ce que l'option SD, un autre scheduler très similaire par son principe et qui a inspiré CFS, ne tenait pas en compte ou beaucoup moins).
Concernant l'option bureau ou serveur, le principe du scheduler reste le même. Cependant, dans le cas de la configuration bureau, le temps de latence est plus petit, ce qui donne un meilleur temps de réponse (c'est ce qu'on recherche avec un OS desktop puisqu'on ne veut pas attendre sur les réponses du système, les clicks de souris, etc.), alors que pour la configuration serveur, le temps est plus long avant de changer d'application, permettant ainsi de "crucher" plus de data.