t - Free

Transcription

t - Free
'
 019, Techniques avancées de systèmes d’exploitation
$
1
INFO 019
Techniques avancées de systèmes d’exploitation
Joël G
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
2
Joël G
Faculté des Sciences
Département d’Informatique
Campus de la plaine
Bâtiment NO, 8e étage, bureau 2N8.111
Tél. : (02650) 55 88
E-mail : [email protected]
URL : http://www.ulb.ac.be/di/ssd/goossens
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
3
Organisation du cours
– Cours théorique : 2 heures/semaine → Pâques
– Un projet encadré par M. Martin D W, énoncé ∼ début mars
– Examen oral
Objectif du cours
Introduire les fondements théoriques, les algorithmes et les outils nécessaires
pour la conception de systèmes temps réel.
Sous-titre du cours
« O     ̀ 
́ »
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
4
Supports
– Copie des transparents (http://uv.ulb.ac.be/)
– Ouvrages de références :
– Jane W.S. L, « Real-Time Systems » , Prentice Hall, 2000
– Joseph Y-T. L, « Handbook of Scheduling : Algorithms, Models, and
Performance analysis » , Chapman Hall, 2004. Le Chapitre 28, « Scheduling
Real-Time Tasks : Algorithms and Complexity » (Sanjoy B &
J. G) en particulier.
– J. G, « Scheduling of Hard Real-Time Periodic Systems with various
kinds of deadline and offset constraints » , thèse, ULB, 1999.
– Bibliographie en construction
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
5
Table des matières provisoire
– Introduction
– Ordonnancement à priorité fixe
– Algorithme 
– Algorithme 
– Algorithme d’A
– Intervalles d’étude
– (Calcul du temps de réponse généralisé)
– Ordonnancement à priorité dynamique
– EDF
– LLF
– Ordonnancement de tâches dépendantes
– D’autres modèles/problèmes d’ordonnancement
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
A) Introduction
$
6
Systèmes temps réel
Systèmes dont le bon fonctionnement dépend non seulement des résultats
des calculs, mais également des instants auxquels ces résultats sont produits.
Typiquement chaque calcul doit être réalisé en respectant une échéance.
Les systèmes temps réel jouent un rôle important dans notre société, les
applications comprennent : les problèmes de trafic aérien, le contrôle de
centrales nucléaires, les communications multimédia, la robotique, les
systèmes embarqués, etc.
On distingue le temps réel strict ou dur (de l’anglais hard real-time) et le temps
réel souple ou mou (soft real-time) suivant l’importance accordée aux
contraintes temporelles. Le temps réel strict ne tolère aucun dépassement de
ces contraintes, ce qui est souvent le cas lorsque de tels dépassements
peuvent conduire à des situations critiques, voire catastrophiques : pilote
automatique d’avion, système de surveillance de centrale nucléaire, etc.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
7
Exemples de systèmes d’exploitation temps réel :
– QNX
– VxWorks
– RTOS
– WinCE
– RTLinux
– RTAI
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
8
Modélisation des applications
Les applications seront modélisées par un ensemble de travaux (jobs) ou par
un ensemble de tâches (tasks).
Définition 1 (Travail et instance) Un travail j sera caractérisé par le tuple
(a, e, d). Un instant d’arrivé a, un temps d’exécution e et une échéance d. Le travail j
doit recevoir e unités d’exécution dans l’intervalle [a, d). Une instance temps réel est
une collection (finie ou infinie) de travaux : J = {j1 , j2 , . . .}.
Classiquement dans les applications temps réel, les calculs/opérations sont de
nature récurrente, on parle alors de tâches périodiques et sporadiques :
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
9
Définition 2 (Tâches périodiques et sporadiques) Une tâche périodique τi est
caractérisée par le tuple (Oi , Ti , Di , Ci ), où
– la date d’arrivée (offset) Oi , est l’instant du premier travail pour la tâche τi
– le temps d’exécution Ci , qui spécifie une limite supérieure sur le temps d’exécution
de chaque travaux de la tâche τi
– l’échéance relative Di , dénote la séparation entre l’arrivée du travail et l’échéance
(un travail qui arrive à l’instant t a une echéance à l’instant t + Di )
– une période Ti dénotant la durée qui sépare deux arrivées successives de travaux
pour τi
τi = (Oi , Ti , Di , Ci ) génère un nombre infini de travaux (ou de requêtes), chacun
avec le même temps d’exécution, à chaque instant (Oi + k · Ti ) pour tout entier
k ≥ 0, le travail généré à l’instant (Oi + k · Ti ) a une échéance à l’instant
(Oi + k · Ti + Di ).
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
10
Les tâches sporadiques sont similaires aux tâches périodiques, avec la
différence que Ti corresponds à la durée minimum, plutôt que exacte, qui
sépare deux arrivées successives de travaux pour τi . Une tâche sporadique est
caractérisée par trois paramètres : (Ti , Di , Ci ).
Un système périodique τ est constitué d’une collection finie de tâches
périodiques (ou sporadiques) : τ = {τ1 , . . . , τn }.
Définition 3 (Utilisation) L’utilisation U(τi ) d’une tâche est le rapport entre son
def
temps d’exécution et sa période : U(τi ) = Ci /Ti . L’utilisation d’un système
périodique (ou sporadique) est la somme des utilisations des tâches :
def P
U(τ) = τi ∈τ U(τi )
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
11
Cas particuliers de systèmes périodiques
D’un point de vue pratique et théorique, il est intéressant de distinguer les cas
suivants :
échéance sur requête (implicit-deadline), où l’échéance de chaque tâche
coïncide avec la période (c.-à-d., Di = Ti ∀i, chaque instance doit se
terminer avant l’occurrence de l’instance suivante pour la même tâche)
échéance contrainte (constrained-deadline), où l’échéance n’est pas supérieure
à la période (c.-à-d., Di ≤ Ti ∀i)
échéance arbitraire (arbitrary-deadline), s’il n’y a pas de contraintes entre
l’échéance et la période.
à départ simultané (synchronous), si toutes les tâches démarrent au même
instant, ce qui correspond sans nuire à la généralité au cas Oi = 0 ∀i
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
12
Introduction à l’ordonnancement
L’ordonnancement est le terme informatique désignant le mécanisme
permettant de choisir quel processus doit être exécuté par quel processeur. En
effet que l’ordinateur soit mono- ou multiprocesseur il y a en général plus de
processus en attente que de ressources de calcul disponibles. Un des rôles du
système d’exploitation est justement de permettre d’exécuter plus d’un
processus par processeur.
Pour cela, à intervalle régulier, le système exécute un algorithme appelé
ordonnanceur (scheduler) qui choisit le processus à exécuter. Si le nouveau
processus est différent de l’ancien alors survient un changement de contexte
(ou une préemption), opération qui consiste à sauvegarder les données
relatives à l’ancienne tâche puis à restaurer celles la nouvelle tâche.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
13
Du choix de cet algorithme dépend le comportement du système. Il existe
deux grandes classes d’ordonnancement :
– L’ordonnancement en temps partagé (time sharing). Il est présent sur la
plupart des ordinateurs « classiques » . Par exemple, R-R () est
un algorithme d’ordonnancement courant dans les systèmes d’exploitation,
ce dernier attribue des tranches de temps à chaque processus en proportion
égale, sans accorder de priorités aux processus (cf. INFO-F-102,
« Architecture I » , R. D).
– L’ordonnancement en temps réel quant à lui fournit la certitude qu’une
certaine tâche sera terminée à un instant donné. Ceci est très recherché dans
les systèmes embarqués.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
14
La théorie de l’ordonnancement est une sous-discipline de la recherche
opérationnelle (Operational Research) qui s’intéresse au calcul de dates
d’exécution optimales de tâches afin d’optimiser un indice de performance.
Cependant, l’ordonnancement temps réel est une communauté scientifique
différente. La raison est que le problème est de nature différente, les
approches classiques sont bien adaptées aux situations où il y a lieu de
maximiser (ou minimiser) un indice de performance mais très mal adaptées
pour rencontrer des échéances strictes. De plus, dans les problèmes
d’ordonnancement classiques, les tâches doivent être exécutées une fois au
lieu d’une infinité dans le cas de tâches récurrentes temps réel.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
15
Priorité fixe — priorité dynamique
Dans la littérature, on distingue en général, deux types d’algorithmes
d’ordonnancement : les algorithmes à priorité fixe (aussi appelés à priorité
statique) et ceux à priorité dynamique.
Les algorithmes à priorité fixe, assignent des priorités aux tâches lors de la
conception du système ; de plus, pendant l’exécution du système, chaque
travail hérite de la priorité de sa tâche. Un exemple d’algorithme à priorité fixe
populaire, pour des tâches périodiques, est  (Rate Monotonic [7]).
Les algorithmes à priorité dynamique, assignent pendant l’exécution du
système, des priorités aux travaux.  (Earliest Deadline First [7]) est un tel
algorithme.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
16
Hypothèses
Sauf mention contraire, dans le cadre de ce cours nous allons travailler sous
les hypothèses suivantes :
– le système est monoprocesseur
– les échéances sont strictes
– le système est préemptif : lorsqu’un travail plus prioritaire apparaît dans le
système, l’exécution du travail en cours est préemptée par ce dernier
– les temps de préemption sont negligeables
– l’ordonnanceur est un algorithme conservatif (ou expédient) : c.-à-d., qu’il
ne laisse jamais le processeur oisif lorsqu’il y a des travaux en attente
– les tâches sont supposées indépendantes : elles ne sont pas sujettes à des
relations de précédence, il n’y a pas de sections critiques et, hormis le
processeur, elles n’utilisent pas de ressources communes.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
17
Exemple de tâche périodique
τ1 = (O1 = 0, T1 = 10, C1 = 3, D1 = 5)
?
0
3
?
10
2
3
12
U(τ1 ) = 3/10
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
18
Un ordonnancement à priorité fixe
2 tâches périodiques :
τ = {τ1 = (T1 = 5, D1 = 3, C1 = 2), τ2 = (T2 = 4, D2 = 4, C2 = 2)}
τ1 τ2 (τ1 a la plus grande priorité), U(τ) = 2/5 + 1/2 = 9/10
?2
?2
?2
?2
?2
τ1
0
5
1
2
?
6
10
1
?
1
?2
4
7
8
15
11
?2
16
20
2
?
21
?
τ2
2
&
Université Libre de Bruxelles
3
9
12
13
17
18
%
'
 019, Techniques avancées de systèmes d’exploitation
