250 - Ordonnancement des processus Flashcards
Qu’est-ce qu’un ordo ?
C’est une partie du SE qui sert à déterminer quels processus sont actifs et lesquels ne le sont pas
Comment fonctionne un ordo ?
Il ne peut qu’élire un processus prêt : l’élu est celui qui a la plus haute priorité compte tenu de la politique locale
Que fait un ordo si pas d’élu ?
Attend jusqu’à la prochaine interruption (processeur à l’état latent);
Quand intervient un ordo ?
Appel système et interruption matérielle (dont l’horloge prog), exemples :
* Création et terminaison d’un processus;
* Passage A→B (demande E/S)
* Passage de B→P (ress dispo)
* Passage de A→P (fin quantum)
* Changement de priorité (ou d’ORDO)
Définition d’un ordo non-préemptif
Processus actif jusqu’à la demande du processus :
* appel système bloquant (demande E/S)
* demande explicite de laisser la main (sched_yield(2))
note : multitâche coopératif, rare dans système moderne
Définition d’un ordo préemptifs
Processus peut être suspendu à n’importe quel moment :
* Fin du tour (expiration d’un quantum de temps alloué au processus : interruption matérielle due a l’horloge programmable)
* Perte de priorité (Nouveau processus prioritaire créé, processus prioritaire qui passe de bloqué à prêt, changement de priorité dans les processus)
Quels sont les avantages du préemptif sur le non-préemptif ?
dunno :(
sched(7)
MAN
chrt(1)
MAN
sched_setattr(2)
MAN
Objectifs d’ordonnancement
Compromis entre :
* Respect de la politique locale
* Équité
* Efficience
On met deux processus sur un CPU et le 3e sur l’autre
Inéquitable
On alterne et déplace les processus entre CPU
Inefficient
Critère d’évaluation (ils ne sont pas indépendants)
- Maximiser le nombre de tâches terminées par unité de temps
- Minimiser le temps entre acceptation et terminaison (temps
total) - Maximiser le temps d’utilisation du CPU
- Minimiser le temps d’attente (latence)
- Maximiser le temps de réponse (interactivité)
Objectifs d’ordonnancement spécifiques pour les systèmes interactifs
- Minimiser le temps de réponse
- Proportionnaliser le temps de réponse à la complexité perçue de
la tâche
→ Donner l’impression à l’utilisateur que le système est réactif