Transcript
Page 1: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

L’ordonnanceur (1)• L’ordonnanceur de processus (“scheduler”) estresponsable de la gestion des processus (activation,suspension, ...)

• Chaque changement d’état d’exécution du processusdemande une intervention de l’ordonnanceur

Création

nouveau interromputerminé

prêt actif

fin E/S ouressourcesdisponibles

élu

en attente

E/S ou demandede ressources

1

Page 2: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

L’ordonnanceur (2)• Un ordonnanceur simple peut conserver les processus

exécutables dans une file d’attente (“ready queue”)• Sur un monoprocesseur, le processus à la tête de cette

file est le processus courant (celui qui a le CPUprésentement)

• Les nouveaux processus sont ajoutés à la file (à la finde la file ready: FIFO)

• Lorsque le processus courant demande une E/S ouressources non disponibles, l’ordonnanceur sauveson contexte puis transfère le processus de lafile des processus prêts à la file d’attente, etréveille processus en tête de la file ready

2

Page 3: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Les objectifs de l’ordonnanceur1. Rendement : Nombre de travaux exécuter par

unité de temps.2. Temps de service: Temps qui s’écoule entre le

moment où un travail est soumis et où il est exécuté(temps d’accès mémoire + temps d’attente dans la filedes processus prêts + temps d’exécution dans l’unitécentrale + temps d’attente + temps d’exécution desentrée/sortie).

3. Temps d’attente : Temps passé dans la file desprocessus prêts.

4. Temps de réponse faible: le tempsqui s’écouleentre la soumission d’une requête et la premièreréponse obtenue (particulièrement recherché pour les processusinteractifs, p.e. editeur de texte).

3

Page 4: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Ordonnancement préemptif et nonpréemptif

Si l’ordonnancement est non préemptif, la transition del’état actif vers l’état prêt est interdite: un processusquitte le processeur s’il a terminé son exécution ou s’il sebloque;Si l’ordonnancement est préemptif, la transition de l’étatactif vers l’état prêt est autorisée: un processus quitte leprocesseur s’il a terminé son exécution, s’il se bloque ousi le processeur est réquisitionné.

ActifPrêt

Préemption

Interruption

4

Page 5: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Algorithmes d’Ordonnancement1. Premier arrivé premier servi (“FCFS”): les processus

sont exécutés dans l’ordre où ils deviennent exécutables(l’ordre de création)

2. Plus petite tâche en premier (“Shortest-Job-First”):parmi les processus exécutables, celui qui va terminer leplus vite est exécuté en premier (suppose qu’on peutestimer le temps d’exécution à l’avance)

3. Ordonnancement “round-robin” (cyclique):utilisation d’un timer (horloge) pour multiplexer le CPU;chaque processus obtient à tour de rôle un quantum ou“time slice” pour avancer son exécution

4. Ordonnancement par priorité: les processusexécutables les plus prioritaires exécutent en premier(FCFS pour un même niveau de priorité)

5

Page 6: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Analyse• Soit 3 processus qui ont été soumis pour exécution

dans l’ordre P1, P2, P3 et les temps d’exécutionrespectifs sont 24, 3, 3 (et qu’il n’y a pas d’E/S)

• Ordonnancement avec chaque approche

FCFS, Temps d’attente moyen = (0+24+27)/3=17 ;Temps de réponse moyen= (24+27+30)/3= 27

SJF, Temps d’attente moyen = (0+3+6)/3=3 ;Temps de réponse moyen= (3+6+30)/ 3= 13

RR (quantum=1), Temps d’attente moyen = (6+5.5+6)/3=5.833

Temps de réponse moyen= (30+8+9)/3=19

• Pour minimiser le temps d’attente, SJF est optimal mais RR s’enapproche et a l’avantage de ne pas supposer les temps d’exécutionconnus à l’avance

P1 P2 P3

P1P2 P3

6

Page 7: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Système de Priorité (1)

• Un système de priorité permet d’attribuer un degréd’urgence à chaque processus:• Il est critique qu’un processus de haute prioritécomplète son travail rapidement, même si c’estau dépend d’un processus de plus faible priorité

• Par exemple un processus qui doit répondrerapidement à un événement (panne de courant,arrivée d’un paquet du réseau) a une priorité élevée(autrement des données pourraient être perdues)

• La priorité d’un processus peut être fixée à sacréation ou varier pendant son exécution

7

Page 8: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Système de Priorité (2)• Les garanties de l’ordonnanceur vis-à-vis la priorité desprocessus varie d’un S.E. à un autre, mais en général:• ∀ processus en exécution P et ∀ processusexécutable P 0: prio(P ) ≥ prio(P 0)

• Sur monoprocesseur, le processus en exécution a laplus haute priorité des processus exécutables(les autres processus doivent attendre qu’il n’existeplus de processus exécutable de plus haute priorité)

8

Page 9: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

L’ordonnancement sous LinuxChaque processus est qualifié par une priorité et attaché à l’unedes politiques

Trois politiques d’ordonnancement SCHED_FIFO : Élit à tout instant le processus de plus forte priorité parmi les

processus attachés à cette classe SCHED_RR : Type tourniquet entre processus de même priorité SCHED_OTHER : Politique à extinction de prioritéLes processus attachés aux SCHED_FIFO et SCHED_RR sont plus prioritaires

que les processus attachés à la politique SCHED_OTHERDeux types de processus : Processus temps réel sont de priorité fixe: Poliques utilisées sont :

SCHED_FIFO et SCHED_RR Processus classiques sont de priorité dynamique : Polique utilisée est

SCHED_OTHER

9

Page 10: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Processus classiques

• La priorité d’un processus Linux varie au cours desa vie en fonction des ressources qu’il utilise et d’unniveau de “nice”: -20 (peu gentil envers les autresprocessus) à 20 (très gentil envers les autresprocessus)

• L’ordonnanceur tente d’augmenter la priorité desprocessus qui n’ont pas obtenu beaucoup de tempsCPU dans un avenir récent (quelques secondes)

• Ce genre de processus effectue surtout desentrées/sorties et il est important de privilégier leurexécution pour augmenter le degré d’utilisation despériphériques (parallélisme des composantes del’ordinateur) et réduire le temps de réponse desprogrammes interactifs

10

Page 11: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Priorités sous UNIX (2)• Les paramètres suivants sont utilisés (par 4.4BSD):

• “load”: la charge est le nombre moyen deprocessus exécutables durant la dernière minute(échantillonné à chaque seconde)

• “nice”: chaque processus a un niveau de gentillesse(-20 à 20) de partage du CPU avec les autresprocessus (0 par défaut, négatif réservé à root)

• “share(x)”: le nombre de top d’horloge (à 100 Hz)où le processus était en exécution pendant laseconde x dans le passé

11

Page 12: L’ordonnanceur(1)infosetif.do.am/S4/SE1/SE1-Cours3lordonnancement.pdf · Algorithmesd’Ordonnancement 1. Premierarrivépremierservi(“FCFS”): les processus sont exécutés dans

Priorités sous UNIX (3)• Soit f = 2×load

2×load+1Note: f est une valeur entre 0 (système peu chargé)

et 1 (système très chargé)• Soit cpu une variable propre au processus qui est miseà jour (+1) à chaque top d’horloge où le processusexécute et à chaque seconde avec

cpu ← f × cpu + nice

• La priorité du processus estprio =cpu+8×nice

4

• La priorité va à l’inverse de la valeur de prio(c’est-à-dire prio = 0 est la plus haute priorité)

12


Recommended