$
19
Observations
– les priorités sont fixes
– le système est préemptif
– l’ordonnancement est périodique
– le système est ordonnançable
– temps de réponse de τ2 : 4,4,2,2,3
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
20
Un ordonnancement à priorité dynamique
Priorité en fonction de l’échéance des travaux (), même ensemble de tâches
?2
2
?
?2
?2
?2
τ1
0
1
6
2
?
?2
7
10
?2
11
15
?2
16
20
2
?
21
?
τ2
2
&
Université Libre de Bruxelles
4
4
5
8
9
12
13
17
18
%
'
 019, Techniques avancées de systèmes d’exploitation
$
21
Observations
– les priorités sont dynamiques
– le système est préemptif
– l’ordonnancement est périodique
– le système est ordonnançable
– il y a plusieurs ordonnancements possibles (t = 5)
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
22
Une première condition nécessaire
Il est clair que quelle que soit la stratégie d’ordonnancement nous n’avons
aucun espoir de rencontrer toutes les échéances pour un système dont la
charge est plus grande que l’unité :
Lemme 1 Soit τ un système périodique (ou sporadique) alors U(τ) ≤ 1 est une
condition nécessaire pour l’ordonnançabilité du système.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
23
B) Ordonnancement à priorité fixe
Généralités
Dans ce chapitre, nous considérons l’ordonnancement de tâches périodiques
(et sporadiques) à l’aide d’une assignation de priorité fixe.
τi τ j signifie que la tâche τi a une priorité plus grande que τ j .
Nous supposons que chaque travail de τi hérite de la priorité de sa tâche (τi ).
Nous supposons que les priorités sont distinctes et que, sans nuire à la
généralité, τ1 τ2 · · · τn
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
24
L’algorithme 
L’assignation de priorité  (Rate Monotonic) est définie pour des systèmes à
départ simultané et échéance sur requête.
R assigne les priorités d’une manière inversement proportionnelle à la
période des tâches ou proportionnellement au taux (rate) d’arrivé. Les cas
d’égalité sont résolus d’une manière arbitraire (afin d’obtenir des priorités
distinctes).
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
La complexité de l’assignation de priorité de  est donc celle d’un
algorithme de tri, typiquement O(n log n)
$
25
Avant de montrer que cette assignation de priorité est optimale, quelques
définitions et propriétés préliminaires.
Définition 4 (faisable) Un système périodique est faisable, s’il existe une
assignation de priorité fixe pour laquelle le système est ordonnançable.
Définition 5 (optimalité) Une règle d’assignation de priorité R est optimale si,
lorsqu’un système périodique est faisable alors il est ordonnançable étant donné la
règle R.
Lemme 2 ([8]) Soit τ = {τ1 , . . . , τn } un système périodique (ou sporadique) à
échéance contrainte et départ simultané. Lorsque ce système est ordonnancé par un
algorithme à priorité fixe, le temps de répose du premier travail de la tâche τi est le
plus grand parmi tous les travaux de cette tâche.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Lemme 3 Soit τ un système périodique, S1 et S2 deux ordonnancements provenant
d’algorithmes conservatifs pour τ. L’ordonnancement S1 est oisif à l’instant t ssi
l’ordonnancement S2 est oisif à l’instant t, ∀t ≥ 0.
$
26
Preuve : La preuve est par induction : nous supposons que les
ordonnancements S1 et S2 ont tous les deux une unité oisive à l’instant t0 − ( > 0, arbitrairement petit) et que les ordonnancements ont des unités oisives
qui correspondent pour tout instant qui précède t0 . L’initialisation de la
preuve corresponds au cas t0 = 0.
Par induction, soit t1 le premier instant après t0 pour lequel il y a une unité
oisive dans l’un des deux ordonnancements. Supposons, sans nuire à la
généralité que ce soit dans l’ordonnancement S1 et que le processeur est oisif
dans l’intervalle [t1 , t2 ). Puisque S1 est conservatif, cela implique que tous les
travaux arrivés avant l’instant t2 sont terminés, c.-à-d., la demande
d’exécution cumulée pour τ arrivant avant l’instant t2 (ou t1 ) et après t0 vaut
t1 − t0 . Mais puisque S2 est également conservatif, ceci implique que le
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
processeur est aussi oisif durant l’intervalle [t1 , t2 ) dans S2 .
$
27
Théorème 1 L’assignation de priorité  est optimale pour des systèmes
périodiques (ou sporadiques) à échéance sur requête et départ simultané.
Preuve : Soit τ = {τ1 , . . . , τn } un système périodique (ou sporadique) à
échéance sur requête et départ simultané. Nous devons montrer que si une
assignation de priorité (fixe) est ordonnançable, alors celle de  l’est aussi.
Supposons que l’assignation (τ1 τ2 · · · τn ) soit une telle assignation.
Supposons que τi τi+1 soient deux tâches de priorités adjacentes et que
Ti ≥ Ti+1 : si l’assignation de priorité obtenue en échangeant les priorités de τi
et τi+1 est ordonnançable également, nous pouvons conclure l’assignation 
est aussi ordonnançable puisqu’elle peut être obtenue à partir de n’importe
quelle assignation par une séquence tels échanges.
Afin de montrer qu’après un tel échange toutes les échéances sont encore
rencontrées, nous considérons 4 étapes :
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
1. l’échange de priorité ne modifie pas l’ordonnançabilité des tâches plus
prioritaire que τi (c.-à-d., τ1 , . . . , τi−1 ).
$
28
2. La tâche τi+1 reste ordonnançable, puisque ses travaux peuvent utiliser
les temps libres laissés par {τ1 , . . . , τi+1 } à la place de ceux laissés par
{τ1 , . . . , τi }.
3. Supposant que τi reste ordonnançable (ce que nous montrons dans
l’étape suivante), par le Lemme 3, nous pouvons conclure que les travaux
des tâches {τi+2 , . . . , τn } ne sont pas altérés par l’échange de priorité.
4. Il nous reste à montrer que τi reste également ordonnançable. Par le
Lemma 2, nous savons que nous pouvons nous restreindre à étudier le
premier travail de τi . Soit ri+1 le temps de réponse du premier travail de
τi+1 avant l’échange de priorité, l’ordonnançabilité implique : ri+1 ≤ Ti+1 .
Durant l’intervalle [0, ri+1 ) le processeur (lorsqu’il est laissé libre par les
tâches plus prioritaires) est assigné d’abord au (premier) travail de τi et
ensuite au premier travail de τi+1 ; ce dernier n’est pas interrompu par les
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
29
autres travaux de τi puisque Ti > Ti+1 ≥ ri+1 . Dès lors, après l’échange de
priorité, l’allocation du processeur est échangée entre Ti et Ti+1 , et il
découle de ce fait que τi termine son exécution avant l’instant ri+1 et
rencontre son échéance puisque ri+1 ≤ Ti+1 < Ti
Remarque : pour les systèmes sporadiques, la propriété découle du fait que
considérer le cas périodique est le scénario le plus pessimiste.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
30
Le temps de réponse du premier travail
D’après le Lemme 2, pour les systèmes à départ simultané et échéance
contrainte, seul le temps de réponse du premier travail d’une tâche est à
considérer pour conclure à l’ordonnançabilité du système.
Dans la suite r1i dénote le temps de réponse du premier travail de la tâche τi .
Théorème 2 Un système τ à départ simultané et échéance contraintes, ordonnancé
par un algorithme à priorité fixe est ordonnançable ssi
r1i ≤ Di
∀i
A & T [2] ont montré que ce temps de réponse est la plus petite
grandeur qui est égale à l’interférence des tâches plus prioritaires, plus le
temps d’exécution de τi :
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
31
i−1  1 
X
 ri 
1
  C j .
ri = C i +
 T 
 j
j=1
En effet, dans l’intervalle [0, r1i ) il y a
1
ri
Tj
(1)
travaux de la tâche plus prioritaire τ j .
Notons que r1i apparaît des deux côtés de l’équation 1, la plus petite solution
peut être déterminée par un processus itératif :




 w0



 wk+1
