• S'authentifier
  • Imprimer
  • Dernière modification le 2 May 2013

Préordonnancement

Dans le cas des multi-processeur, l'idée est de n'utiliser qu'un seul timer. Celui-ci sera réglé de deux manières possibles. Enfin, une fois le timer terminé, l'interruption appellera le préordonnanceur chargé d'appeler l'ordonnanceur nécessaire.

Chaque CPU gère son ordonnancement

Dans le cas où chaque thread est associé à un CPU, chaque CPU possèdera une liste des threads qu'il a à exécuter. Il est donc bien légitime d'avoir un ordonnanceur par CPU.

Réglage des timers

Les CPU s'enregistreront dans une liste d'attente qui classera les CPU suivant la durée au bout de laquelle ils veulent être réveillés. Le temps d'attente du premier CPU sera utilisé pour régler le timer.

Le pré-ordonnancement

Une fois le pré-ordonnancement appelé, il va réveiller les processeurs dont le timer a expiré en émettant une interruption.

Le timer de gestion du temps

À un temps régulier, l'heure système logicielle sera mise à jour. Il peut être astucieux d'utiliser la résolution des ordonnanceurs en général pour la fréquence de rafraîchissement de l'heure système. Il est à noter que chaque appel à gettimeofday ira consulter le temps écoulé depuis la dernière interruption ne plus, pour connaître avec plus de précision l'heure actuelle..