next up previous contents
suivant: L'algorithme utilisé monter: L'ordonnanceur précédent: Définition   Table des matières

Fonctionnement dans KoinKoin

L'interface de l'ordonnanceur est simple mais permet néanmoins la gestion des priorités sur les tâches comme sur les threads.

A noter que le gestionnaire de tâches, le gestionnaire de threads et l'ordonnanceur évoluent ensemble et modifient tous la structure principale de l'ordonnanceur pour maintenir l'ordonnancement à jour en ce qui concerne les priorités par exemple.

Une chose importante: l'ordonnanceur s'occupe d'ordonnancer des threads et non des tâches. En effet dans KoinKoin, une tâche est considérée comme un conteneur alors qu'un thread est une entité active.

L'ordonnanceur, pour pouvoir correctement décider du temps à attribuer à chaque tâche suivant sa priorité, doit garder un certain nombre de valeurs constamment à jour, notamment : le nombre de tâches actuellement sur le système et le quantum de temps à attribuer à une tâche.

Avec ces deux paramètres l'ordonanceur sera capable de calculer le temps processeur à attribuer à chaque tâche en fonction de sa priorité.

Une amélioration importante devra cependant être apportée au scheduler de KoinKoin : calculer le temps processeur de chaque thread en fonction du nombre total de threads dans la tâche et du temps processeur de celle-ci. Et ce afin déviter qu'une tâche créant sans cesse de nouveaux threads ne monopolise le processeur, bloquant de fait l'exécution des autres tâches.


next up previous contents
suivant: L'algorithme utilisé monter: L'ordonnanceur précédent: Définition   Table des matières
nicolas 2006-07-30