def
=
def
=
Ci , (initialization)
Pi−1 wk Ci + j=1 T j C j (iteration).
Le processus continue jusqu’à obtenir un point fixe (wk = wk+1 ) ou lorsque
wk > Di .
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
32
Borne d’utilisation (utilization bound)
Nous allons présenter une deuxième condition d’ordonnançabilité basée le
facteur d’utilisation, cette dernière fournira une condition suffisante alors que
le Lemme 1 fourni une condition nécessaire.
U(t) < 0, 69 est une condition suffisante pour 
Nous considérons d’abord quelques résultats préliminaires.
Définition 6 (Utilisation pleine) Étant donné un algorithme d’ordonnancement,
un système de tâches τ = {τ1 , . . . , τn }, on dira que τ utilise pleinement le processeur
si toutes les échéances sont rencontrées et si l’augmentation d’un quelconque temps
d’exécution d’une quelconque tâche τi conduira à rater une échéance.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
33
Théorème 3 Pour l’assignation de priorité , un système de tâches
τ = {τ1 , . . . , τn } utilise pleinement le processeur ssi le système τ0 = {τ1 , . . . , τn−1 }
1. rencontre toutes les échéances
2. l’ordonnancement possède exactement Cn unités oisives dans l’intervalle [0, Tn )
avec l’assignation de priorité .
τ1
τ2
C1
C1
C2
τn
&
C2
T1
T2
Tn 2T1
Figure 1: Système avec Ci ≤ Ti+1 − Ti ∀i = 1, ..., n − 1
Université Libre de Bruxelles
-
%
'
 019, Techniques avancées de systèmes d’exploitation
Preuve : Implication immédiate du Lemme 2.
$
34
Soit bn la borne inférieure de U(τ) pour tous les systèmes τ de n tâches, qui
utilisent pleinement le processeur pour l’algorithme .
Lemme 4 Pour la famille de systèmes de tâches qui satisfait la contrainte que le
rapport entre les périodes de deux tâches quelconques est inférieur à 2,
√
n
bn = n( 2 − 1).
Preuve : Soit τ = {τ1 , . . . , τn } un système de n tâches, et supposons que
T1 < T2 < · · · < Tn et τ1 τ2 · · · τn . Nous procédons en plusieurs étapes.
Étape 1. Nous montrons d’abord, que dans le calcul de bn , nous pouvons
nous restreindre aux systèmes qui utilisent pleinement le processeur tel
que : ∀i < n : Ci ≤ Ti+1 − Ti .
Supposons que τ soit un système qui utilise pleinement le processeur et
possède le plus petit facteur d’utilisation parmi tous les systèmes qui
utilisent pleinement le processeur. Considérons d’abord le cas de C1 et
supposons que C1 = T2 − T1 + ∆ (∆ > 0 ; notons que nous devons avoir
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
T2 < 2T1 , sinon C1 > T1 et le système ne peut pas être ordonnançable).
Remarquons que le système τ0 = {τ01 , . . . , τ0n } avec Ti0 = Ti ∀i et
C01 = T2 − T1 , C02 = C2 + ∆, C03 = C3 , . . . , C0n = Cn utilise aussi pleinement le
processeur. De plus, U(τ) − U(τ0 ) = ∆/T1 − ∆/T2 > 0, contredisant notre
hypothèse sur l’utilisation minimale de τ. Ce raisonnement pour être
répliqué pour C2 , C3 , . . . , Cn−1 .
Étape 2. Nous montrons à présent, que dans le calcul de bn , nous pouvons
nous restreindre aux systèmes qui utilisent pleinement le processeur tel
que : ∀i < n : Ci = Ti+1 − Ti .
Il découle du Théorème 3, et du fait que chaque tâche τi (i < n) engendre
deux travaux qui se terminent avant l’instant Tn (c’est une conséquence de
ce que nous venons de prouver : Ci ≤ Ti+1 − Ti (i < n) — cf. Figure 1) que
P
Cn = Tn − 2 n−1
i=1 Ci puisque les n − 1 tâches rencontrent leurs échéances dans
Pn−1
Pn−1
l’intervalle [0, Tn ) et utilisent i=1 Ci unités avec i=1 Ci ≤ Tn − T1 < T1 .
Considérons d’abord le cas de C1 et supposons que C1 = T2 − T1 − ∆ (∆ > 0).
00
00
Remarquons que le système τ00 = {τ00
,
.
.
.
,
τ
}
avec
T
= Ti ∀i et
n
1
i
&
Université Libre de Bruxelles
$
35
%
'
 019, Techniques avancées de systèmes d’exploitation
