Systèmes d’exploitation Ordonancement des processus Didier Verna [email protected] 5 décembre 2000 Table des matières Table des matières Généralités ........................................................................................... 2 Ordonnancement et Réquisition ............................................................... 3 Critères d’ordonnancement................................................................ 4 Algorithmes d’ordonnancement ........................................................ 5 ........................................................................ 6 Ordonnancement avec priorités ............................................................... 7 Tourniquet (RR) .................................................................................... 8 Files d’attente à plusieurs niveaux ............................................................ 9 Plus court d’abord (SJF) Ordonnancement temps réel.............................................................. 10 Systèmes d’exploitation Ordonancement des processus – 1 Généralités Généralités Idée de base : effectuer une commutation dès que le processus en exécution doit attendre. Fréquence Programmes tributaires des entrées/sorties Programmes tributaires de l’unité centrale Durée des cycles Systèmes d’exploitation Ordonancement des processus – 2 Généralités Ordonnancement et Réquisition Ordonnancement et Réquisition Motifs de commutation : ➥ Aucun choix : blocage ou terminaison d’un processus. ➥ Choix : Arrivée d’un nouveau processus, passage des états actif ou bloqué à l’état prêt. =⇒ Ordonnancement sans réquisition : ne gère que le premier type de commutation (Windows). =⇒ Ordonnancement avec réquisition : gère tous les motifs de commutation. Nécessite des outils de synchronisation et du matériel spécifique (horloge). =⇒ La commutation a un coût : latence de dispatching. Systèmes d’exploitation Ordonancement des processus – 3 Critères d’ordonnancement Critères d’ordonnancement Maximiser : ➥ l’utilisation du processeur. ➥ la capacité de traitement : nombre de processus terminés par seconde. Minimiser : ➥ le temps de restitution : délai entre la soumission d’un processus et sa terminaison (mise en mémoire, attente en état prêt, attente E/S, exécution). ➥ le temps d’attente : temps passé en état prêt. ➥ le temps de réponse : délai entre la soumission et le moment où l’on commence à répondre (programmes interactifs). =⇒ Optimisation de moyenne, valeur maximale, variance. . . Systèmes d’exploitation Ordonancement des processus – 4 Algorithmes d’ordonnancement Algorithmes d’ordonnancement Permier Servi (FCFS) ➥ File d’attente FIFO pour les processus prêts. ➥ Algorithme sans réquisition. ➥ Grande variance des critères d’ordonnancement. ➥ Effet d’accumulation. =⇒ Mauvais algorithme pour les systèmes en temps partagé. Systèmes d’exploitation Ordonancement des processus – 5 Algorithmes d’ordonnancement Plus court d’abord (SJF) Plus court d’abord (SJF) ➥ Le prochain cycle le plus court est sélectionné. En cas d’égalité, on revient au FCFS. ➥ Algorithme avec ou sans réquisition (avec : «temps restant le plus court» ou SRTF). ➥ Temps moyen d’attente minimal. Difficulté de calculer la longueur des cycles. Approximation possible par moyenne exponentielle : τn+1 = ατn + (1 − α)τn−1 =⇒ peu adapté pour l’ordonnancement à court terme. Systèmes d’exploitation Ordonancement des processus – 6 Algorithmes d’ordonnancement Ordonnancement avec priorités Ordonnancement avec priorités ➥ Généralisation du SJF (priorité = inverse de la longueur du prochain cycle). ➥ Algorithme avec ou sans réquisition. ➥ Priorités internes (consommation de ressources. . .). ➥ Priorités externes (fixées par l’utilisateur). Problème majeur de l’ordonnancement avec priorités : «famine» (blocage infini) =⇒ technique du «vieillissement» (augmentation progressive de la priorité des processus en attente). Systèmes d’exploitation Ordonancement des processus – 7 Algorithmes d’ordonnancement Tourniquet (RR) Tourniquet (RR) ➥ FCFS avec réquisition sur une base de quantums (10–100ms). ➥ Nécessite une horloge. ➥ Le quantum doit être grand par rapport au temps de commutation. ➥ Le quantum ne doit pas être trop grand (dégénérescence en FCFS). =⇒ réquisition pour les cycles plus longs que le quantum, commutation passive pour les cycles plus courts. Systèmes d’exploitation Ordonancement des processus – 8 Algorithmes d’ordonnancement Files d’attente à plusieurs niveaux Files d’attente à plusieurs niveaux ➥ Découpage de la file d’attente en plusieurs files (processus interactifs, arrière-plan, taille. . .). ➥ Ordonnancement spécifique au sein de chaque file (RR, FCFS). ➥ Ordonnancement des files entre elles (avec priorités). Ordonnancement avec feedback : possibilité de déplacer les processus d’une file d’attente à l’autre. Systèmes d’exploitation Ordonancement des processus – 9 Ordonnancement temps réel Ordonnancement temps réel ➥ Systèmes temps réel rigides : réservation de ressource. L’ordonnanceur doit connaître exactement le temps de chaque instruction. ➥ Systèmes temps réel souples : priorités hautes et non dégradables, minimiser la latence de dispatching. Minimisation de la latence de dispatching : réquisition des appels systèmes, ou plus généralement de tout le noyau (Solaris 2). =⇒ Nécessité de synchroniser les accès au noyau (section critique). ➥ Inversion des priorités : un processus prioritaire attends des ressources noyau prises par un processus non prioritaire. ➥ Solution : héritage des priorités (accès noyau en priorité haute). Systèmes d’exploitation Ordonancement des processus – 10