l’ordonnanceur(1)infosetif.do.am/s4/se1/se1-cours3lordonnancement.pdf ·...

12
L’ordonnanceur (1) L’ordonnanceur de processus (“scheduler”) est responsable de la gestion des processus (activation, suspension, ...) Chaque changement d’état d’exécution du processus demande une intervention de l’ordonnanceur Création nouveau interrompu terminé prêt actif fin E/S ou ressources disponibles élu en attente E/S ou demande de ressources 1

Upload: others

Post on 14-Oct-2020

3 views

Category:

Documents


0 download

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