00
00
= Ci pour i = 2, 3, . . . , n − 1 utilise
C00
=
C
+
∆
=
T
−
T
,
C
=
C
−
2∆,
C
1
2
1
n
n
1
i
aussi pleinement le processeur. De plus, U(τ) − U(τ00 ) = −∆/T1 + 2∆/Tn > 0,
contredisant notre hypothèse sur l’utilisation minimale de τ. Ce
raisonnement pour être répliqué pour C2 , C3 , . . . , Cn−1 .
def Tn −Ti
Ti
Étape 3. finalement, posons gi =
U(τ) =
(i = 1, . . . , n − 1) ; nous obtenons
n
X
C
i=1
$
36
n−1
X gi − gi−1
g1 − 1
i
)+
)
= 1 + g1 (
gi (
Ti
g1 + 1
gi + 1
i=2
Cette expression doit être minimisée, dès lors,
∂U(τ)
=
∂g j
g2j + 2g j − g j1
2
gj + 1
−
g j+1
g j+1 + 1
= 0,
pour j = 1, . . . , n − 1
Nous pouvons montrer que la solution générale de cette équation
corresponds au cas g j = 2
√
n
bn = n( 2 − 1).
&
Université Libre de Bruxelles
n− j
n
− 1 (j = 1, . . . , n − 1). Il découle donc que
%
'
 019, Techniques avancées de systèmes d’exploitation
$
37
La restriction sur le rapport entre les périodes peut être relâchée, ce qui
conduit à la borne d’utilisation désirée :
Théorème 4 ([5]) Soit τ un système périodique à échéance sur requête et départ
√
n
simultané. U(τ) ≤ n( 2 − 1) est une condition suffisante pour l’ordonnançabilité
sous .
La série bn converge vers ln 2, de plus 0, 69 < ln 2 < bn < bn−1 < · · · < b1 , ce qui
conduit à la condition suffisante suivante :
Corollaire 1 Soit τ un système périodique à échéance sur requête et départ
simultané. U(τ) ≤ 0, 69 est une condition suffisante pour l’ordonnançabilité sous .
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
L’algorithme 
$
38
L’assignation de priorité  (Deadline Monotonic) est définie pour des
systèmes à départ simultané et échéance contrainte.
D assigne les priorités d’une manière inversement proportionnelle à
l’échéance des tâches. Les cas d’égalité sont résolus d’une manière arbitraire
(afin d’obtenir des priorités distinctes).
Remarquons que l’assignation de priorité  est un cas particulier de .
Théorème 5 L’assignation de priorité  est optimale pour des systèmes
périodiques (ou sporadiques) à échéance contrainte et départ simultané.
Preuve : Nous pouvons utiliser le même raisonnement que celui utilisé dans
la preuve du Théorème 1 (transparent 27).
D’après le Lemme 2, pour les systèmes à départ simultané et échéance
contrainte, seul le temps de réponse du premier travail d’une tâche est à
considérer pour conclure à l’ordonnançabilité du système.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
39
Pour le  nous pouvons aussi calculer les temps de réponse du premier
travail de chaque tâche pour conclure à l’ordonnançabilité du système.
Remarquons que pour des systèmes à échéance contrainte une condition
d’ordonnançabilité ne peut pas avoir la forme
U(τ) < k
avec k constant. k devrait certainement être fonction des échéances.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
40
Échéance arbitraire
Considérons à présent le cas des systèmes à départ simultané et échéance
arbitraire.
Montrons d’abord que pour ces systèmes ni , ni  ne sont optimaux. Et
considérons le système
τ = {τ1 = {C1 = 52, T1 = 100, D1 = 110}, τ2 = {C2 = 52, T2 = 140, D2 = 154}}. Les
assignations de priorités  et  sont identiques, et donnent la plus grande
priorité à τ1 . Avec cette assignation le système n’est pas ordonnançable : le
premier travail de τ2 rate son échéance à l’instant 154, comme nous le voyons
sur l’ordonnancement suivant :
48
?
?
2
τ2
52
?
52
6
99
?
52
τ1
&
Université Libre de Bruxelles
0
51
100
151
%
$
'
 019, Techniques avancées de systèmes d’exploitation
41
En revanche, avec l’assignation de priorité τ2 τ1 le système est
ordonnançable. (Nous verrons que pour ces systèmes nous ne pouvons plus
nous borner au premier travail de chaque tâche mais nous devons atteindre le
premier instant oisif du processeur.)
?
52
?
52
?
τ2
0
51
140
52
?
?
36
191
16
52
?
?
τ1
52
&
Université Libre de Bruxelles
103 104
139
192
208
259
%
'
 019, Techniques avancées de systèmes d’exploitation
$
42
Particularités des systèmes à échéance arbitraire
– Remarquons que plusieurs travaux pour une même tâche peuvent être actifs
simultanément ! Nous n’avons pas défini la stratégie d’ordonnancement dans
ce cas : parmi les différents travaux actifs d’une même tâche, le système
donne une plus grande priorité au travail le plus ancien (stratégie ).
– Le temps de réponse du premier travail n’est pas nécessairement le plus
grand (cf. l’ordonnancement précédent, les premiers temps de réponse de
τ1 sont 104, 108 et 60).
Définition 7 (Intervalle d’étude) Pour un algorithme d’ordonnancement et un
ensemble de tâches, un intervalle d’étude est un intervalle fini tel que le système est
ordonnançable ssi toutes les échéances dans l’intervalle d’étude sont respectées.
Par exemple nous avons déjà établi le résultat suivant :
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Théorème 6 Pour des systèmes à départ simultané et échéance contrainte,
[0, max{Di | i = 1, . . . , n}) est un intervalle d’étude.
$
43
Preuve : Découle trivialement du Lemme 2.
Nous allons montrer que le pire temps de réponse apparaît nécessairement
dans la première période d’activité.
D’abord quelques définitions.
Définition 8 (instant oisif) x ∈ N est un instant oisif si tous les travaux arrivés
strictement avant l’instant x ont terminé leur exécution avant ou à l’instant x.
Si le système est oisif dans un intervalle [a, b), tout les instants sont des
instants oisifs.
Considérons le système {τ1 = {C1 = 2, T1 = 5}, τ2 = {C2 = 3, T2 = 10}} (les
instants oisifs sont représentés par des •). Le système est oisif durant
l’intervalle [7, 10) et 7, 8, 9, 10 sont des instants oisifs ; 10 est un instant oisif qui
coïncide avec l’arrivé de deux tâches ; 7 est un instant oisif qui coïncide avec
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
44
l’achèvement de τ1 et 5 est un instant oisif qui coïncide avec l’achèvement de
τ2 et l’arrivée du second travail de τ1 .
?2
?2
?
τ1
0
5
1
6
3
?
?
τ2
•
2
4
•
•
•
•
•
Définition 9 (période d’activité élémentaire) Une période d’activité élémentaire
est un intervalle [a, b) tel que a et b sont des instants oisifs et tel qu’il n’y ait pas
d’instants oisifs dans l’intervalle (a, b).
Définition 10 (période d’activité de niveau-i) Une période d’activité de niveau-i
est une période d’activité élémentaire dans l’ordonnancement des tâches {τ1 , . . . , τi }
où τi réalise au moins un travail.
Théorème 7 Le pire temps de réponse de la tâche τi apparaît dans la première
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
45
période d’activité de niveau-i en considérant la configuration à départ simultané,
nous noterons cette période par l’intervalle [0, λi ).
Preuve : Soit [a, b) une période d’activité de niveau-i d’un quelconque
ordonnancement (pas nécessairement à départ simultané) pour les tâches
{τ1 , . . . , τi }. Soit a + ∆ j l’instant du premier travail de τ j après l’instant a
(∆ j ≥ 0). Par définition, ∆k = 0 pour au moins un k. Supposons d’abord que
∆i > 0. Seules les tâches plus prioritaires que τi progressent durant [a, a + ∆i ) ;
dès lors, si on change la valeur de ∆i par une valeur plus petite, chaque travail
de τi dans [a, b) va s’achever au même instant que précédemment,
augmentant ainsi le temps de réponse de τi , le maximum correspond au cas
∆i = 0. Si ∆ j > 0 (j < i) alors réduire ∆ j accroît (ou laisse inchangé) la demande
des travaux plus prioritaires dans l’intervalle [a, b), augmentant ainsi la
longueur de la période d’activité-i. Dès lors, le pire temps de réponse est
obtenu en considérant le cas ∆1 = ∆2 = · · · = ∆i = 0.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
46
Théorème 8 Pour des systèmes à départ simultané et échéance arbitraire [0, λn ) est
un intervalle d’étude.
Preuve : La propriété découle du fait que λ1 < λ2 < · · · < λn .
λn est la plus petite solution de l’équation
λn =
n X
λ
n
i=1
Ti
Ci
et peut être calculé par itérations
def
w0 =
def
wk+1 =
&
Université Libre de Bruxelles
n
X
Ci ,
i=1
n X
i=1
wk
Ci .
Ti
%
'
 019, Techniques avancées de systèmes d’exploitation
$
47
Systèmes à départ différé et échéance contrainte
Pour les systèmes à départ non simultané, l’intervalle d’étude est
significativement plus grand. Définissons d’abord deux grandeurs
def
et
P = ppcm{Ti | i = 1, . . . , n}
méta-période
def
Omax = max{Oi | i = 1, . . . , n}
Théorème 9 ([6]) Pour les systèmes à départ non simultané et échéance contrainte,
[Omax , Omax + 2P) est un intervalle d’étude.
Remarquons que [0, Omax + 2P) est aussi un intervalle d’étude, ce qui signifie
que l’on doit simuler l’évolution du système jusqu’à l’instant Omax + 2P, en
réalité il n’est pas nécessaire de considérer les travaux qui arrivent avant
l’instant Omax .
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Nous allons à présent étudier une amélioration de cet intervalle d’étude,
commençons par quelques résultats préliminaires.
$
48
Remarquons d’abord que les ordonnancements sont périodiques :
Théorème 10 Les ordonnancements (qui ne contiennent pas d’échecs d’échéance)
sont périodiques.
Preuve : Pour les instants t après Omax , nous appelons configuration de
l’ordonnancement la liste des paires {(εi , δi )|1 ≤ i ≤ n} où εi est le temps
processeur utilisé par la tâche τi depuis sa dernière arrivée et δi le temps
écoulé depuis sa dernière arrivée. Pour les algorithmes à priorité fixe, la
configuration à l’instant t + 1 est univoquement déterminée par la
configuration à l’instant t. Puisque ∀i : εi ≤ Ci , δi < Ti et que ce sont des
nombres naturels, il y a un nombre fini de configurations différentes et nous
pouvons trouver deux instants t1 , t2 (t1 < t2 ) avec la même configuration. À
partir de cet instant, l’ordonnancement se répète périodiquement (avec une
période divisant t2 − t1 ).
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
49
def
Théorème 11 Soit Si défini de la manière suivante S1 = O1 ,
def
i
Si = max{Oi , Oi + d Si−1T−O
eTi } (i = 2, 3, . . . , n), alors si le système est ordonnançable
i
et si les tâches sont classées par priorités décroissantes, l’ordonnancement est
périodique dès l’instant Sn avec une période P.
Preuve : Par induction sur n. La propriété est triviale dans le cas n = 1 :
l’ordonnancement de τ1 est périodique et de période T1 à partir du premier
travail de τ1 : S1 = O1 . Par hypothèse d’induction, l’ordonnancement de
{τ1 , . . . , τi−1 } est périodique dès l’instant Si−1 et de période
def
Pi−1 = ppcm{T j | j = 1, . . . , i − 1}. Si est l’instant d’arrivée du premier travail
de τi après (ou à) l’instant Si−1 . Comme les tâches sont classées par priorités
décroissantes, la périodicité des premières n’est pas altérée par les travaux de
τi et puisque l’ordonnancement est supposé ordonnançable, il se répète dès
l’instant Si + ppcm{Pi−1 , Ti }. En conséquence de quoi, pour les tâches τ1 , . . . , τi
l’ordonnancement est périodique dès l’instant Si avec une période
def
Pi = ppcm{T j | j = 1, . . . , i}.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
50
Il découle de ce résultat que [0, Sn + P) est un intervalle d’étude et fournit une
amélioration par rapport à l’intervalle proposé par le Théorème 9 : on gagne
un facteur P.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
51
3 tâches périodiques
(T1 = 10, C1 = 7, O1 = 0; T2 = 15, C2 = 1, O2 = 4; T3 = 16, C3 = 3, O3 = 0), U(τ) = 0.95417
?7
0
τ3 ?
τ1
1
?7
τ1
70
τ3
1
τ2
?
?7
80
?
?
1
?1
90
1
2
88
?7
3
217
&
100
?
1
? 2
?7
?1
1
?7
110
?
?
1
?7
1
?
1
229
Université Libre de Bruxelles
170
180
?
1
?
1
2
178
1
2
118
1
?
?1
?7
190
?
3
187
?1
? 2
68
?7
130
?
1
120
1
1 1
?
?7
1
200
?
1
?
?7
240
2
237
2
57
?7
?7
?7
?
230
?7
60
38
?7
3
157
220
?
2
27
?
?7
τ1
210
τ3
?7
?
1
1 ?
1
50
98
?7
160
?
150
2
148
?7
?7
40
? 1
? 2
30
?7
?7
τ2
τ2
?
1
11
18
?7
τ1
140
τ3
?7
20
2
8
?
τ2
?7
10
?
1
1 1
?
250
2
248
%
$
'
 019, Techniques avancées de systèmes d’exploitation
52
Assignation de priorité (fixe) optimale pour les systèmes à départ différé et
échéance contrainte
Pour ces sytèmes, ni  ni  ne sont optimaux. Considérons le système
τ1 = {C1 = 1, T1 = D1 = 12, O1 = 10}, τ2 = {C2 = 6, T2 = D2 = 12, O2 = 0},
τ3 = {C3 = 3, T3 = D3 = 8, O3 = 0}. Ce système est ordonnançable avec
l’assignation de priorité τ3 τ2 τ1 alors qu’avec l’assignation du 
τ3 > τ1 > τ2 il n’est pas ordonnançable.
τ3
?3
0
τ2
?3
8
2
?3
10
5
?
3
16
1
7
τ1
11
?
?
?3
18
24
4
2
15
?3
32
26
27
1
1
?
34
5
?
19
?
1
?
35
31
?
21
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
τ3
?3
0
?3
8
2
?3
10
16
?1
τ1
5
?
3
&
Université Libre de Bruxelles
?3
18
24
1
?
11
τ2
53
?
26
?
22
?
7
6
%
'
 019, Techniques avancées de systèmes d’exploitation
L’algorithme d’Audsley
$
54
Un premier algorithme consiste à considérer n! assignations de priorité dans
la recherche d’une assignation ordonnançable. Cette méthode est optimale
mais en général trop lourde.
Audsley dans [1] a proposé un algorithme optimal plus efficace qui considère
dans le pire des cas n2 assignations de priorité. Cet algorithme est basé la
propriété (et définition) suivante :
Définition 11 (viable au niveau de priorité le plus faible) Soit τ un système
périodique. La tâche τi dite viable au niveau de priorité le plus faible dans τ ssi tous
les travaux de τi respectent leur échéance lorsque :
– la tâche τi possède la priorité la plus faible ;
– les autres tâches ont des priorités quelconques mais supérieurs à celle de τi ;
– lors de la contruction de l’ordonnancement, les travaux des tâches différentes de τi
peuvent rater leur échéance (ils continuent dans ce cas leur exécution jusqu’à leur
achèvement), les travaux de τi eux ne peuvent pas rater leur échéance.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Théorème 12 Supposons que τi soit viable au niveau de priorité le plus faible dans
τ. Alors il y a une assignation de priorité ordonnançable pour τ ssi il y a une
assignation de priorité ordonnançable pour τ \ {τi }.
$
55
Preuve : Premièrement, nous dénotons la correspondance tâche/priorité par
p(τa ) = b signifiant que la priorité de la tâche τa est b.
Supposons que l’assignation de priorité p est ordonnançable pour τ avec :
p(τ1 ) = 1, p(τ2 ) = 2, . . . , p(τi ) = i, p(τi+1 ) = i + 1, . . . , p(τn ) = n
Une seconde assignation de priorité est aussi ordonnançable :
p0 (τ1 ) = 1, p0 (τ2 ) = 2, . . . , p0 (τi+1 ) = i, p0 (τi+2 ) = i + 1, . . . , p0 (τn ) = n − 1, p0 (τi ) = n
Puisque τi est viable au niveau de priorité le plus faible dans τ, nous pouvons
assigner sa priorité de la manière suivante : p0 (τi ) = n. Les tâches assignées
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
56
originellement aux niveaux i + 1, . . . , n sont promues d’un niveau de priorité.
Ces tâches restent ordonnançables car l’interférence de τi a disparue.
Clairement, les tâches assignées aux niveaux 1, . . . , i − 1 restent
ordonnançables car la modification n’affecte par ces dernières.
Le Théorème 12 suggère une procédure pour déterminer une assignation de
priorité ordonnançable (quand il en existe une) :
1. Premièrement, décider quelle tâche τi est viable au niveau de priorité le
plus faible ;
2. ensuite, appliquer la même technique récursivement pour l’ensemble
τ \ {τi } constitué de n − 1 tâches :
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Assignation de priorité d’Audsley :
$
57
procedure assignerpriorité(τ)
if (pas de tâche dans τ viable au niveau de priorité le plus faible)
return “échec”
else {
soit τi une tâche viable au niveau de priorité le plus faible dans τ
assigner à τi la priorité la plus faible dans τ
assignerpriorité(τ \ {τi })
}
end assignerpriorité
La procédure nécessite de vérifier qu’une tâche τi est viable au niveau de
priorité le plus faible dans τ, ce qui peut être vérifié, par exemple dans
l’intervalle d’étude [0, Sn + Pn ). Remarquons que pour un système de n tâches
l’algorithme d’Audsley va invoquer au plus n + (n − 1) + · · · + 2 + 1 = O(n2 )
fois ce test.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
58
C) Algorithmes à priorité dynamique
L’algorithme 
Introduction
L’algorithme Earliest Deadline First () est un algorithme à priorité
dynamique très populaire, il assigne les priorités aux travaux pendant
l’exécution du système :
Définition 12 () À chaque instant t,  donne la plus grande priorité au travail
actif dont l’échéance est la plus petite (les cas d’égalités sont résolus arbitrairement).
?2
2
?
?2
?2
?2
τ1
0
1
6
2
?
?2
7
10
?2
11
15
?2
16
20
2
?
21
?
τ2
&
2
Université Libre de Bruxelles
4
4
5
8
9
12
13
17
18
%
'
 019, Techniques avancées de systèmes d’exploitation
Optimalité
$
59
Dans la suite, .J représente l’ordonnancement généré par  quand il
ordonnance l’ensemble (fini ou infini) de travaux J.
Théorème 13 Si une instance J peut être ordonnancé alors .J est ordonnançable.
Preuve : La preuve est par induction. Soit ∆ un nombre positif arbitrairement
petit. Considérons l’ordonnancement S pour J pour lequel toutes les
échéances sont satisfaites, et soit [t0 , t0 + ∆) le premier intervalle dans lequel
l’ordonnancement prend une décision différente de celle prise par .J.
Supposons que le travail j1 = (a1 , e1 , d1 ) est ordonnancé dans S dans cet
intervalle, alors que j2 = (a2 , e2 , d2 ) est ordonnancé dans .J. Puisque S
respecte toutes les échéances, il ordonnance j2 dans l’intervalle [a2 , d2 ) (pas
nécessairement de manière continue) qui s’achève avant d2 . En particulier,
ceci implique que S ordonnance j2 pour une durée égale à ∆ avant d2 . Par
définition d’ , d2 ≤ d1 ; dès lors, S ordonnance j2 pour une durée égale à ∆
avant d1 aussi. L’ordonnancement S0 obtenu à partir de S en échangeant les
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
60
exécutions de j1 et j2 pour une durée ∆ sera identique à .J dans l’intervalle
[0, t + ∆). L’optimalité d’ suit par induction sur t avec S0 qui joue alors le
rôle de S.
Optimalité forte d’
Remarquons que l’optimalité d’ est beaucoup plus forte que celle de 
(ou ) car elle concerne des travaux (et pas des tâches), en particulier,
l’optimalité est conservée pour :
– des systèmes à départ différé ;
– des systèmes à échéance arbitraire.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
61
Systèmes à échéance sur requête
Nous avons vu que (Lemme 1) U(τ) ≤ 1 est une condition nécessaire pour
l’ordonnançabilité des systèmes périodiques. Nous allons voir que pour 
et des systèmes périodiques à échéance sur requête cette condition est aussi
suffisante.
D’abord, nous adaptons la notion de système faisable dans le cas dynamique :
Définition 13 (faisable) Une instance J est faisable, s’il existe un ordonnancement
qui respecte toutes les échéances.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
62
Théorème 14 U(τ) ≤ 1 est une condition nécessaire et suffisante pour la faisabilité
des systèmes périodiques à échéance sur requête.
Preuve : Soit τ un ensemble de n tâches périodiques à échéance sur requête :
τ1 , . . . , τn . Considérons un ordonnancement « processeur partagé » S obtenu
en partitionnant la ligne du temps en arbitrairement petits intervalles et
ordonnançant chaque tâche τi pendant la fraction U(τi ) de cet intervalle.
Puisque U(τ) ≤ 1, un tel ordonnancement peut en effet être construit. Cet
ordonnancement S attribue à chaque travail de τi exactement U(τi ) × Ti = Ci
unités entre son arrivée et son échéance.
Corollaire 2 Un systèmes périodiques à échéance sur requête est ordonnançable avec
 ssi U(τ) ≤ 1.
Preuve : Découle de l’optimalité forte d’ (Théorème 13) et du
Théorème 14.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
63
Systèmes à départ simultané et échéance contrainte
Remarquons d’abord que la configuration à départ simultané est toujours (en
comparaison avec les algorithmes à priorité fixe) le cas le plus pessimiste :
Théorème 15 Soit S un système périodique à échéance arbitraire. Si S est
ordonnançable avec  dans la configuration à départ simultané alors S est
ordonnançable avec  dans toutes les configurations à départ différé.
En revanche, pour  le temps de réponse du premier travail de τi n’est pas
nécessairement le plus grand !
Considérons le système S = {τ1 = {C1 = 2, D1 = T1 = 4}, {C2 = 3, D2 = T2 = 7}},
le temps de réponse des premiers travaux de τ2 dans la configuration à départ
simultané sont : 5, 5, 5, 6
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
?2
2
?
?2
64
?2
?2
?2
?2
?
τ1
0
5
1
3
?
6
8
9
12
1
?
2
16
13
?2
20
17
1
21
24
2
?
25
1
?
τ2
2
4
7
10
11
14
15
18
22
23
26
Liu & Layland ont « montré » (la propriété est vraie mais malheureusement
par la preuve) que l’on ne peut pas rater une échéance après une unité oisive
du processeur :
Théorème 16 ([7]) Lorsque  ordonnance un système périodique avec échéance
sur requête et à départ simultané, il n’y a pas d’unités oisives dans l’ordonnancement
avant l’échec d’une échéance.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
65
C’est propriété peut être étendue en considérant les instant oisifs (cf.
Définition 8) et des systèmes à échéance arbitraire :
Théorème 17 ([3]) Lorsque  ordonnance un système périodique avec échéance
arbitraire et à départ simultané, il n’y a pas d’instants oisifs dans l’ordonnancement
avant l’échec d’une échéance.
Par conséquence l’intervalle [0, L) est un intervalle d’étude avec L qui
correspond au premier instant oisif (hormis l’origine) dans l’ordonnancement.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
66
L est la plus petite solution positive de l’équation
L=
n X
L
i=1
Ti
Ci
et peut être calculée par itération :
def
w0 =
def
wk+1 =
n
X
i=1
n X
i=1
&
Université Libre de Bruxelles
Ci ,
L
Ci .
Ti
%
'
 019, Techniques avancées de systèmes d’exploitation
$
67
Systèmes à départ différé — intervalles d’études
Considérer la configuration « départ simultané » est plus pessimiste que la
configuration « départ différé » (cf. Théorème 15), dès lors si le test de
faisabilité qui correspond au cas à départ simultané échoue il sera intéressant
de vérifier, dans la situation à départ différé donnée, l’ordonnançabilité du
système. Nous avons donc besoin d’une condition nécessaire (et pas
suffisante) pour ces systèmes.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
68
Définition 14 (Configuration) Pour un système périodique R et un
ordonnancement S, nous définissons la configuration à l’instant t par
CS (R, t) = ((γ1 (t), α1 (t), β1 (t)), . . . , (γn (t), αn (t), βn (t)))
où
– γi (t) = (t − Oi ) mod Ti est le temps écoulé depuis le dernier travail de τi , si
t ≥ Oi ; γi (t) = t − Oi si t < Oi .
– αi (t) est le nombre de travaux actifs pour τi à l’instant t.
– βi (t) est le temps processeur utilisé par le plus ancien travail actif de τi (s’il en
existe un). Si αi (t) = 0, nous fixons βi (t) = 0.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
69
Théorème 18 Soit S un ordonnancement  pour un système périodique à départ
différé et échéance arbitraire. R est faisable ssi (1) toutes les échéances sont respectées
dans l’intervalle [0, Omax + 2P] et (2) Cs (R, Omax + P) = Cs (R, Omax + 2P).
Remarquons que les deux conditions du Théorème 18 sont nécessaires pour la
faisabilité du système. L’exemple suivant montre que la condition (1)
n’implique pas la condition (2).
Soit le système
T
D
C
O
τ1
4
4
2
0
τ2
4
7
3
2
Nous avons que P = 4 et Omax = 2 ; de plus comme nous le voyons sur
l’ordonnancement toutes les échéances dans l’intervalle [0, 10) sont satisfaites,
mais CS (R, 6) , CS (R, 10), car β2 (6) = 2 et β2 (10) = 1. Et τ2 rate son échéance à
l’instant 21.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
?2
70
1
?
1
?2
6
7
10
?
3
2
?
τ2
2
?2
3
?2
?2
11
?2
19
16
14
20
6
2
?
τ1
0
1
4
5
8
9
12
13
17
18
Dès lors [0, Omax + 2P) n’est pas un intervalle d’étude !
Par contre si la condition U(τ) ≤ 1 est satisfaite alors seule la première
condition du Théorème 18 doit être considérée :
Corollaire 3 Si U(τ) ≤ 1 alors [0, Omax + 2P) est un intervalle d’étude pour les
systèmes à départ différé.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
71
L’algorithme 
Nous allons à présent considérer un deuxième algorithme à priorité
dynamique optimal : l’algorithme Least Laxity First (). Cet algorithme est
parfois appelé dans la littérature récente le slack-time algorithm. Nous allons
utiliser le terme original ().
La priorité à chaque instant dépend de la latitude des travaux.
Définition 15 (Latitude) Soit J un travail charactérisé par le tuple (a, e, d), à
l’instant t ≥ a, J (t) dénote le temps processeur utilisé par J depuis son arrivée (a), la
latitude (dénotée par ` J (t)) à l’instant t est définie de la manière suivante :
def
` J (t) = d − t − (e − J (t))
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
La latitude d’un travail représente son degré d’urgence :
$
72
– ` J (t) > 0 : le travail peut encore patienter avant de recevoir le cpu (au
maximum pendant ` J (t) unités de temps) ;
– ` J (t) = 0 : il est impératif de donner le cpu à J jusqu’à l’instant d pour
respecter son échéance ;
– ` J (t) < 0 : quel que soit le choix de l’algorithme d’ordonnancement dans
l’intervalle [t, d) J va rater son échéance ;
– la latitude d’un travail qui s’exécute est constante.
Définition 16 () L’algorithme  donne à chaque instant la plus grande priorité
au travail actif dont la latitude est la plus petite. Les cas d’égalité de latitude sont
résolus d’une manière arbitraire.
Mok à démontrer dans sa thèse l’optimalité de  :
Théorème 19 ([9]) Si une instance J peut être ordonnancée alors  l’ordonnance.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
73
 vs.  — le nombre de préemptions
L et  sont tout deux des algorithmes à priorité dynamique optimaux, les
ordonnancements produits sont néanmoins en général très différents en
particulier si l’on se focalise sur le nombre de préemptions.
Considérons par exemple le système suivant :
C
T
D
τ1
4
10
8
τ2
5
10
9
L’ordonnancement produit par  ne contient pas de préemption :
?
4
?
τ1
0
3
5
?
?
τ2
&
Université Libre de Bruxelles
4
8
%
'
 019, Techniques avancées de systèmes d’exploitation
$
74
En revanche, l’ordonnancement produit par  contient 6 préemptions tout
les 10 unités de temps !
1
?
1
1
1
0
2
4
6
?
τ1
?
1
1
1
1
3
5
2
?
τ2
7
8
Plus généralement, supposons qu’à l’instant t deux travaux (J1 et J2 ) actifs
possèdent la même latitude minimale disons ` J1 (t) = ` J2 (t) ; supposons que 
donne le cpu à J1 alors à l’instant t + 1 nous avons : ` J1 (t + 1) = ` J2 (t + 1) + 1, 
préempte J1 et attribue le cpu à J2 ; à l’instant t + 2 les deux latitudes sont à
nouveau identiques ` J1 (t + 2) = ` J2 (t + 2). Nous pouvons reproduire ce
scenario tant que J1 et J2 sont actifs et qu’il n’y a pas d’autres travaux plus
prioritaires à considérer.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
75
 vs.  — priorité dynamique
Il est vrai que tout deux sont des algorithmes à priorité dynamique en vertu
de la définition que nous avions adoptée puisque la priorité est assignée aux
travaux.
Par contre la priorité d’un travail sous  est constante alors que sous  elle
varie.
Dès lors nous pouvons distinguer 3 types d’algorithmes d’ordonnancement
(du moins général au plus général) :
Algorithmes à priorité fixe au niveau des tâches : qui assignent des priorités
aux tâches (p. ex. ).
Algorithmes à priorité fixe au niveau des travaux : qui assignent des
priorités fixes aux travaux (p. ex. ).
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
76
Algorithmes à priorité dynamique (au niveau des travaux) : qui assignent
des priorités dynamiques aux travaux (p. ex. ). Dans ce cas la priorité
d’un même travail peut évoluer au cours du temps.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
77
D) Autres problèmes/modèles
Ordonnancement de tâches dépendantes
Nous considérons l’ordonnancement des systèmes suivants :
– n tâches périodiques
– départ simultané
– échéance sur requête
– m ressources R1 , . . . , Rm
– m sémaphores S1 , . . . , Sm :
..
.
P(Si )
section critique
V(Si )
..
.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
78
Inversion de priorité
3 tâches τ1 > τ2 > τ3 (priorités fixes), τ1 et τ3 utilisant une même ressource (les
zones grises représentent les sections critiques)
τ1
τ2
τ3
t0
t1
t2
t3
t4
t5
t6
t7
t8
t9
τ1 (la tâche plus prioritaire) est préemptée par τ3 (car cette dernière est déjà
dans sa section critique) : il y a une inversion de priorité.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
79
Ce qui est plus gênant, c’est que τ1 est interrompue par plusieurs travaux de
τ2 (une tâche de priorité intermédiaire). De plus, la durée de ce phénomène
d’inversion de priorité n’est pas borné !
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Courte digression d’ordre pratique : Mars Pathfinder
$
80
Cette photographie représente la sonde Mars Pathfinder, lancée en décembre 1996 par la NASA pour l’exploration de mars. L’objectif principal de Mars
Pathfinder était de démontrer qu’il était possible de faire atterrir et de contrôler une sonde sur Mars à un coût relativement faible. Elle a également permis
d’étudier la composition et les propriétés du sol ainsi que le climat.
Mais après quelques jours de loyaux services sur mars, la sonde a commencée à réaliser des « system resets » intempestifs, perdant à chaque fois les données
collectées. Dans la presse on pouvait lire « the computer was trying to do too many things at once » .
En réalité, le problème provient d’une inversion de priorité non contrôlée. La ressource commune était un bus d’information utilisé pour échanger des
informations entre les différents composant de la sonde. Différentes tâches accédaient à ce bus de manière concurrente à l’aide de sémaphores (la tâche de
&
gestion du bus, la tâche de « météorologie » et la tâche de communication). . .
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
81
1re solution : interdire la préemption
Une première solution qui « tue » le problème consiste à interdire la
préemption d’une tâche.
L’ordonnancement de tâches périodiques et non préemptives est un problème
NP-Hard.
10
20
30
40
50
60
n
n2
0.00001 sec
0.00002 sec
0.00003 sec
0.00004 sec
0.00005 sec
0.00006 sec
0.0001 sec
0.0004 sec
0.0009 sec
0.0016 sec
0.0025 sec
0.0036 sec
n3
0.001 sec
0.008 sec
0.027 sec
0.064 sec
0.125 sec
0.216 sec
n5
0.1 sec
3.2 sec
24.3 sec
1.7 min
5.2 min
13 min
2n
3n
0.001 sec
1.0 sec
17.9 min
12.7 jours
0.059 sec
58 minutes
6.5 années
3855 siècles
35.7 années
2 × 108 siècles
366 siècles
1.3 × 1013 siècles
Les algorithmes d’ordonnancement non préemptifs sont souvent non
conservatifs : il peut être intéressant d’attendre l’arrivée d’une tâche courte et
critique avant l’exécution d’une tâche longue et moins critiques.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
82
2e solution : interdire la préemption des sections critiques
Le système est préemptif mais pas les sections critiques.
Voici un exemple pour  :
J1
J
2
J
3
t0
&
Université Libre de Bruxelles
t1 t2
t3
t4
t5
t6
t7
%
$
'
 019, Techniques avancées de systèmes d’exploitation
