• Aucun résultat trouvé

3.2.1 Dénitions et notions générales

Les applications temps réel sont des applications pour lesquelles la principale contrainte à respecter concerne le temps. Aujourd'hui les applications temps réel sont rencontrées dans de nombreux domaines stratégiques tels que la commande des procédés industriels, la robotique (mobile, télé robotique), les systèmes embarqués, les domaines des transports (automobile, aérospatial, navale), surveillance des centrales nucléaires, le traitement du signal et de l'image, etc.

Dans ce qui suit, nous nous intéressons à la notion importante de l'ordonnancement temps réel. En eet, un système informatique temps réel est assujetti à l'évolution dyna- mique d'un procédé à contrôler [35], pour nous le véhicule autonome sous-marin.

3.2 Eléments d'ordonnancement

3.2.2 Applications temps réel

On qualie de temps réel tout système informatique dont le fonctionnement est as- sujetti à l'évolution dynamique de l'état du système qu'il contrôle. On distingue dès lors deux parties dans l'application : le système informatique temps réel et le procédé auquel ce système est connecté et dont il doit contrôler le comportement [35].

Deux types de contraintes temporelles concernent une application temps réel. Il s'agit des contraintes strictes et des contraintes relatives. Les contraintes strictes concernent un système temps réel pour lequel une erreur au niveau du temps (ou faute temporelle telles que : non respect d'une échéance, arrivée d'un message après les délais, irrégularité d'une période d'échantillonnage, dispersion temporelle trop grande dans un lot de mesure, etc.) peut induire des dommages importants d'ordre matériel ou humain. Ainsi cette faute temporelle devient intolérable.

Les contraintes relatives concernent, quant à elles, les systèmes temps réel pour lesquels les fautes temporelles sont relativement tolérées.

Ces contraintes temporelles sont une des particularités des systèmes informatiques temps réel comparés aux systèmes informatiques classiques. Les systèmes temps réel doivent tenir compte et gérer ces contraintes. En plus de fournir un résultat correct à l'issue du calcul, ces résultats doivent être fournis à temps. L'exactitude du résultat ob- tenu n'est pas susante à elle seule si la contrainte de temps n'est pas respectée. Un résultat correct mais hors délai est un résultat faux [35].

Un système informatique temps réel peut être déni comme :

 un générateur cyclique d'actions qui capte la dynamique du procédé par échantillon- nage périodique et qui lui envoie des commandes au même rythme (on parle aussi de système "synchrone") ;

 un système réactif qui répond instantanément aux stimuli provenant du procédé selon la dynamique de celui-ci ;

 une organisation qui couvre ces deux aspects en ordonnançant l'exécution de tâches périodiques ou apériodiques ; on parle alors de système asynchrone.

L'ordonnancement des tâches, dans un système asynchrone, est chargé de faire res- pecter les échéances des requêtes du procédé ainsi que la résorption des conséquences des pannes. Il protège, donc, les tâches primordiales pour le procédé contre les fautes temporelles.

3.2.3 Caractéristiques des tâches

Modèle canonique des tâches temps réel

Le modèle canonique d'une tâche temps réel est un modèle qui regroupe les principaux paramètres temporels qui caractérisent ces tâches, et guide l'ordonnancement temps réel. Selon ce modèle une tâche est dénie par :

 des paramètres chronologiques qui dénotent des délais,  et des paramètres chronométriques qui indiquent des dates. Ces paramètres sont :

 r, sa date de réveil, autrement dit, le moment de déclenchement de la requête d'exé- cution ;

Chapitre 3 : Ordonnancement de tâches  R, son délai critique, le délai maximal acceptable pour son exécution ;

 P, sa période lorsqu'il s'agit d'une tâche périodique ;

 d = r+R, c'est la date au-delà de laquelle la tâche commet une faute temporelle ; Lorsqu'une tâche est périodique, ses dates de réveil successives, celles de chaque re- quêtes, sont :

rk= r0+ kP (3.1)

avec r0 : date de premier réveil et rk : date du ke réveil.

Ses échéances successives sont :

dk = rk+ R (3.2)

Si R=P, la tâche périodique est à échéance sur requête.

La qualité de l'ordonnancement sera d'autant meilleure que les valeurs de ces pa- ramètres seront exactes ; aussi la détermination de ces paramètres est-elle souvent un aspect important de l'analyse et de la conception d'une application temps réel. En parti- culier, il faut savoir si on néglige ou non les temps de commutation de tâches, les durées d'utilisation des primitives du système d'exploitation, les durées de prise en compte des interruptions et les durées d'exécution de l'ordonnanceur. Si l'on ne peut les négliger, l'analyse conceptuelle doit les estimer et les inclure dans la durée d'exécution de la tâche. D'autres paramètres, dérivés des paramètres de base, servent à suivre l'exécution de la tâche :

 u = C

P est le facteur d'utilisation du processeur pendant une période,

 ch = C

R est le facteur de charge du processeur,

 s est la date du début de l'exécution d'une tâche,  e est la date de n de l'exécution d'une tâche,

 R(t) = d − t est le délai critique résiduel ou délai critique dynamique,  C(t) est la durée d'exécution résiduelle à la date t,

 LN = R − C est la laxité nominale de la tâche et indique le retard maximal pour son début d'exécution s quand la tâche s'exécute seule,

 LN(t) = R(t) − C(t) est la laxité nominale résiduelle ou laxité dynamique ; c'est le retard maximal pour reprendre l'exécution quant la tâche s'exécute seule ; on a encore LN(t) = R + r − t − C(t)

 T R = e − r est le temps de réponse de la tâche,

 CH(t) = C(t)

R(t) est la charge résiduelle

3.3 Ensemble de tâches sur un processeur