Académique Documents
Professionnel Documents
Culture Documents
●
L’ordonnancement correspond à l’action de choisir
l’ordre d’exécution des tâches
●
L’ordonnanceur en est responsable
●
Un système d’exploitation standard possède un
ordonnanceur (Linux posséde le CFS “completely fair
scheduler).
Ordonnancement non temps réel
●
L’ordonnancement correspond à l’action de choisir
l’ordre d’exécution des tâches
●
L’ordonnanceur en est responsable
●
Un système d’exploitation standard possède un
ordonnanceur (Linux posséde le CFS “completely fair
scheduler).
Ordonnancement non temps réel
●
Faisabilité
– Un ensemble de tâches est dit faisable s’il est
possible d’en proposer un ordonnancement
respectant l’ensemble des contraintes de temps
imposées.
Taxonomie
●
Monoprocesseur/multiprocesseur
– L’architecture physique du système a une influence sur
la manière d’agencer les tâches.
– Certains algorithmes ne peuvent être appliqués qu’au
des systèmes monoprocesseur (ordonnancement
monoprocesseur)
– D’autres se destinent à des systèmes multi-processeur
(ordonnancement multiprocesseur).
– Dans le cadre de ce cours, nous ne traiterons que les
algorithmes monoprocesseur.
Taxonomie
●
Préemptif
– La préemption consiste en le fait qu’une tâche peut être
interrompue à son insu pour céder sa place à une autre
tâche.
– Les algorithmes préemptifs traitent donc des systèmes
où les tâches peuvent être préemptées
Taxonomie
●
non-préemptif
– les algorithmes non-préemptifs traitent de ceux
dont une tâche ayant commencé son traitement
doit obligatoirement le terminer avant qu’une autre
ne s’exécute
Taxonomie
●
non-préemptif
– les algorithmes non-préemptifs traitent de ceux
dont une tâche ayant commencé son traitement
doit obligatoirement le terminer avant qu’une autre
ne s’exécute
Taxonomie
●
En-ligne/hors-ligne (online/offline)
– Hors-ligne: réalisé avant le lancement du système
– En-ligne: réalisé pendant le fonctionnement
●
Statique/Dynamique
– Statique: les propriétés des tâches ne changent pas
– Dynamique: les propriétés des tâches peuvent changer (priorité)
●
Optimal/Non optimal
– Optimal: fourni un ordonnancement si un ordonnancement existe
– Non optimal (best effort): essaie de se rapprocher de l’optimal
Calcul de performance
Ordonnancements classiques
Algorithmes non préemptifs
●
Premier arrivé premier servi (FIFO)
– Cet algorithme fonctionne de la manière la plus simple qui
soit. Les tâches sont stockées dans une structure de type
FIFO, la première tâche est exécutée, et lorsqu’elle
termine, la suivante est lancée. Les tâches nouvellement
activées sont stockées à la fin de la file d’attente.
Algorithmes non préemptifs
●
Premier arrivé premier servi (FIFO)
Algorithmes non préemptifs
●
Shortest job first (SJF)
– les tâches courtes sont favorisées, et le temps d’attente
moyen est minimisé.
– Un des problèmes de cette approche est le risque de
famine des tâches longues. Si de nouvelles tâches
courtes son régulièrement réveillées
Algorithmes non préemptifs
●
Shortest job first (SJF)
Algorithmes préemptifs
●
Round robin/tourniquet
– L’algorithme du tourniquet (round robin en anglais)
vise à traiter les tâches avec le plus d’équité possible,
en allouant un quantum de temps identique à toutes
les tâches, et à les traiter dans un ordre FIFO.
Algorithmes préemptifs
●
Round robin/tourniquet
Algorithmes préemptifs
●
Priorité fixe
– L’algorithme à priorité fixe fonctionne comme celui du tourniquet
à l’intérieur d’une priorité, et les priorités sont traitées dans
l’ordre.
– Les tâches d’une priorité particulière y sont traitées selon un
tourniquet, pour autant qu’aucune tâche de plus haute priorité
ne soit prête à être exécutée.
Algorithmes préemptifs
●
Priorité fixe
Algorithmes préemptifs
●
Earliest deadline first
– L’algorithme Earliest Deadline First (EDF) donne la
priorité à la tâche ayant l’échéance la plus proche.
– A chaque fois qu’une tâche est réveillée, l’ordonnanceur
réévalue les tâches prêtes et sélectionne celle ayant
l’échéance la plus courte.
Algorithmes préemptifs
●
Earliest deadline first
Ordonnançement temps réel
pour tâches périodiques
Ordonnancement temps réel
●
Partant d’un ensemble de tâches Γ
– Les tâches ayant:
●
Un temps d’arrivée
●
Un temps d’exécution
●
Une échéance
●
L’ordonnancement vise à trouver un moyen d’allouer le processeur aux
différentes tâches de manière à respecter les contraintes de temps
Tâches périodiques
Ordonnancement temps réel
●
Pour les tâches à échéances sur requête, nous
pouvons calculer les temps d’arrivée des tâches, ainsi
que leurs échéances respectives de cette manière:
Hypothèse
●
Les instances d’une tâche périodique sont activées avec une période
constante
●
Toutes les instances d’une tâche ont le même pire temps d’exécution C i
●
Toutes les instances d’une tâche ont la même échéance relative D i
●
Toutes les tâches sont indépendantes. Il n’y a pas de dépendances
entre tâches
●
Une tâche ne peut se suspendre elle-même
●
La surcharge liée aux opérations du noyau est négligée
Période d’étude
●
Les ordonnancements sont dédiés aux ensembles de tâches
périodiques.
●
Alors le fonctionnement complet du système est donc
cyclique.
●
L’algorithme d’ordonnancement doit trouver une séquence de
tâches, valable sur toute la durée de fonctionnement du
système.
Période d’étude
●
Cette période de longueur L est appelée période d’étude, ou
période de base.
Où le PPCM dénote le plus petit multiple commun des périodes des tâches.
●
Si les tâches sont ordonnançables sur la période d’étude,
nous pouvons garantir qu’elles le seront pour un temps infini.
Période d’étude
●
Pour des tâches asynchrones, ne débutant donc pas au
même instant, la période d’étude est :
●
en présence de tâches apériodiques, la période d’étude
devient :
●
Pour l’ensemble des tâches Γ, le facteur d’utilisation est dès
lors:
Taux d’utilisation du processeur
●
Une condition nécessaire (mais pas suffisante) pour qu’un
ensemble de tâches soit ordonnançable:
Taux d’utilisation du processeur
●
Mais il dépend des caractéristiques des tâches et de l’algorithme appliqué
●
Il existe un Uub(Γ, A) (Upper Bound) au-delà duquel les tâches ne sont pas
ordonnançables
●
Lorsque U = Uub(Γ, A), l’ensemble Γ utilise entièrement le processeur
●
L’augmentation du temps d’exécution d’une des tâches rend
l’ensemble non ordonnançable
●
Pour un algorithme A donné, il existe une valeur minimale de Uub (Least
Upper Bound)
Taux d’utilisation du processeur
●
De ce fait, un ensemble de tâches Γ est ordonnançable si son
facteur d’utilisation du processeur est inférieur à cette limite
minimale
Taux d’utilisation du processeur
Rate Monotonic
●
L’algorithme Rate Monotonic est un algorithme statique,
applicable à un ensemble de tâches à échéance sur requête,
où les priorités des tâches sont fixes et décidée avant le
lancement du système.
●
Plus une tâche a une petite période d’activation, plus sa
priorité sera haute.
Analyse d’ordonnançabilité (Least
Upper Bound)
●
Une condition suffisante d’ordonnançabilité est :
●
Nous pouvons calculer Ulub pour de grandes valeurs de n :
Analyse d’ordonnançabilité
(Hyperbolic Bound)
●
En 2001, une nouvelle condition d’ordonnançabilité, appelée
Hyperbolic Bound, a été proposée. Il s’agit également d’une condition
suffisante mais pas nécessaire :
●
Cette condition est moins restrictive que la précédente, et est donc
intéressante.
Exercice 1
Exercice 1
Exercice 2
Exercice 2
●
Least Upper Bound
– L'utilisation sera :
●
la charge du processeur y est surestimée.
Analyse d’ordonnançabilité
●
Il est possible de déduire un autre test, en se basant sur les
observations suivantes :
1) Le pire cas au niveau des demandes d’utilisation du
processeur se trouve au moment où toutes les tâches sont
activées simultanément
2) Le pire temps de réponse d’une tâche correspond à la
somme de son temps d’exécution et des interférences des
tâches de priorité supérieure.
Analyse d’ordonnançabilité
●
Si nous supposons les tâches ordonnées selon l’ordre ascendant de leurs
échéances
●
Ordonnançables si:
●
Où Ii est l’interférence mesurée sur la tâche τi :
●
Test suffisant, mais pas nécessaire
Exemple
Exemple
Earliest Deadline First
●
L’algorithme Earliest Deadline First (EDF)
donne la priorité à la tâche ayant l’échéance la
plus proche.
Analyse d’ordonnançabilité
●
L’algorithme EDF est optimal dans le cas
préemptif. La condition nécessaire et
suffisante d’ordonnançabilité est :
Exemple
Exemple
Least Laxity First
●
L’algorithme Least Laxity First (LLF) est un
algorithme à priorité dynamique. Il traite des
tâches périodiques pour lesquelles la
préemption est autorisée.
Least Laxity First
●
L = D − C: sa laxité nominal. Indique le retard
maximum que peut prendre la tâche sans dépasser
son échéance
●
D(t) = d − t: son délai critique résiduel au temps t
●
C(t): sa durée d’exécution résiduelle au temps t
●
L(t) = D(t) − C(t): sa laxité résiduelle au temps t
Analyse d’ordonnançabilité
●
La condition d’ordonnançabilité est identique à
celle d’EDF.
Exemple