83
Condition d’ordonnançabilité pour  :
n
X
Ci + q
i=1
Ti
≤1
où q est la durée de la plus longue section critique
Condition d’ordonnançabilité pour  :
n
X
Ci + q
i=1
Ti
√
n
≤ n( 2 − 1)
Cette solution est envisageable pour de courtes sections critiques.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
84
3e solution : protocole par héritage de priorité
Sha et collègues dans [10] ont proposés deux protocoles :
– le protocole à héritage de priorité (priority inheritance protocol) ;
– le protocole à priorité plafond (priority ceiling protocol).
Dans le protocole à héritage de priorité on distingue les priorités nominales
des tâches : J1 > · · · > Jn et les priorités actives basées sur l’utilisation des
ressources/sémaphores : lorsque Ji est bloquée par J j alors J j reçoit (hérite) de
la priorité de Ji .
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
85
J1
J
2
J
3
t0
&
t1
Université Libre de Bruxelles
t2
t3
t4
t5
t6
t7
%
$
'
 019, Techniques avancées de systèmes d’exploitation
86
Théorème 20 Soit Bi le plus grand temps de blocage pour τi . Un ensemble de tâches
périodiques est ordonnançable avec le protocole à héritage de priorité et  si
∀i, 1 ≤ i ≤ n,
i
X
C
k=1
√i
Bi
+
≤ i( 2 − 1).
Tk Ti
k
De plus, il existe un algorithme efficace pour le calcul des Bi du moins pour
des sections critiques non imbriquées.
Inconvénients du protocole à héritage de priorité :
– ne prévient pas les interblocages (deadlocks) ;
– un travail peut être bloqué par plusieurs sections critiques, on dira qu’il y a
une chaîne de blocage :
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
J1
J
2
J
3
87
a
b
a
b
b
a
J1 est bloqué par 2 sections critiques.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
88
4e solution : le protocole à priorité plafond
Les priorités sont :
– les priorités nominales : τ1 > · · · > τn ;
– les priorités plafonds associées aux sémaphores :
C(Sk ) = max{P j | τ j utilise Sk } (fixe) ;
– les priorités dynamiques des tâches :
S∗i = max{C(Sk ) | Sk est verrouillé mais pas par τi } (dynamique).
Une tâche est autorisée à entrer dans une section critique si Pi > S∗i .
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
89
Exemple : J1 > J2 > J3 , J1 utilise S0 & S1 , J2 utilise S0 , J3 utilise S1 ; alors
C(S0 ) = P1 , C(S1 ) = P1
S0
S1
S0
J1
S0
S0
J
2
S
1
J3
t
&
0
t
1
Université Libre de Bruxelles
t
2
t
3
t
4
t
5
t
6
t
t
7
8
%
$
'
 019, Techniques avancées de systèmes d’exploitation
