• Aucun résultat trouvé

Nous considérons un ensemble Γ de N tâches temps-réel multiframe s’exécutant sur des nœuds identiques d’un système distribué. Les nœuds sont connectés par un réseau garantissant une latence bornée δ et une bande passante bp tel que un protocole d’accès permette un partage

garanti, i.e. l’accès au réseau pour l’émission et la réception de chaque nœud est assurée. Ces pro- priétés font partie des hypothèses de travail que nous avons énoncées et décrites au Chapitre 2, Section 2.4. Chaque nœud Nk dispose de son propre ordonnanceur préemptif exécutant Γk, un

sous-ensemble de Γ, tel que l’ensemble des sous-ensembles des tâches correspond à ensemble de tâche total (S

nΓn = Γ) et tel qu’il n’y ait pas d’intersection entre ces ensembles (TkΓk = ∅).

Chaque tâche T se caractérise par un tuple (T.E, T.d, T.p) où T.E, T.d, T.p représentent un vecteur de tous les temps d’exécution au pire cas des travaux, l’échéance relative des travaux et le temps de séparation entre l’activation de deux travaux indépendants i.e. la période de la tâche. Toutes les tâches suivent un cycle d’exécution tout comme le modèle multiframe [BCGM99], on parlera de cycle de la tâche : celui-ci se définit comme un multiple de la période Nj∗ T.p où Nj est le nombre de travaux de la tâche T . Nous faisons l’hypothèse que les effets de cache sont inclus dans le WCET de chaque travail et pour chaque tâche. De plus nous faisons l’hypothèse que le WCET peut varier d’un nœud à l’autre donc nous considérons que le WCET est défini comme la valeur maximum des valeurs de WCET sur les nœuds du système distribué où la tâche est susceptible d’être exécutée.

En utilisant un modèle de tâches cycliques, les intervalles de temps durant lesquels une tâche ne peut s’exécuter sont statiquement connus hors-ligne (entre T.d et T.p dans le pire des cas). Cette propriété est une règle générale pour l’élaboration de systèmes temps-réel cri- tiques [AD98]. Il doit être en effet possible de démontrer, à des fins de sûreté de fonctionnement, le comportement de systèmes temps-réel critiques, tel que les délais de bout en bout. De telles démonstrations ne peuvent s’effectuer que si le comportement temporel des tâches est statique- ment décrit.

De plus, on suppose la mémoire est partagée entre les tâches d’un même nœud et que chaque travail dispose de son propre espace d’adressage i.e. il est possible de les distinguer. De nouveau, grâce à la description statique du comportement des tâches, cette identification est faisable. On note s(T ) la taille totale de la tâche i.e. la mémoire utilisée pour son espace d’adressage, s(j) la taille mémoire de l’un des travaux et on définit la taille mémoire d’une tâche correspond à la somme des tailles mémoires de ces travaux : P

js(j) = s(T ). On suppose que chaque travail

dispose de la même empreinte mémoire. Nous envisageons ici uniquement des travaux indépen- dants, i.e. les travaux ne peuvent modifier qu’un sous-ensemble de leur propre espace d’adressage

s(j).

Nous considérons que la migration de tâches s’opère entre un nœud source, qui dispose ini- tialement de tout l’espace mémoire de la tâche à migrer, et un nœud de destination, qui est la cible de la migration et ne dispose d’aucune page mémoire en lien avec la tâche à migrer.

On considère une tâche spécifique s’exécutant sur chaque nœud lorsqu’une demande de mi- gration se produit, elle se comporte donc comme une tâche apériodique. Cette tâche appelée tâche système envoie ou reçoit exclusivement l’espace d’adressage de la tâche en cours de mi- gration, voir Fig. 4.1. Cette figure présente le comportement temporel d’une tâche multiframe migrante Tm et de la tâche additionnelle Tσ pour un transfert entre la fin du deuxième tra-

vail et le début du suivant. Le nœud source exécute une tâche système d’émission tandis que le nœud de destination exécute une tâche système de réception. Cette tâche notée Tσ délivre des travaux système tels que la somme des temps nécessaires aux transferts de l’intégralité de l’espace mémoire de la tâche à migrer soit égale à : P

jσ.e ∗ bp = s(Tm) où s(Tm) est la taille

de l’espace d’adressage de la tâche à migrer. Cette durée totale, i.e. P

jσ.e, est utilisée pour en-

Techniques de migration temps-réel strictes 61 plusieurs travaux de la tâche système peuvent être nécessaires pour effectuer cette migration, selon la politique de migration employée et la quantité de mémoire à transférer.

Tm

Ordonnancement possible sur le nœud source

Transfert réseau de la tâche migrante (Tm)

: Ressource inutilisée ou utilisée par d’autres tâches du nœud.

Ordonnancement possible sur le nœud de destination

j1 m 24 30 j2 m 12 18 j1 m 0 6 18 24 jm1 jm2 jm1 0 30

Figure 4.1 – Un exemple de tâche migrante Tm transférée par une tâche système composée

d’un seul travail.

Nous envisageons uniquement la migration de tâches migrables, dont nous allons donner la définition. Pour simplifier, prenons l’exemple d’une architecture à deux nœuds telle qu’un en- semble de tâches ΓS s’exécute sur le premier nœud NS et telle qu’un ensemble de tâches ΓD

s’exécute sur le second nœud ND. On suppose qu’il n’y a pas d’intersection entre ces ensembles : ΓS ∩ ΓD = ∅. Une tâche Tm ∈ ΓS est migrable de NS à ND ssi Γ0S et Γ0D sont deux ensembles ordonnançables sur leur nœuds respectifs NS et ND, tels que le premier ensemble reste ordon-

nançable sans la tâche migrable et le second avec celle-ci : Γ0S= ΓS− {Tm} et Γ0D = ΓD+ {Tm}. Pour vérifier cette propriété, il peut être nécessaire d’utiliser un protocole de changement de modes temps-réel en considérant deux modes : pour le nœud source un mode avec l’ensemble de tâches initial et un mode sans la tâche à migrer Tm, pour le nœud de destination un mode avec l’ensemble de tâche initial et un mode avec la nouvelle tâche migrée Tm. Dans un système à priorité fixe, le changement de mode peut induire un changement de priorité des tâches des nœuds concernés et si le réseau n’est pas synchrone (horloge unique), il faut pouvoir garan- tir la transition entre les tâches se terminant dans l’ancien mode et le début de l’exécution des tâches dans le nouveau. Pour un comparatif sur ces techniques, le lecteur peut se référer à [RC04]. Dans la suite de ces travaux, nous supposons que cette propriété est vérifiée pour toute tâche à migrer, c’est à dire dont l’exécution sur un nœud ne remet pas en cause l’ordonnançabilité de l’ensemble des tâches déjà allouées sur celui-ci. Cette hypothèse permet de nous concentrer sur l’ordonnançabilité pendant les transferts de migration. Nous supposons que nous connaissons statiquement si une tâche peut migrer, sur quel nœud et selon quelle échéance. Comme expliqué précédemment, cette hypothèse est valide dans le contexte de systèmes temps-réel critiques.