• Aucun résultat trouvé

Premi` ere partie

1.4. GIGUE ET TEMPS DE BLOCAGE 35

0000

1111 000111000111

0 ri ri +Ci ri+Di ri+Ti ri+Ti+Ci τi Ci 2Ji Bi Bi+Ci Di 2Ji Di

Fig. 1.4 – Mod`ele de tˆache p´eriodique 3

la premi`ere requˆete de τi, Ji la gigue d’activation maximale d’une de ses requˆetes, Ti leur p´eriode d’activation, Ci leur pire temps d’ex´ecution, Bi leur temps de blocage maximal par l’acc`es `a des ressources partag´ees et Di leur ´ech´eance.

La figure 1.4 illustre les notations utilis´ees pour ce mod`ele.

Notes Nous avons ici choisi de formaliser trois mod`eles diff´erents en partant du mod`ele 1 tr`es restreint pour relˆacher progressivement une partie des contraintes et aboutir au mod`ele 3. Cette s´eparation, qui nous a permis de d´efinir les diff´erentes caract´eristiques d’une tˆache temps r´eel p´eriodique, est arbitraire et nous servira par la suite `a pr´eciser le domaine d’application des r´esultats que nous pr´esenterons.

Chapitre 2

Ordonnancement

D´efinition 1 (Ordonnancement). Organisation, agencement m´ethodique des diff´erents ´el´ements d’un ensemble, des diverses phases d’une fabrication.

Dans un syst`eme informatique classique, dit `a «temps partag´e», l’ordonnanceur sert `a r´epartir les ressources processeur entre les diff´erents processus. L’objectif est double : rendre transparent pour l’utilisateur la gestion du ou des processeurs afin de donner l’illu-sion d’un syst`eme capable d’effectuer plusieurs tˆaches simultan´ement et empˆecher les situations de famine, o`u une seule tˆache occupe le processeur, empˆechant les autres de s’ex´ecuter.

Les tˆaches occupent le processeur `a tour de rˆole pour un temps born´e : l’algorithme

d’ordonnancement est appel´e Round Robin (RR). L’ordonnancement est dit

pr´eemp-tif car une tˆache peut ˆetre suspendue avant d’avoir termin´e son ex´ecution. Dans un tel contexte, il n’est pas n´ecessaire de connaˆıtre a priori une borne sur le temps d’ex´ecution des tˆaches. De mˆeme ces derni`eres peuvent avoir besoin d’acc´eder `a d’autres ressources, mais ces besoins n’interviennent pas lors des d´ecisions d’ordonnancement. L’ordonnanceur n’a aucune raison d’anticiper le comportement des tˆaches, d`es lors que l’on prend garde `a ne pas allouer toutes les ressources `a un seul processus.

Il en va autrement dans un syst`eme temps r´eel : les tˆaches et les ressources dont elles ont besoin doivent ˆetre connues `a l’avance. L’ordonnancement doit ˆetre faisable, c’est-`a-dire que toutes les contraintes temporelles doivent ˆetre respect´ees, en tenant compte des besoins en ressources. L’objectif est d’obtenir un ordonnancement pr´evisible, afin de pouvoir d´eterminer sa faisabilit´e.

Plusieurs caract´eristiques permettent de classer les algorithmes d’ordonnancement en familles :

– l’ordonnancement peut ˆetre oisif ou non oisif, c’est-`a-dire que l’on autorise ou non le processeur `a rester inactif alors que des tˆaches sont en attente ;

– il peut ˆetre ´etabli hors ligne ou dirig´e en ligne par des priorit´es,

– ces priorit´es peuvent ˆetre assign´ees de mani`ere statique ou dynamique ;

– enfin l’ordonnancement est dit pr´eemptif si une tˆache peut ˆetre suspendue au profit d’une autre pour ˆetre reprise par la suite, et non pr´eemptif sinon.

38 CHAPITRE 2. ORDONNANCEMENT

2.1 Ordonnancement hors ligne ou en ligne

Un ordonnancement hors ligne consiste `a ´ecrire de fa¸con statique un plan d’ordonnan-cement d´eterminant une succession p´eriodique de d´ecisions d’ordonnand’ordonnan-cement. Le travail de l’ordonnanceur se limite ensuite `a l’ex´ecution de ce plan.

Le principal avantage r´eside dans la tr`es faible complexit´e en ligne de la d´ecision d’or-donnancement [KFG+92], puisqu’il suffit de lire la table. La table peut ˆetre cr´e´ee de fa¸con

ad hoc[Foh94], optimale [JD90], ou par optimisation multi-crit`eres [EJ00]. L’objectif d’ob-tenir un ordonnancement pr´evisible est atteint, l’ordonnancement est mˆeme d´eterministe, c’est-`a-dire qu’il peut ˆetre ´etabli sans ex´ecuter le syst`eme.

Les inconv´enients sont pourtant nombreux. D’une part, plus le syst`eme se complexifie, plus la taille de la table augmente, engendrant une forte complexit´e en m´emoire. Ensuite, il n’existe pas toujours d’algorithme pour g´en´erer la table de fa¸con optimale. Cette table est alors construite de fa¸con ad hoc. Pour valider et perfectionner la table, seule l’ex´ecution, coˆuteuse, d’une s´erie de tests est possible. Changer un param`etre d’une tˆache, ou ajouter une tˆache peut radicalement changer la table, n´ecessitant de relancer tous les sc´enarios de test.

L’ordonnancement dirig´e par priorit´es, priority driven scheduling, s’effectue en ligne. Il consiste `a assigner une priorit´e `a chacune des tˆaches, et `a toujours choisir la tˆache avec la plus forte priorit´e lorsqu’une d´ecision d’ordonnancement doit ˆetre prise. Il existe de nombreuses politiques pour assigner les priorit´es aux tˆaches, certaines pouvant ˆetre statiques (les priorit´es sont ´etablies une fois pour toute), d’autres dynamiques (les priorit´es varient en fonction de param`etres d´ependant de l’ex´ecution).

L’ordonnancement produit est pr´evisible. La priorit´e d’une tˆache `a un instanttd´epend toujours d’un param`etre qui peut ˆetre pr´evu. Une analyse a priori du syst`eme, connaissant la politique d’ordonnancement, ou un contrˆole d’admission effectu´e dynamiquement doit permettre de garantir le respect des contraintes temps r´eel qui lui sont attach´ees.

2.2 Ordonnancement pr´eemptif ou non pr´eemptif

Il existe deux grandes sous familles d’ordonnanceurs : les algorithmes pr´eemptifs et les algorithmes non pr´eemptifs. Les premiers permettent qu’une tˆache soit interrompue pour ex´ecuter une autre tˆache, et ˆetre reprise par la suite. Avec un algorithme non pr´eemptif, une tˆache qui commence son ex´ecution va jusqu’au bout (ou peut ˆetre abandonn´ee dans certains cas). Nous consid´erons dans la suite de notre ´etude des syst`emes disposant d’un ordonnanceur pr´eemptif mais les m´ecanismes que nous proposons dans la troisi`eme partie peuvent ˆetre adapt´es aux syst`emes non pr´eemptifs.