90
Théorème 21 Soit Bi le plus grand temps de blocage pour τi . Un ensemble de tâches
périodiques est ordonnançable avec le protocole à priorité plafond et  si
∀i, 1 ≤ i ≤ n,
i
X
C
k=1
k
Tk
+
1
Bi
≤ i(2 i − 1).
Ti
Le calcul des Bi est cependant différent.
Avantages du protocole à priorité plafond :
– il prévient les interblocages ;
– il prévient les chaînes de blocage.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Ordonnancement de tâches apériodiques
$
91
En général la partie critique des systèmes temps réel est constituée de tâches
périodiques à échéance stricte. Par ailleurs, le système est composée de tâches
non critiques (p. ex., E/S, l’interface avec le monde extérieur, l’audit du
système, etc.) ces dernières sont des tâches apériodiques.
Définition 17 (Tâche apériodique) Une tâche apériodique est une tâche dont on
ne connaît pas lors de la conception du système les caractéristiques et en particulier la
date d’arrivée.
Objectif de l’ordonnancement
Il est double :
– les échéances strictes des tâches périodiques doivent impérativement être
satisfaites ;
– il faut assurer de bonnes performances pour l’exécution des tâches
apériodiques (p. ex. minimiser leurs temps de réponse)
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
92
Modélisation des tâches apériodiques
Une tâche apériodique Ji sera caractérisée par 3 grandeurs :
def
Ji = (αi , pi , di )
– αi l’instant d’arrivée ;
– pi le temps de calcul ;
– di l’échéance non critique et optionnelle.
Background Server
C’est la stratégie la plus simple à laquelle on peut songer, il s’agit d’attribuer
le cpu aux tâches apériodiques quand il n’y a pas de tâches périodiques en
attente. Ce qui revient à donner les temps libres laissés par les tâches
périodiques.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
93
Exemple :
τ1 = {C1 = 2, T1 = 8, D1 = 8} and τ2 = {C2 = 3, T2 = 12, D2 = 12}.
J1 = {α1 = 1, p1 = 1}, J2 = {α2 = 8, p2 = 2} and J3 = {α3 = 10, p3 = 1}.
≡ τs = {Cs = (1 − U)P, Ts = P = D}
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
94
Polling Server
Le principe du polling server est d’ajouter artificiellement une tâche
périodique, disons τs = (Cs , Ts = Ds ) pour servir les requêtes apériodiques. Il
faut donc définir judicieusement :
–
–
–
–
la capacité du serveur : Cs ;
la période du serveur : Ts ;
la priorité du serveur (qui n’est pas nécessairement la plus grande) ;
en général, on choisit Ds = Ts et on applique l’algorithme .
Si il n’y a pas de requête apériodique quand τs est actif, le travail courant de
τs termine son exécution, sinon la capacité est ajustée. La capacité du serveur
est de plus rechargée toutes les Ts unités de temps.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
95
Exemple :
τs = {Cs = 2, Ts = 8, Ds = 8} avec .
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
96
– le système est ordonnançable si CTss + U(τ) ≤ ln 2 ;
– il est parfaitement possible de disposer de plusieurs serveurs à des niveaux
de priorité quelconque ;
– le choix de la capacité et de la période des serveurs est capital pour les
bonnes performances des requêtes apériodiques et dépasse largement la
matière de ce cours introductif.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
97
Deferrable Server
Le polling server se suspend lorsqu’il n’y a plus de requêtes apériodiques
actives (jusqu’à la prochaine période) même si la capacité est non nulle. Dès
lors, si une requête apériodiques arrive sensiblement plus tard, elle devra
attendre la prochaine période alors que de la capacité résiduelle existe (c’est
ce qui arrive à J1 dans l’exemple précédent).
Le deferrable server sert lui les requêtes apériodiques tant que la capacité
résiduelle est positive, la capacité du serveur est de plus rechargée toutes les
Ts unités de temps.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
98
– Cette fois-ci la tâche τS ne se comporte plus exactement comme une tâche
périodique, les tests d’ordonnançabilité doivent donc être adaptés.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
99
Priority Exchange Server
Ce serveur va permettre comme le deferrable server d’utiliser la capacité
résiduelle, la capacité du serveur est également rechargée toutes les Ts unités
de temps et le l’ordonnancement sera celui de l’ensemble périodique
correspondant. Donc les tests d’ordonnançabilité ne doivent pas être adaptés.
Quand il n’y a plus de requêtes apériodiques la capacité résiduelle est
échangée avec les tâches périodiques moins prioritaires.
Les requêtes apériodiques sont servies avec la capacité résiduelle du niveau
de priorité le plus élevé :
J1 = {α1 = 1, p1 = 1}, J2 = {α2 = 7, p2 = 2} and J3 = {α3 = 17, p3 = 1}.
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
100
&
Université Libre de Bruxelles
%
$
'
 019, Techniques avancées de systèmes d’exploitation
101
Performances : les temps de réponses
Serveur
J1
J2
J3
moyenne
Background Server
5
4
6
5
Polling Server
8
9
8
8.33
Deferrable Server
1
2
7
3.33
Priority Exchange Server
1
2
1
1.33
Ne tirons cependant pas de conclusions trop générales :
– ce sont des (petits) exemples ;
– les paramètres influencent les performances (p. ex. Cs , Ts , . . .).
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
102
Ordonnancement multiprocesseur
Introduction
Nous allons à présent considérer des systèmes composés de plusieurs
processeurs. Les applications temps-réel complexes nécessitent soit plusieurs
processeurs pour satisfaire les échéances soit des architectures
monoprocesseur très puissantes, coûteuses et volumineuse comme les
superordinateurs. Pour des raisons économiques ou pratiques (p. ex. pour les
systèmes embarqués) il sera préférable de distribuer les calculs sur une
plate-forme multiprocesseurs.
Nous considérons ici, des systèmes fortement couplés (strongly coupled systems).
La caractéristique principale de ce type de système est l’existence d’une base
commune du temps (pour l’ordonnancement global, cf. infra) et d’une
mémoire commune.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
L’ordonnancement sur une architecture multiprocesseur devra respecter les
contraintes suivantes :
$
103
– un processeur exécute au plus une tâche à chaque instant ;
– une tâche s’exécute sur au plus un processeur à chaque instant.
Taxonomie des plates-formes multiprocesseurs
Nous pouvons distinguer au moins les types de plates-formes suivantes (du
moins général au plus général)
Identiques Plate-forme multiprocesseur constituée de plusieurs processeurs
identiques, dans la mesure où ils sont interchangeables et ont la même
puissance de calcul.
Uniforme En revanche, chaque processeur dans d’une plate-forme uniforme
est caractérisé par sa capacité de calcul, avec l’interprétation suivante :
lorsqu’un travail s’exécute sur un processeur de capacité de calcul s
pendant t unités de temps il réalise s × t unités de travail.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Indépendante Pour ce type de plate-forme on définit un taux d’exécution ri,j
associé à chaque couple travail-processeur (Ji , P j ), avec l’interprétation
suivante : Ji réalise (r j,i × t) unités de travail lorqu’il s’exécute sur le
processeur Pi pendant t unités de temps.
$
104
Les plates-formes identiques sont donc des plates-formes homogènes, les
plates-formes uniformes et indépendantes sont des plates-formes hétérogènes.
Dans la suite, nous allons considérer le cas particulier des plates-formes
identiques.
La théorie de l’ordonnancement pour les systèmes temps réel
monoprocesseur est un domaine de recherche bien établi à ce jour, il y a de
nombreux travaux solides qui couvrent largement ce domaine de recherche.
En revanche, l’ordonnancement pour les systèmes temps réel
multiprocesseurs est une domaine de recherche relativement neuf, peu de
résultats existent à ce jour.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Familles d’algorithme multiprocesseur
$
105
On distingue en général deux types d’approche pour l’ordonnancement
multiprocesseurs :
Partitionnement il s’agit de partitionner l’ensemble des n tâches en m
sous-ensembles disjoints : τ1 , τ2 , . . . , τm et d’ordonnancer ensuite
l’ensemble τi sur le processeur Pi avec une stratégie d’ordonnancement
locale monoprocesseur. Les tâches ne sont donc pas autorisées à migrer
d’un processeur à l’autre.
Stratégie globale il s’agit d’appliquer sur l’entièreté de la plate-forme
multiprocesseur un stratégie d’ordonnancement globalement et
d’attribuer à chaque instant les m processeurs au m tâches les plus
prioritaires. Par exemple est utilisant  ou . Dans ce cas, outre la
préemption des tâches, on autorise aussi la migration de ces dernières ;
c.-à-d. qu’une tâche peut commencer son exécution sur un processeur P j ,
être premptée et reprendre son exécution ultérieurement sur un autre
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
processeur (disons Pi , i , j).
$
106
Ces deux familles d’algorithme sont incomparables :
– il existe des systèmes ordonnançables avec un partitionnement et pour
lesquels les approches globales échouent et
– il existe des systèmes ordonnançables avec une stratégie globale pour
lesquels aucun partitionnement n’est ordonnançable.
Techniques par partitionnement
Le problème de partitionnement est en fait un problème bien connu sous le
nom de Bin Packing dans le quel il faut placer dans m boîtes de tailles
identiques, k objets de tailles différentes. Dans notre cas, les objets sont les
tâches, leurs tailles sont leurs utilisations U(τi ), la taille de chaque boîte est
l’utilisation maximale que l’on peut atteindre : ln 2 pour , 1 pour .
Ce problème est NP-Hard, on utilise dès lors des heuristiques comme next-fit,
best-fit, etc. pour approcher la solution optimale.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Techniques globales
$
107
Le premier résultat significatif est l’absence d’algorithme optimal en ligne, mais
d’abord une définition.
Définition 18 (Algorithme en ligne) Les algorithmes d’ordonnancement en ligne
prennent leurs décisions à chaque instant sur base des caractéristiques des travaux
actifs arrivés jusque là, sans connaissance des travaux qui arriveront dans le futur.
Théorème 22 ([4]) Pour tout m > 1, aucun algorithme d’ordonnancement en ligne
et optimal ne peut exister pour des systèmes avec deux ou plus d’échéances distinctes.
Preuve : Nous prouvons la propriété pour le cas m = 2. Il sera facile de
constater que la preuve peut être généralisée pour m > 2. Supposons qu’il
existe un algorithme en ligne et optimal pour deux processeurs et considérons
le scénario suivant. À l’instant 0, trois travaux J1 , J2 et J3 arrivent avec
d1 = d2 = 4, d3 = 8, e1 = e2 = 2 et e3 = 4. L’algorithme ordonnance ces trois
travaux sur deux processeurs à partir de l’instant 0. Nous avons deux cas à
considérer, suivant que J3 s’exécute ou non dans l’intervalle [0, 2).
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Cas 1 : J3 s’exécute dans l’intervalle [0, 2). Dans ce cas, au moins l’un des deux
travaux J1 ou J2 n’a pas terminé son exécution à l’instant 2. Puisque J1 et J2
sont identiques, nous supposons que c’est J2 qui n’a pas terminé à l’instant 2.
À présent, considérons le scénario où J4 et J5 arrivent à l’instant 2 avec
d4 = d5 = 4 et e4 = e5 = 2. Clairement, l’ordonnancement construit par
l’algorithme optimal en ligne n’est pas ordonnançable. Cependant, le système
est faisable sur deux processeurs : mais il ne faut pas faire progresser le travail
J3 dans l’intervalle [0, 2).
Cas 2 : J3 ne s’exécute pas dans l’intervalle [0, 2). Dans ce cas, à l’instant 4, J3
s’est exécuté pour au plus deux unités. Donc, à l’instant 4, le temps de calcul
restant de J3 est au moins de deux unités. À présent, considérons le scénario
où J4 et J5 arrivent à l’instant 4 avec d4 = d5 = 8 et e4 = e5 = 4. À nouveau,
l’algorithme optimal en ligne échoue dans la construction d’un
ordonnancement alors que le système est faisable sur deux processeurs : mais
il faut faire progresser le travail J3 dans l’intervalle [0, 2).
&
Université Libre de Bruxelles
$
108
%
'
 019, Techniques avancées de systèmes d’exploitation
Anomalies d’ordonnancement multiprocesseur
$
109
Anomalie. Nous disons qu’un algorithme d’ordonnancement souffre
d’anomalies si un changement qui est intuitivement positif dans un système
ordonnançable peut le rendre non ordonnançable.
Changement intuitivement positif. C’est par exemple un changement qui
diminue le facteur d’utilisation d’une tâche comme augmenter la période,
diminuer un temps d’exécution (ce qui est équivalent à augmenter la vitesse
des processeurs). Cela peut être aussi de donner plus de ressources au
système comme ajouter des processeurs.
Les algorithmes d’ordonnancement multiprocesseurs sont sujet à des
anomalies.
Par exemple, pour les algorithmes à priorité fixe, il existe des systèmes qui
sont ordonnançables avec une assignation de priorité mais lorsque une
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
110
période est augmentée et les priorités conservées ces systèmes ne sont plus
ordonnançables !
C’est le cas du système τ1 = (T1 = 4, D1 = 2, C1 = 1), τ2 = (T2 = 5, D2 = 3, C2 =
3), τ3 = (T3 = 10, D3 = 8, C3 = 7)
Ce système est ordonnançable sur 2 processeurs (τ1 τ2 τ3 )
τ1
τ1
τ3
τ1
τ3
τ1
τ3
τ1
τ3
P1
0
3
1
τ2
4
5
τ3
7
8
10
τ2
15
13
τ2
τ3
16
17
τ2
P2
0
2
4
5
7
10
12
13
14
15
17
En revanche, si l’on augmente la période de τ1 de 4 à 5 (et que l’on ne change
pas les priorités), le système résultant n’est pas ordonnançable : τ3 rate son
échéance à l’instant 8.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
τ1
τ3
τ1
$
111
τ3
P1
0
1
4
5
τ2
6
7
6
τ2
P2
0
2
5
7
Nous n’en dirons pas d’avantage sur l’ordonnancement multiprocesseur qui
est une théorie à part entière.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
$
112
FIN
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
Bibliographie
$
113
[1] A, N., T, K.,  B, A. The end of the line for static
cyclic scheduling ? In Proceedings of the EuroMicro Conference on Real-Time
Systems (1993), pp. 36–41.
[2] A, N. C. Optimal priority assignment and feasibility of static
priority tasks with arbitrary start times. Tech. rep., 1991.
[3] G, J. Scheduling of hard real-time periodic systems with various kinds
of deadline and offsets contraints. PhD thesis, Université Libre de Bruxelles,
1999.
[4] H, K.,  L, J. On-line scheduling of real-time tasks. In
Real-Time Systems Symposium (1988).
[5] L, J., Ed. Handbook of Scheduling : Algorithms, Models, and Performance
Analysis. Chapman Hall/CRC Press, 2004. Chapter : Scheduling
Real-time Tasks : Algorithms and Complexity.
&
Université Libre de Bruxelles
%
'
 019, Techniques avancées de systèmes d’exploitation
[6] L, J. Y.-T.,  W, J. On the complexity of fixed-priority
scheduling of periodic, real-time tasks. Performance Evaluation 2 (1982),
237–250.
$
114
[7] L, C. L.,  L, J. W. Scheduling algorithms for
multiprogramming in a hard-real-time environment. Journal of the
Association for Computing Machinery 20, 1 (January 1973), 46–61.
[8] L, J. W. S. Real-Time Systems. Prentice-Hall, 2000.
[9] M, A. K.-L. Fundamental design problems of distributed systems for the
hard-real-time environment. PhD thesis, Massachusetts Institute of
Technology, 1983.
[10] S, L., R, R.,  L, J. Priority inheritance protocols : an
approach to real-time synchronization. IEEE Transactions on Computers 9,
39 (1990).
&
Université Libre de Bruxelles
%