CONSERVATOIRE NATIONAL DES ARTS ET METIERS PARIS



Documents pareils
Ordonnancement temps réel

Analyse du temps de réponse des systèmes temps réel

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Ordonnancement temps réel

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Introduction au temps réel

Annexe 6. Notions d ordonnancement.

1 Mesure de la performance d un système temps réel : la gigue

VIII- Circuits séquentiels. Mémoires

Conception des systèmes répartis

Rappels sur les suites - Algorithme

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

MEAD : temps réel et tolérance aux pannes pour CORBA

Chapitre 5 : Flot maximal dans un graphe

Définitions. Numéro à préciser. (Durée : )

Network musical jammin

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Cours A7 : Temps Réel

Projet Active Object

Métriques de performance pour les algorithmes et programmes parallèles

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Introduction aux systèmes temps réel. Iulian Ober IRIT

LE PROBLEME DU PLUS COURT CHEMIN

Chapitre 4 : Exclusion mutuelle

Windows Internet Name Service (WINS)

Partie 7 : Gestion de la mémoire

Un concept multi-centre de données traditionnel basé sur le DNS

Les indices à surplus constant

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Les diagrammes de modélisation

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

La surveillance réseau des Clouds privés

Exercices de dénombrement

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TSTI 2D CH X : Exemples de lois à densité 1

Continuité et dérivabilité d une fonction

Efficace et ciblée : La surveillance des signaux de télévision numérique (2)

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Mathématiques financières

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

CHAPITRE VIII : Les circuits avec résistances ohmiques

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

FORMAT FORMA ION SUR LA ION SUR LA GESTION DE PROJET & MS PROJECT

ASR1 TD7 : Un microprocesseur RISC 16 bits

Internet et Multimédia Exercices: flux multimédia

TURBOS Votre effet de levier sur mesure

document proposé sur le site «Sciences Physiques en BTS» : BTS AVA 2015

Chapitre 2 Le problème de l unicité des solutions

Cours de Systèmes d Exploitation

La fonction exponentielle

Algorithme. Table des matières

Cryptographie et fonctions à sens unique

Cours A7 : Temps Réel

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

White Paper - Livre Blanc

EXERCICE 4 (7 points ) (Commun à tous les candidats)

Consolidation de stockage

Introduction à la théorie des files d'attente. Claude Chaudet

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Orientations pour la gestion documentaire des courriels au gouvernement du Québec

CCP PSI Mathématiques 1 : un corrigé

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Introduction aux algorithmes répartis

Optimisation for Cloud Computing and Big Data

V- Manipulations de nombres en binaire

Université Paris-Dauphine DUMI2E 1ère année, Applications

Image d un intervalle par une fonction continue

Programmation linéaire

Représentation des Nombres

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Caractéristiques des ondes

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Analyse des coûts. 1 ère année DUT GEA, 2005/2006 Analyse des coûts

La Certification de la Sécurité des Automatismes de METEOR

Gouvernance des mesures de sécurité avec DCM-Manager. Présentation du 22 mai 2014

Correction du baccalauréat ES/L Métropole 20 juin 2014

CEG4566/CSI4541 Conception de systèmes temps réel

IV- Comment fonctionne un ordinateur?

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Erreurs les plus fréquentes Guide de dépannage

Temps Réel. Jérôme Pouiller Septembre 2011

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

!-.!#- $'( 1&) &) (,' &*- %,!

Fonctions de plusieurs variables

Manuel utilisateur. Version 1.6b

Systèmes et exécutifs temps-réel

Transcription:

CONSERVATOIRE NATIONAL DES ARTS ET METIERS PARIS MEMOIRE pour l examen probatoire du CNAM en INFORMATIQUE L ordonnancement temps réel des tâches et des messages Laurent Dehoey Soutenance : mai 2004 JURY : Président : Professeur C. Kaiser

Introduction...3 1 Ordonnancement temps réel (TR)... 4 1.1 Contraintes temporelles... 4 1.2 Modèle de tâche... 4 1.3 Définitions, propriétés... 5 1.3.1 Ordonnanceurs hors ligne / en ligne... 5 1.3.2 Configuration de tâches (CT) («task sets»)... 5 1.3.3 Ordonnançabilité... 6 1.4 Algorithmes de base pour tâches périodiques... 6 1.4.1 Rate Monotonic (RM)... 6 1.4.2 Deadline Monotonic (DM) ou Inverse Deadline (ID)... 7 1.4.3 Earliest Deadline First (EDF)... 7 1.4.4 Least Laxity First (LLF)... 7 1.5 Prise en compte des tâches non périodiques... 7 1.5.1 Tâches sporadiques... 8 1.5.2 Tâches apériodiques... 8 1.6 Ordonnancement de tâches et de messages interdépendants... 9 1.6.1 Contraintes de précédence... 9 1.6.2 Partage de ressources... 11 2 Ordonnancement temps réel distribué... 16 2.1 Placement des tâches et affectation des priorités... 16 2.2 Analyse holistique... 16 2.2.1 Ordonnancement conjoint des tâches et des messages... 17 2.2.2 Analyse holistique : Concepts de base... 18 2.2.3 Analyse holistique : Principes... 20 2.2.4 Cas pire - Pires temps de réponse... 21 2.2.5 Exemple d application : validation d un système TR distribué... 22 2.3 Placement et affectation des priorités : Etude de cas... 23 3 Middleware temps réel : RT-CORBA... 26 3.1 Middleware temps réel... 26 3.2 Introduction à CORBA... 26 3.3 CORBA temps réel (RT-CORBA)... 28 3.3.1 Architecture RT-CORBA... 28 3.3.2 Ordonnancement RT-CORBA... 31 3.3.3 TAO (The Ace ORB)... 33 3.3.4 Micro noyau ZEN... 34 Conclusion... 36 Bibliographie... 37 Glossaire/Abréviations... 38 Tables des illustrations... 39 Probatoire Ordonnancement temps réel des tâches et des messages 2

Introduction Les applications temps réel occupent de plus en plus de place parmi nos systèmes informatiques. Ces applications sont discrètes et ne font pas parler d elles tant qu elles fonctionnent correctement. Mais lorsque survient un problème, il est souvent la cause de conséquences graves ou médiatiques importantes. On pense aux centrales nucléaires, aux cracks boursiers, à la sonde martienne Pathfinder,... Le comportement exact et sûr de ces applications est directement relié à la maîtrise des contraintes temporelles des procédés physiques qu elles pilotent ou surveillent. Cette maîtrise passe par l ordonnancement temps réel des tâches et des messages, éléments de base logiques des applications. Le domaine complexe du temps réel a longtemps été confiné aux systèmes centralisés et monolithiques. Or les applications dans lesquelles l homme dépose sa confiance aujourd hui, sont de plus en plus imposantes et pour continuer à fonctionner correctement doivent se répartir, se distribuer, se délocaliser sur plusieurs sous systèmes. La conception de ces applications passe par des architectures multiprocesseurs au fonctionnement parallèle (fortement couplé) ou réparties à travers un réseau de communication. Le temps réel doit pouvoir utiliser et contrôler ces ressources nouvelles pour lui. Nous allons dans ce rapport étudier les possibilités et les limites des algorithmes classiques d ordonnancement temps réel, afin de comprendre comment il peut être possible d optimiser la conception et le contrôle des applications complexes réparties. Nous introduirons ensuite les problématiques de la validation d un système distribué, grâce à l analyse holistique, et celle de l affectation de priorités dans une architecture répartie. Une étude de cas dans l industrie automobile nous permettra d établir l utilité de méthodes automatiques de validation. Enfin, afin de faciliter le développement de ces nouvelles applications complexes, nous recenserons les plateformes distribuées qui offrent aux développeurs des services d ordonnancement temps réel, en particulier les extensions temps réel de CORBA et du langage java. Probatoire Ordonnancement temps réel des tâches et des messages 3

1 Ordonnancement temps réel (TR) «La validité d un système TR dépend de l exactitude des résultats qu il produit mais aussi de l instant de cette production : un résultat juste mais hors délai est un résultat inutilisable». Afin de comprendre la problématique de l ordonnancement temps réel dans les systèmes distribués et parallèles, nous allons dans cette première partie établir une terminologie, rappeler certains concepts et étudier le fonctionnement des principaux algorithmes classiques d ordonnancement TR de tâches et de messages dans les architectures centralisées. 1.1 Contraintes temporelles Les contraintes temporelles que le système TR doit supporter sont de deux natures : - strictes : les échéances ne doivent sous aucun prétexte êtres dépassées sous peine de conséquences graves pour l être humain ou le système lui même - relatives : les conséquences d un dépassement d échéance sont quantifiables et supportables pour le système dans une certaine mesure Le non respect de ces contraintes est appelé une faute temporelle. 1.2 Modèle de tâche La fonction d un algorithme d ordonnancement TR est de choisir la prochaine tâche à faire exécuter à un processeur. Ce choix se fait en prévoyance du respect dans un futur plus ou moins proche des contraintes temporelles. Pour cela il collecte des informations pertinentes sur les tâches qui composent l application. On distingue deux types de tâches : - Les tâches périodiques qui sont activées à intervalles réguliers - Les tâches non périodiques réparties en deux catégories : o Les tâches sporadiques à contraintes de temps strictes o Les tâches apériodiques à contraintes de temps relatives On définit pour une tâche périodique τ i, quatre paramètres temporels de base (cf. Figure 1.1): - r i : sa date d activation, ou de premier réveil. - C i : sa charge, la durée que le processeur doit lui consacrer pour la mener à terme. - D i : son délai critique, c est le temps qui est accordé à la τ i pour être exécutée. La date qu elle ne doit pas dépasser se nomme l échéance d i = r i +D i. Au-delà la tâche est en faute temporelle. - T i : sa période d activation On dérive de ces paramètres de base : - u i = C i /T i le facteur d utilisation du processeur par la tâche (u 1) - ch = C i /D i le facteur de charge du processeur (ch 1) - L=D i -C i Laxité nominale de la tâche. Le retard maximal pour son début d exécution Les paramètres dynamiques des tâches en fonction du temps t qui s écoule : - s i la date de début d exécution de la tâche (à ne pas confondre avec r i ) - e i la date de fin d exécution de la tâche - D i (t)=d i -t le délai critique résiduel à la date t : 0 D i (t) D i - C i (t) durée d exécution résiduelle à t : 0 C i (t) C i - L i (t)=d i (t)-c i (t) laxité nominale résiduelle. Notons que L i (t)=d i +r i -t-c i (t) - TR i = e i -r i le temps de réponse, on a 0 TR i D i quand la tâche n est pas en faute temporelle. Ce paramètre est important, nous le retrouverons au chapitre 1.6 - CH i (t)=c i (t)/d i (t) la charge résiduelle 0 CH i (t) u i CH(e i )=0 Probatoire Ordonnancement temps réel des tâches et des messages 4

C i + Activation Echéance Réactivation s i TR i e i Temps r i D i T i d i Figure 1.1 Modèle temporel d une tâche périodique Une tâche périodique est définie par sa notation : Tp(r i,c i,d i,t i ) Une tâche non périodique est définie par : Tap(r i,c i,d i ) 1.3 Définitions, propriétés 1.3.1 Ordonnanceurs hors ligne / en ligne - Un ordonnanceur hors ligne établit avant le lancement de l application une séquence fixe d exécution des tâches à partir de tous les paramètres de celles-ci. - Un ordonnanceur en ligne établit dynamiquement, avec ces mêmes paramètres, la séquence d exécution des tâches au fur et à mesure que surgissent les évènements au cours de l application : nouvelle tâche, dépassement d échéance, 1.3.2 Configuration de tâches (CT) («task sets») - On appelle configuration de tâche (CT) l ensemble des n tâches τ i qui constituent l application temps réel (ATR). - Les tâches sont dites à départ simultané si elles ont la même date de réveil r i. A départ échelonné sinon. - Le facteur d utilisation du processeur pour une CT de n tâches périodiques : n Ci U = i= 1 Ti - Le facteur de charge du processeur pour une CT de n tâches périodiques : n Ci CH = i= 1 Di - Laxité du processeur : LP(t) intervalle de temps pendant lequel le processeur peut rester inactif sans perdre le contrôle du respect des échéances. Pour tout t on doit avoir LP(t) 0. - Pour calculer cette laxité on a besoin de calculer la laxité conditionnelle de chaque tâche τ i LC ( t) = D i i 1 i j= 0 C ( t) où la somme en j se fait sur le temps d exécution de j Probatoire Ordonnancement temps réel des tâches et des messages 5

toutes les tâches qui sont devant la tâche i dans la séquence de planification considérée. On alors LP(t)=Min{LC i (t)} - Temps creux («processor idle time») : suite d intervalles de temps, dépendante de la configuration de tâches et de son ordonnancement, pendant laquelle LP(t) reste strictement positive 1.3.3 Ordonnançabilité - Séquence valide ou faisable: une séquence d ordonnancement de tâches calculée par un algorithme d ordonnancement est dite valide si toutes les tâches de la CT respectent leurs contraintes temporelles. - Configuration ordonnançable : une CT est dite ordonnançable si l on est sûr qu il existe au moins un algorithme capable de fournir une séquence valide. - Algorithme optimal / ordonnanceur optimal : les propriétés des CT du paragraphe 1.3.2 ci-dessus peuvent aider à choisir une politique d ordonnancement. Un ordonnanceur est optimal s il produit systématiquement une séquence valide pour toute configuration que l on sait ordonnançable. - Test d ordonnançabilité : ce test permet de vérifier qu une CT périodique pourra être transformée en une séquence valide par un ordonnanceur donné. - Test d acceptabilité ou de garantie : dans un ordonnancement en ligne, une nouvelle tâche pourra être ajoutée à une séquence déjà validée, si la nouvelle séquence est elle-même valide. L ordonnanceur peut pour ce choix se baser encore sur les propriétés des CT du paragraphe 1.3.2 ci-dessus. - Période d étude : pour une configuration de tâches périodiques, la séquence valide se répète de manière cyclique sur cette période o pour une configuration de tâches périodiques à départ simultané elle est égale à [0, PPCM(T i )] o pour une configuration de tâches périodiques i et apériodiques j à départ échelonné elle est égale à [Min(ri0), Max{ri0,(rj0+Dj)}+2*PPCM(Ti)] 1 1.4 Algorithmes de base pour tâches périodiques Il existe quatre grands algorithmes classiques d ordonnancement temps réel. Les deux premiers sont basés sur des priorités fixes, et utilisés dans les analyses d ordonnancement hors-ligne. Les deux suivants utilisent comme critère de priorité des caractéristiques dynamiques du modèle de tâche et sont utilisés pour les calculs d ordonnançabilité en ligne. 1.4.1 Rate Monotonic (RM) Les tâches à échéance sur requête (D i =T i ) aux périodes les plus courtes passent en premières Une condition suffisante pour le test d ordonnançabilité portant sur le facteur d utilisation du n Ci 1 / n) processeur n(2 1) i= 1 Ti Soient les trois tâches τ 1 (0, 20, 100, 100), τ 2 (0,40,150,150) et τ 3 (0,100,350,350) à échéance sur requête (cf Figure 1.2). La période d étude est PPCM(100, 150, 350)=2 2 *3*5 2 *7=2100 3 Ci 1/ 3) On a U 1 =0.2, U 2 =0.267, U 3 =0.286 et = 0.753 3(2 1) = 0. 780. La condition i= 1 Ti suffisante est vérifiée. Une séquence valide existe pour ordonnancer ces 3 tâches en respectant leurs échéances. 1 Plus Petit Commun Multiple Probatoire Ordonnancement temps réel des tâches et des messages 6

Figure 1.2 Exemple d ordonnancement Rate Monotonic Préemptif 1.4.2 Deadline Monotonic (DM) ou Inverse Deadline (ID) Les tâches aux délais critiques les plus courts passent en premières Une condition suffisante pour le test d ordonnançabilité porte sur le facteur de charge du n Ci 1/ n) processeur: n(2 1) i= 1 Di On remarque que si T i =D i on se retrouve à ordonnancer selon RM. 1.4.3 Earliest Deadline First (EDF) Les tâches à la plus proche échéance d i =(D i+ r i ) passent en premières Condition nécessaire et suffisante pour le test d ordonnançabilité de tâches périodiques à n Ci échéance sur requête : 1 i= 1 Ti n Ci Une condition suffisante pour des tâches quelconques (cf. paragraphe 1.5) : 1 D n Ci Une condition nécessaire pour des tâches quelconques (cf. paragraphe 2.2.2) : 1 T i= 1 i= 1 i i Figure 1.3 Exemple d ordonnancement EDF de tâches à échéance sur requête 1.4.4 Least Laxity First (LLF) Les tâches de plus petite laxité résiduelle passent en premières. Les séquences fournies par LLF sont identiques à EDF quand les priorités utilisées sont celles calculées au moment du réveil. L intérêt est alors de calculer pour chaque instant t la priorité des tâches en attente, mais alors on introduit des changements de contexte qui peuvent devenir non négligeables. 1.5 Prise en compte des tâches non périodiques Les applications temps réel peuvent avoir à prendre en compte des évènements non périodiques comme les alarmes ou les interventions de l opérateur. Ces tâches doivent être exécutées sans tarder car elles ont, comme les tâches périodiques, leurs propres échéances strictes ou relatives. Probatoire Ordonnancement temps réel des tâches et des messages 7

1.5.1 Tâches sporadiques Les deux algorithmes dynamiques vus au paragraphe 1.4 ci-dessus (EDF et LLF) peuvent être utilisés pour ordonnancer des combinaisons de tâches périodiques et non périodiques à contraintes strictes, car leur condition suffisante d ordonnançabilité ne fait pas intervenir la période mais le délai critique ou la laxité nominale (qui peut être obtenue à partir du délai critique): - Si l on connaît la borne supérieure d utilisation du processeur (C i ) on préféra LLF, car il favorise les tâches qui ont le moins de marge pour leur exécution. On le préférera donc pour des tâches sporadiques (contraintes strictes) - Si C i n est pas connue, le choix se portera alors sur EDF. Le respect des échéances n est alors plus assuré, en particulier quand le système est en surcharge. On le préférera pour des tâches apériodiques (contraintes relatives) Si les systèmes temps réel garantissent le respect des échéances aux tâches périodiques, ils doivent aussi pouvoir offrir aux tâches apériodiques (contraintes relatives) des temps de réponses minimaux (TR i= e i -r i ). Les algorithmes vus plus haut ne prennent pas en compte ce temps de réponse. 1.5.2 Tâches apériodiques Ce service de «Best Effort» offert aux tâches apériodiques peut être réalisé grâce aux mécanismes suivants : - Traitement d arrière-plan («background scheduling») - Serveurs de tâches : o Traitement par scrutation («polling server») o Serveur différé («deferrable server») o Serveur sporadique («sporadic server») - Slack Stealer («voleur négligent») L idée est d intégrer un processus périodique au système qui va se charger d ordonnancer les tâches apériodiques le plus judicieusement possible entre les tâches périodiques. Nous étudierons dans le cadre de ce mémoire le serveur sporadique (cf. Figure 1.4) Figure 1.4 Exemple d ordonnancement avec un serveur sporadique Probatoire Ordonnancement temps réel des tâches et des messages 8

1- L algorithme «Sporadic Server» créé une tâche périodique τ s, de capacité C s (sa charge dans le modèle de tâche) et de période T s, ordonnançable selon la méthode Rate Monotonic. La valeur de la période est choisie judicieusement pour que les tâches périodiques puissent s exécuter avec un niveau de priorité satisfaisant : T s =5 dans l exemple de la Figure 1.4, cette tâche est la plus prioritaire, les tâches apériodiques aussi, donc. 2- Cette capacité de traitement est utilisée pour traiter les tâches apériodiques qui arrivent dans le système. Au moment où le serveur épuise sa capacité de traitement, qui peut être comparée à la diminution progressive de la charge résiduelle du modèle de tâche C i (t), il calcule sa prochaine date de réveil comme la somme de la date à laquelle il était passé à l état «élu» (t=4, 10 et 15 dans la Figure 1.4, c est le «start time» s i du modèle de tâche,) avec sa période T s : r s,k+1 =s s,k +T s =4+5=9. 3- Au moment de son réveil (r s,k+1 ), il refait le plein de sa capacité C s. Si aucune tâche apériodique n est à ordonnancer, il se met en attente, et laisse sa place aux éventuelles tâches périodiques (t=0, 9). 4- Quand une ou plusieurs tâches apériodiques se présentent, il les exécute pendant l intervalle de temps, la capacité, la charge résiduelle, qui lui reste (t = [4,6] & [10,12]) 5- Si sa capacité est épuisée, alors qu il lui reste des tâches à exécuter, il est préempté, en ayant pris soin d avoir calculé sa prochaine date de réveil comme décrit au point 2. (t=12, r s,k+1 =s s,k +Ts=10+5=15) 6- Si sa capacité n est pas vide et qu il n a plus de tâche à exécuter, il se met en attente (t=16) pour une prochaine tâche apériodique en conservant son niveau de capacité. Nous avons vu que pour prendre en compte les tâches apériodiques on doit soit les transformer en pseudo tâches périodiques pour assurer un respect de leur échéance stricte sans trop se soucier de leur temps de réponse, soit créer une tâche périodique complexe qui se chargera de les exécuter en minimisant leur temps de réponse. On retrouvera cette problématique au chapitre 3.3.3. 1.6 Ordonnancement de tâches et de messages interdépendants Dans les paragraphes précédents, l ordre d exécution des tâches ne dépendait que de contraintes temporelles propres à chacune. Or quand le concepteur d une l ATR a prévu, par exemple, qu une tâche alarme se déclenche, c est pour que l ATR puissent réagir à la situation, c'est-à-dire en exécutant d autres tâches. On imagine mal ces tâches se déclencher avant l alarme, ou l alarme après ces tâches. D autre part le message envoyé par l alarme doit à un moment ou un autre être déposé dans un emplacement mémoire ou envoyé à travers un réseau ou un bus mémoire. Autant d «emplacements» pour lesquels on doit garantir à la tâche ou au message un accès exclusif. C est la problématique complexe, et récurrente dans tous les systèmes d informations évolués, des contraintes de précédence et du partage des ressources en exclusion mutuelle. Les ATR, avec le respect des contraintes temporelles, rajoutent des degrés de complexité croissants à cette problématique selon qu elles s exécutent dans un environnement centralisé, multiprocesseur ou réparti. 1.6.1 Contraintes de précédence On modélise les contraintes de précédence entre tâches par un graphe de précédence. Si une tâche j doit attendre la fin d une tâche i, noté τ i τ j, avant de s exécuter alors on doit avoir r j r i et Priorité i Priorité j en concordance avec l algorithme d ordonnancement utilisé. Nous considérerons dans un premier temps que des tâches liées entre elles s exécutent un même nombre de fois et que si l une est périodique les autres le sont aussi et avec T 0 =T 1 = =T n. Probatoire Ordonnancement temps réel des tâches et des messages 9

1.6.1.1 Ordonnancement RM La tâche prioritaire est celle de période minimale. Le but est alors de transformer, hors ligne, les paramètres des tâches liées par des contraintes de précédence en une configuration de tâches indépendantes pour laquelle on peut vérifier le test d ordonnançabilité. A la Figure 1.5 composée de deux graphes est une configuration de six tâches à départ simultané, on associe les priorités RM du Tableau 1-1 τ 1 τ 2 τ 3 Τ 6 τ 4 τ 5 Figure 1.5 Exemple de graphe de précédence τ 1 τ 2 τ 3 τ 4 τ 5 τ 6 6 5 4 3 2 1 Tableau 1-1 Priorités respectant les contraintes de la Figure 1.6 et celles de RM On modifie ensuite les dates de réveil de sorte que : r j * Max{r j,r i * } (où r i * est la date de réveil modifiée de τ i ). Dans cette configuration de tâches à départ simultané r i,0 n =0 1.6.1.2 Ordonnancement EDF Le but est le même que pour RM. Le paramètre à modifier en plus de r i est l échéance d i. La Figure 1.6 indique le principe des modifications à apporter aux paramètres des tâches : - r j * Max{( r i * +C i ), r j } la date de réveil de la tâche τ j est supérieure à toutes celles de ses prédécesseurs immédiats τ i, augmentées de leur durées d exécution C i. - d i * Min{(d j * -C j ), d i } l échéance de la tâche τ j est inférieure à toutes les échéances de ses successeurs immédiats τ i diminuées de leurs durées d exécution C i. Figure 1.6 Modification des paramètres de tâches dépendantes pour EDF On calcule r j * (r 2 * dans l exemple) en partant des tâches qui n ont pas de prédécesseurs : τ 1 On calcule d j * (d 2 * dans l exemple) en partant des tâches qui n ont pas de successeurs : τ 3 Probatoire Ordonnancement temps réel des tâches et des messages 10

1.6.1.3 Exemple de traitement de contraintes de précédence Soit cinq tâches τ 1, τ 2, τ 3, τ 4, τ 5 de périodes identiques liées entre elles selon le graphe de précédence de la Figure 1.7. Le Tableau 1-2 donne les transformations de leurs paramètres pour être ordonnançables selon RM et EDF τ 1 τ 3 τ 2 τ 4 τ 5 Figure 1.7 Graphe de précédence de cinq tâches d une application temps réel Paramètres des tâches RM EDF Tâche r i C i d i * r i Prio i * r i * d i τ 1 0 1 5 0 3 0 3 τ 2 5 2 7 5 4 5 7 τ 3 0 2 5 0 2 1 5 τ 4 0 1 10 5 1 7 9 τ 5 0 3 12 5 0 8 12 Tableau 1-2 Modifications des paramètres des tâches pour prendre en compte les contraintes de précédence On note que l affectation des priorités (4 est la priorité la plus forte) se fait en observant les précédences : Si on a τ i τ j alors Prio i Prio j S il semble simple à priori de déterminer ces priorités, et donc l ordonnancement quand les tâches ne partagent pas de ressources critiques, il en va tout autrement, quand par exemple, elles doivent s échanger des messages sur un réseau de communication. On peut alors considérer ce réseau comme une ressource critique que se partagent chacune des tâches en exclusion mutuelle, et dans laquelle elles déposent les messages. Cet angle de vue ne va pas sans poser de graves problèmes d ordonnancement. Il en existe un autre que nous étudierons au chapitre 2.2.4. 1.6.2 Partage de ressources Les deux risques encourus dans un système doté d un ordonnancement préemptif classique sont l inversion de priorité et l interblocage. Les ATR rajoute une contrainte : le prédictibilité des temps de réponse (cf. modèle de tâche page 4) 1.6.2.1 Calcul du pire temps de réponse Dans Figure 1.8 la tâche τ 1 de priorité plus faible que τ 2 s exécute en premier, elle demande la ressource R en exclusion mutuelle et l obtient. La tâche τ 2 se lance, et préempte tout de suite τ 1. Elle s exécute jusqu à sa demande de la ressource R, elle ne l obtient pas et se met en attente. τ 1 est élue jusqu à ce qu elle lâche R. τ 2 est à nouveau élue et continu son exécution en ayant obtenu la ressource R enfin libre. Probatoire Ordonnancement temps réel des tâches et des messages 11

Figure 1.8 Problématique de la prédictibilité du temps de réponse La question est, et c est la problématique du partage de ressources dans les systèmes temps réel distribués, que vaut TR 2 le temps de réponse de τ 2, et TR 1? Peut-on en fixer une borne supérieure et la respecter pour chacune des tâches? Si on peut répondre par l affirmative à cette question, alors oui la CT est ordonnançable sous réserve qu il n y a pas de phénomène d inversion de priorité, ni d interblocage. 1.6.2.1.1 Cas d une configuration de tâches indépendantes : Soit τ 0 une tâche dans une CT quelconque, si τ 0 est la plus prioritaire de toutes les tâches alors son pire temps de réponse TR 0 = C 0 son pire temps d exécution. Elle ne peut en effet pas être préemptée par définition. Si elle est par contre d une priorité intermédiaire, notons τ HPT l ensemble des tâches plus prioritaires que τ 0 alors : Pour un ensemble de tâches de même période ou apériodiques on a : TR + [Éq. 1-1] Pour un ensemble de tâches périodiques de périodes différentes on a : TR [Éq. 1-2] 0 C 0 0 C 0 C i i HPT + i HPT T 0 Ci Ti 1.6.2.1.2 Cas d une configuration de tâches partageant des ressources : Dans la Figure 1.8 le temps de réponse de la tâche τ 2, R 2 est la somme de son pire temps d exécution, C 2, et du facteur de blocage B 2 qui correspond au temps d utilisation de la ressource R par τ 1 : R 2 =C 2 +B 2. A partir de l exemple de la Figure 1.8, imaginons une autre combinaison : τ 1 se lance en premier et prend la ressource dès son début d exécution, et elle ne la relâchera qu à la fin de son exécution. τ 2 se lance tout de suite après τ 1 (r 1 +ε), et demande tout de suite aussi la ressource R. R étant déjà verrouillée par τ 1, τ 2 doit se mettre en attente pendant toute la durée d exécution de τ 1. On a B 2 =C 1 et donc TR 2 =C 2 +C 1. On montre d une manière générale que le pire temps de réponse TR 0 d une tâche τ 0, tâche la plus prioritaire d une ATR composée de n+1 tâches et de m ressources partagées avec la tâche τ 0, est donné par la relation : TR 0 C0 + Min(n, m) CR max [Éq. 1-3] On définit CR max comme suit : Soit CR i,q le temps maximal pendant lequel la tâche τ i utilise la ressource R q. CR max,q est le temps maximal pendant lequel la ressource R q est utilisée en exclusion mutuelle par une des tâches τ i et CR i,max le temps maximal qu une tâche τ i a passé en exclusion mutuelle avec une des ressource R q. Probatoire Ordonnancement temps réel des tâches et des messages 12

Prenons le cas maintenant d une tâche τ 0 de priorité intermédiaire. La CT est composée de n 1 tâches plus prioritaires que τ 0 (l ensemble HPT), de n 2 tâches moins prioritaires que τ 0, et toutes partagent m ressources en exclusion mutuelle avec τ 0. On donne un exemple avec n 1 =1, n 2 =2 et m=3 dans la Figure 1.9. Le pire temps de réponse TR 0 pour la tâche τ 0 est déduit des équations [Éq. 1-2] et [Éq. 1-3] : T0 TR 0 C 0 + Min( n2, m) CRmax + Ci i HPT Ti [Éq. 1-4] Figure 1.9 Pire temps de réponse d une tâche en partage de ressources critiques Or ce calcul, qui nous sert à vérifier que le système ne va pas commettre de faute temporelle, peut-être mis en défaut si l ordonnanceur interne à priorité fixe sous jacent ne respecte pas les spécifications implicites de départ : «une tâche τ 0 de priorité donnée, déclenchée à la date r 0, s exécute dès qu aucune tâche de priorité supérieure ne s exécute et dès qu aucune tâche de priorité inférieure n utilise plus une ressource critique dont τ 0 a besoin et que la tâche occupait à la date r 0». Cette mise en défaut à laquelle il faut absolument palier est le fait de l inversion de priorité et/ou de l interblocage 1.6.2.2 L inversion de priorité On rappel que le phénomène d inversion de priorité n est pas propre au temps réel. On en donne néanmoins un exemple Figure 1.10 et une méthode de résolution au paragraphe 1.6.2.4 afin de mettre au jour la problématique de l envoi de message dans un système distribué. Figure 1.10 Exemple d inversion de priorité Soit quatre tâches {τ 1, τ 2, τ 3, τ 4 } de priorité fixe décroissantes. Les tâches τ 2 et τ 4 se partagent en exclusion mutuelle la ressource critique R. On observe le temps de réponse de la tâche τ 2. Probatoire Ordonnancement temps réel des tâches et des messages 13

τ 4 s exécute, demande R et l obtient. τ 2 s exécute. τ 4 passe à l état «prêt» en détenant le verrou sur R. τ 2 ne demande pas tout de suite R. Pendant ce temps la tâche τ 3 lance sa requête d exécution. τ 3 moins prioritaire que τ 2 doit attendre : elle passe à l état «prêt». τ 2 demande alors la ressource R toujours détenue par τ 4. τ 2 doit s arrêter et attendre dans l état «bloqué». τ 3 qui est prête et plus prioritaire que τ 4, prête elle aussi néanmoins, s exécute. τ 1 plus prioritaire que τ 3 s exécute à son tour en préemptant τ 3 qui repasse à l état «prêt». τ 1 se termine. La prochaine tâche prête et prioritaire est τ 3, qui se termine enfin. τ 4 seule tâche prête s exécute et libère R en se terminant. τ 2 est débloquée et peut enfin s exécuter et se terminer. On vérifie bien que le pire temps de réponse de la tâche τ 2 dépend du temps d exécution en section critique des tâches moins prioritaires que τ 2 avec qui elle partage des ressources critiques, τ 4 ici, et du temps d exécution des tâches plus prioritaires que τ 2, τ 1 ici. Mais le temps d exécution de la tâche τ 3 vient ici se rajouter alors qu elle ne partage aucune ressource critique et qu elle est moins prioritaire que τ 2. L équation [Éq. 1-4] est mise en défaut ce qui implique que des fautes temporelles, non prévues, car on pensait avoir vérifié une condition suffisante, peuvent avoir lieu. 2 1.6.2.3 L interblocage L utilisation des ressources du système se fait souvent de manière imbriquée (cf. Figure 1.9). Supposons deux tâches τ 1 et τ 2 chacune ayant besoin de deux ressources critiques R 1 et R 2. τ 1 demande R 1 et l obtient. τ 2 se lance à son tour demande R 2 et l obtient. τ 2 demande ensuite R 1. τ 2 se bloque en attente de R 1 détenue par τ 1. τ 1 demande alors à son tour R 1 détenue par τ 2. τ 1 se bloque en attente de R 2. Les deux tâches sont en attente l une de l autre. C est l interblocage. Deux solutions existent pour prévenir l interblocage : - La méthode des classes ordonnées dans laquelle on programme le même ordre d attribution des ressources à toutes les tâches. C est une méthode statique qui se décide avant l exécution. - L algorithme du banquier est une méthode de prévention dynamique : une tâche avant de s exécuter précise au banquier toute les ressources dont elle aura besoin. Le banquier qui connaît toutes les tâches s exécutant et les ressources utilisables par elles, accepte ou pas les demandes de ressource au fur et à mesure qu elles lui arrivent. Dans notre cas τ 2 est bloquée dès sa demande de R 2 car le banquier sait que τ 1 va la lui demander. 1.6.2.4 Solutions à l inversion de priorité et à l interblocage Le protocole de la priorité plafonnée fournit une solution à l exemple de la Figure 1.10 ainsi qu au problème de l interblocage. Nous en rappelons le principe : - Inversion de priorité : Une tâche τ en section critique hérite de la priorité d une tâche τ souhaitant accéder à la même ressource si la priorité de τ est supérieure à celle de τ. τ récupère la priorité qu elle avait avant quand elle libère la ressource. C est le mécanisme d héritage de priorité simple. - Interblocage : On assigne à une ressource R la priorité la plus élevée des tâches qui en demanderont l accès exclusif. C est une valeur de seuil. On accorde cette ressource à une tâche qui en fait la demande, si la ressource est libre et si la priorité de cette tâche est supérieure à tous les seuils de toutes les ressources détenues par toutes des tâches en cours d exécution à ce moment là. 2 On pourra se référer à la littérature traitant des problèmes rencontrés par la sonde Pathfinder sur le sol martien, système distribué s il en est Probatoire Ordonnancement temps réel des tâches et des messages 14

L implémentation du mécanisme d héritage de priorité dans un système temps réel permet de pouvoir utiliser [Éq. 1-4] pour un test d ordonnançabilité (cf. Figure 1.11), solution qui permet aussi de borner le temps de blocage Bi, sur l attente d une ressource, d une tâche. Figure 1.11 Résolution de l inversion de priorité par le mécanisme de l héritage de priorité Mais ce mécanisme d héritage de priorité plafonnée est mis en échec quand les tâches s exécutent sur un système multiprocesseur : si τ 1, τ 3 et τ 4 s exécutent sur un processeur P 1, et la tâche τ 2 sur un processeur P 2, P 2 ne pourra pas modifier la priorité de τ 4 sans introduire de grave disfonctionnement sur le processeur P 1. Le phénomène d inversion de priorité sur l accès à une ressource critique devra être résolu autrement sur ces architectures parallèles et distribuées. De plus ces mécanismes généraux de protection sont gourmands en temps de calcul : il n est pas toujours possible de les implanter dans des systèmes embarqués aux ressources limitées. C est le cas notamment dans les systèmes temps réel utilisés dans l industrie automobile : les problèmes d inversion de priorité perdurant, les choix des priorités se feront alors à l aide d ordonnanceurs hors ligne. Dans ce premier chapitre nous avons acquis les connaissances préalables à la compréhension d une méthode originale pour ordonnancer les tâches et les messages dans un environnement temps réel distribué : l analyse holistique. Probatoire Ordonnancement temps réel des tâches et des messages 15

2 Ordonnancement temps réel distribué Dans un système temps réel distribué, le réseau est l unique moyen de communiquer entre les processeurs distants. Il devient une ressource que les tâches doivent se partager. On doit alors en plus de l ordonnancement, c'est-à-dire l affectation de priorités aux tâches, résoudre des problèmes non soupçonnés dans les architectures TR monoprocesseurs : - le placement des tâches sur les processeurs - la migration d une tâche vers un autre processeur - la synchronisation des tâches distribuées entre elles - les protocoles d accès aux ressources partagées distribuées Autant de contraintes qui vont fortement influer sur les performances du système. 2.1 Placement des tâches et affectation des priorités Lorsque on conçoit un système distribué temps réel sa structure logicielle est fortement dépendante de sa structure matérielle. A la différence de la problématique étudiée tout au long du chapitre précédent, l ordonnancement des tâches ne dépend plus uniquement des caractéristiques temporelles de ces tâches, mais aussi de leurs répartitions sur les différents processeurs, locaux ou distants, ainsi que des caractéristiques du réseau de communication à travers lequel elles s échangent des messages. Le choix des fonctions, les tâches, attribuées aux différents sous-systèmes va alors totalement «impacter» les procédures de validation temporelle. Or si cette étape de validation échoue, c'est-à-dire qu on ne trouve pas d ordonnancement valide, il faudra repenser l architecture logicielle pour ensuite la revalider Cette procédure itérative est longue et fastidieuse. On pourrait souhaiter qu à partir d une configuration logicielle établie grossièrement, un processus accomplisse cette procédure itérative et, tout en affinant le système, établisse les priorités des tâches et des messages qui garantiront le respect des contraintes temporelles. Ce processus, «branch and bound», existe mais son étude sort du cadre de ce mémoire. Nous donnons néanmoins un exemple de son application dans un système embarqué d une automobile en fin de chapitre Nous présenterons la méthode de validation temporelle utilisée lors des étapes itératives de ce processus. Cette méthode, l analyse holistique, peut être sortie de son cadre et servir à valider tout système temps réel distribué dans lequel les tâches seraient déjà placées et les priorités déjà affectées. C est une analyse hors ligne. 2.2 Analyse holistique 3 Les algorithmes d ordonnancement des systèmes d exploitation temps réel qui supportent les applications de l industrie sont en général des ordonnanceurs en ligne basés sur les 3 relatif à l holisme nom masculin (du gr. holos, entier) [PHILOS. ] En épistémologie ou en sciences humaines, doctrine qui ramène la connaissance du particulier, de l'individuel à celle de l'ensemble, du tout dans lequel il s'inscrit. 3 Probatoire Ordonnancement temps réel des tâches et des messages 16

algorithmes à priorité fixe (RM), ou dynamique selon l échéance la plus proche (EDF). L analyse holistique est capable de valider des ordonnancements sur ces architectures hétérogènes. Il s agit alors de montrer qu un ordonnancement est valide si le temps de réponse de toutes les tâches dont une tâche τ i doit attendre la fin d exécution pour s activer, est inférieur à la date d activation s i maximale de τ i. Ceci pour lui permettre de respecter son échéance d i. Cela correspond à chercher le «pire cas» d exécution de ces tâches et à ne pas lancer τ i avant que ce pire temps d exécution ne soit terminé. Nous l avons vu (cf. chapitre 1.2 ), un ordonnancement est valide si le temps de réponse de chacune des tâches est inférieur à son délai critique (TR i D i ). 2.2.1 Ordonnancement conjoint des tâches et des messages. 2.2.1.1 Réseau, ressource critique Si le réseau du système est vu comme une ressource critique partagé par toutes les tâches, la transmission d un message peut engendrer un phénomène d inversion de priorité comme on l a compris au chapitre 1.6.2.2. La transmission d un message quelconque ne peut en effet être interrompue par l émission d un message prioritaire. 2.2.1.2 Pire temps d exécution On ne connaît pas le temps exact d exécution des tâches, mais seulement le pire temps d exécution (C i ). La Figure 2.1 met en évidence le cas d une tâche qui s exécute plus vite que prévu, bloquant l envoi d un message plus prioritaire ce qui provoque une faute temporelle. τ 1 émet le message m 1 à l attention τ 3 et τ 2 le message m 2 à l attention de τ 4. Figure 2.1 Ordonnancement d une configuration de tâches distribuée Dans le cas a) les tâches s exécutent avec leurs pires temps d exécution et respectent leurs échéances. Dans le cas b) τ 2 s exécute plus vite et envoie son message avant le message de τ 1 qui doit attendre. τ 3 reçoit le message trop tard et provoque une faute temporelle. Probatoire Ordonnancement temps réel des tâches et des messages 17

Pour valider un ordonnancement il faut trouver cette borne supérieure d exécution des tâches pour en déduire la valeur du pire temps de réponse de chacune des tâches. L ordonnanceur pour ces calculs prévoit de n activer une tâche qu après le pire temps d exécution des autres tâches la devançant ou plus prioritaires. L analyse et la validation du «pire scénario» ou «pire cas» d exécution fournit une condition suffisante d ordonnançabilité : si l analyse est négative, cela ne veut pas dire que le système ne sera pas ordonnançable sur la plateforme, mais si l analyse est positive alors le système sera ordonnançable quelque soit son comportement à l exécution. 2.2.2 Analyse holistique : Concepts de base L une des fonctions de l analyse holistique est de déterminer la longueur de la période d activité engendrant le pire temps de réponse de la configuration de tâches étudiée. Le but étant de minimiser cette période, dont nous avons déjà donné une borne supérieure (cf 1.3.3) 2.2.2.1 Période d activité La notion de période d activité caractérise les ordonnancements à priorités fixes et dynamiques en identifiant les périodes d activité du processeur (cf. paragraphe 1.4). Une période d activité est un intervalle de temps pendant lequel le processeur est toujours occupé, c'est-à-dire sans temps creux. 2.2.2.2 Instant critique On rappelle qu il n est pas possible d analyser toutes les combinaisons possibles d interactions des temps de réponse variables d une configuration de tâche (CT) (NPcomplétude). Donc en terme d ordonnançabilité, il faut trouver la plus mauvaise combinaison de ces temps de réponses. On trouve cette combinaison à l instant où toutes les tâches se réveillent en même temps. Cet instant est l instant critique et la date t=0 est un instant critique pour une CT à départ simultané. 2.2.2.3 Période d activité synchrone Une période d activité synchrone est un intervalle de temps [0,L) délimité par un instant critique à la date t=0 et un temps creux à la date L. L est la longueur de la cette période.( t=0 définit la borne inférieure de la période d activité synchrone ) La méthode de calcul des pires temps de réponse est fondée sur l étude et la détermination de cette longueur L. «La plus longue période d activité est la période d activité synchrone de longueur L» 2.2.2.4 Charge induite Un instant critique ayant eu lieu à la date t=0 la charge induite, notée W(t), par les n tâches n t d une CT, est la durée d exécution des n tâches sur l intervalle [0,t[. On a W t 1 ( ) = C i i= 0 Ti t Où est le nombre de réveils de la tâche τ i sur l intervalle. T i La longueur L d une période d activité synchrone est calculée à l aide d une suite récurrente. 2.2.2.5 Equations récurrentes - Point Fixe Considérant un intervalle [0, t[ on compare la charge induite W(t) à la longueur t de l intervalle. Si la charge induite est supérieure à la longueur de l intervalle, alors W(t) constitue une première borne inférieure de la longueur L. Probatoire Ordonnancement temps réel des tâches et des messages 18

On calcule récursivement en comparant les intervalles [0, W(t)[, [0, W(W(t))[, aux charges induites W(W(t)), W(W(W(t))), jusqu à ce que la nouvelle valeur soit égale à la précédente. Cette valeur est la longueur L de la plus longue période d activité pour la CT considérée Formellement, L est défini comme le point fixe du système d équations récurrentes suivant : L (0) n 1 = C i= 0 ( k + 1) L i = W ( L [Éq. 2-1] Le calcul est arrêté lorsque deux valeurs sont égales : L=L (k) =L (k+1) On rappelle que le facteur d utilisation du processeur U est la fraction de temps d utilisation n du processeur nécessaire à l exécution de la CT (cf. paragraphe 1.3.2) : 1 Ci U = et qu une i= 0 Ti condition nécessaire d ordonnançabilité pour une CT donnée est que U 1. Le système d équation [Éq. 2-1] converge en un nombre fini de pas si U 1 La plus longue période d activité est la période d activité synchrone de longueur L. Cette période d activité est la durée d étude nécessaire pour calculer le pire temps de réponse d une tâche. 2.2.2.6 Exemple de charge et de période d activité Tâche C i T i U i PPCM(t 1, t 2,t 3,t 4,t 5 )=300 τ 1 5 20 0.25 τ 2 7 20 0.25 U=0.916 τ 3 8 30 0.14 τ 4 3 100 0.3 Τ 5 2 100 0.94 ( k ) ) Le premier temps creux est trouvé au point fixe 57. Probatoire Ordonnancement temps réel des tâches et des messages 19

2.2.3 Analyse holistique : Principes L analyse holistique introduite en 1994 par KenTindell, permet de modéliser la dépendance entre l ordonnancement des tâches et celui des messages dans les systèmes temps réel distribués : - La date d émission d un message dépend du temps de réponse de la tâche émettrice - La date de réveil de la tâche destinataire dépend du temps de réponse du message à recevoir. L ordonnancement de deux tâches τ i et τ j communicant à travers un réseau, est détaillé dans la Figure 2.2 : l émission du message msg est décalée par l attente de la fin d exécution de τ i. De même, la tâche τ j qui est liée à l arrivée du message est retardée à son tour. Figure 2.2 La gigue d activation est l attente due à la fin de la tâche précédente. Jm et Jj sont les gigues d activation du message et de la tâche réceptrice τ j. Les gigues d activation sont les variables qui permettent de modéliser la dépendance de l ordonnancement conjoint des tâches et des messages. L analyse holistique va permettre de calculer ces gigues par la résolution de systèmes d équations récurrentes en estimant le temps de réponse des tâches et ainsi les valeurs de gigue. Nous obtenons le système d équations : * - Pour les tâches : J i = max( R m ) m pred ( i) * - Pour les messages : J i = max( R j ) j pred ( i) Le même principe de calcul qu au paragraphe 2.2.2 est utilisé pour calculer ces gigues dépendantes des pires temps de réponse, et des pires temps de réponse dépendant des gigues. Le système à résoudre est le suivant : (0) Ri = Ci (0) Ji = 0 1 i n ( k ) ( k 1) Ri = Tempsreponse( Ji ) ( k ) ( k ) Ji = max( Ri ) j pred ( i) n : nombre de tâches et de messages pred(i) : prédécesseurs immédiats de i dans le graphe de précédence Principe de l analyse : - 1 - initialiser les gigues à 0-2 - calculer les temps de réponse processeur par processeur et réseau par réseau Probatoire Ordonnancement temps réel des tâches et des messages 20

- 3 - mettre à jour les gigues avec les temps de réponse - 4 itérer au point 2 jusqu au premier point fixe. Le point fixe est atteint lorsque pour un entier k on vérifie :- R i * =R i (k) =R i (k-1), 1 i n Chaque système (processeur, réseau) possède sa propre fonction de calcul du pire temps de réponse (Tempsreponse) On note que dans le cas d une communication de deux tâches sur le même site on peut modéliser la communication par un délai de transmission nul. Pour améliorer les performances de la résolution du système, on note que ce système d équation initialise la gigue sur activation à 0. Or la gigue modélise la dépendance entre les tâches et les messages de l application : pour les tâches indépendantes la gigue est effectivement nulle. Pour les relations de dépendance le calcul de la gigue correspond à un calcul de date d activation au plus tôt (problème central de l ordonnancement). On utilisera la borne inférieure des gigues LB(J i ) et la borne inférieure des temps réponse LB(TR i ) pour initialiser le système. (0) (0) LB( Ji ) = max( LB ( J j ) + C j ) On doit alors résoudre : j pred ( i) (0) (0) LB( TRi ) = LB( Ji + Ci ) 2.2.4 Cas pire - Pires temps de réponse 2.2.4.1 Calcul du pire temps de réponse des tâches Le pire temps de réponse d une tâche τ i est obtenu lorsque toutes les tâches autre que τ i arrivent simultanément. Il suffit d étudier tous les scénarios, de longueur L au plus, où cela se produit et où τ i est activée à une date t [ 0, Ti ] L analyse de τ i permettant d obtenir son pire temps de réponse TR i, nécessite d examiner au plus T i scénarios, c-à-d T i périodes d activité différentes. 2.2.4.2 Calcul du pire temps de réponse des messages Les algorithmes pour calculer le pire temps de réponse dans les différents types de réseaux utilisés ou utilisables en temps réel sont en cours d élaboration à l heure actuelle. Néanmoins celui des réseaux de type CAN (Controler Area Network) utilisé dans l industrie automobile est utilisable dès aujourd hui. Le réseau CAN est une ressource critique, chaque message possède une priorité fixe arbitrant l accès au canal (CSMA/CA). L ordonnancement du réseau s apparente à un ordonnancement monoprocesseur non préemptif de tâches que sont les messages. Le temps de propagation est utilisé comme pire temps d exécution dans le modèle de tâches. Les résultats obtenus du calcul du pire temps de réponse pour un ordonnancement préemptif peuvent être adapté à l ordonnancement non préemptif. La différence n est liée qu au décalage pouvant être engendré par une tâche moins prioritaire, utilisant le processeur à l instant critique. La tâche ne pouvant être interrompue, l instant critique sera décalé au maximum de la plus longue tâche parmi les moins prioritaires. Le pire cas survient lorsque cette tâche débute à l instant critique t = 0 1 unité de temps. Probatoire Ordonnancement temps réel des tâches et des messages 21

Les algorithmes de calcul des pires temps de réponse existent pour les politiques d ordonnancement à priorité fixe, dynamique, et pour les architectures non préemptives qu on peut utiliser pour les réseaux de communication. 2.2.5 Exemple d application : validation d un système TR distribué L analyse holistique permet de valider des systèmes temps réel distribués hétérogènes. Le Tableau 2-1 fournit les caractéristiques des tâches d une système TR à valider : il est composé d un processeur P 1 qui ordonnance les tâches à priorité fixe, d un processeur P 2 qui ordonnance selon EDF et d un réseau de communication CAN. La Figure 2.3 représente la structure logicielle du système : relations de dépendance et de communication sur ce système. Tâche Processeur C i D i T i τ 1 P 1 52 160 100 τ 2 P 1 52 180 160 τ 3 P 2 10 60 40 τ 4 P 2 20 80 60 τ 5 P 2 20 124 160 τ 6 P 2 20 188 100 m 1 CAN 1 m 2 CAN 1 Tableau 2-1 Caractéristiques des tâches d un système TR distribué hétérogène (Prio(τ 1 )< Prio(τ 2 ) τ 1 τ 6 τ 4 m1 τ 2 m 2 τ 5 τ 3 Figure 2.3 Graphe de précédence des tâches et des messages d un système TR distribué La résolution de ce système se fait en deux itérations de la méthode holistique. Tâches Itération 1 Itération 2 Ri Ji Ri Ji τ 1 104 0 156 0 τ 2 115 63 135 83 τ 3 30 0 50 0 τ 4 50 0 70 0 τ 5 60 0 80 0 τ 6 158 106 178 158 m 1 106 104 158 156 m 2 63 60 83 80 Tableau 2-2 trace des deux itérations de l analyse holistique P1 CAN La Figure 2.4 représente l ordonnancement au «pire cas» validée par la méthode holistique P2 Probatoire Ordonnancement temps réel des tâches et des messages 22

Figure 2.4 Ordonnancement temps réel de tâches et de messages dans un système distribué 2.3 Placement et affectation des priorités : Etude de cas L application étudiée est une version modifiée de celle qu on peut trouver dans les automobiles du fabricant PSA. Elle est composée de neuf sous systèmes interconnectés par deux réseaux de terrain (fieldbus) : un réseau CAN (Controler Area Network) et un réseau VAN (Vehicule Area Network) Tableau 2-3 Structure d un système embarqué dans une automobile La Figure 2.5 est le graphe de précédence du système distribué. Les tâches communiquent par messages à travers les deux réseaux CAN et VAN. La passerelle entre ces réseaux est modélisée par le pool de tâches n 2. Les différents systèmes de contrôle du véhicule sont regroupés dans le pool n 1 (ABS, Moteur, Boite de vitesse, ) le pool n 3 est constitué des écrans de contrôle (Compteur de vitesse, Température, ) et des dispositifs de pilotage (Air conditionné, ). Les pools sont constitués des ECU à qui l on veut assigner l exécution des tâches. Le Tableau 2-4 indique le découpage en pools du système et les paramètres des 44 tâches et des 19 messages composant la structure logicielle de l application. Probatoire Ordonnancement temps réel des tâches et des messages 23

Figure 2.5 Graphe de précédence d un système embarqué Pool Tâche C i D i Pool Tâche C i D i Pool Mess. C i D i T00 1 10 T24 2 50 M1 0.51 10 T01 2 20 T25 2 50 M2 0.32 14 T02 2 100 T26 2 10 M3 0.32 20 T03 2 15 T27 2 100 M4 0.29 15 T04 2 14 T28 2 40 M5 0.39 20 T05 2 50 T29 2 20 M6 0.39 40 T06 2 40 T30 2 100 M7 0.36 15 T07 2 15 T31 2 150 M8 0.39 50 T08 2 50 T32 2 200 M9 0.36 20 T09 2 50 T33 2 50 M10 0.47 100 T10 2 14 T34 2 150 M11 0.39 50 T11 2 20 T35 2 50 M12 0.25 100 T12 2 40 T36 2 50 M13 0.2 50 T13 2 15 T37 2 10 M14 0.5 10 T14 2 100 T38 2 100 M15 0.4 50 T15 2 20 T39 2 150 M16 0.1 150 T16 2 20 T40 2 100 M17 0.5 200 T17 4 14 T41 2 150 M18 0.2 100 T18 4 20 T42 2 200 M19 0.4 150 T19 2 20 T43 2 50 T20 2 20 T21 2 10 T22 2 14 T23 2 15 Pool 1 (ECU 1, 2, 3, 4, 5) Pool 2(ECU6) Pool 3 (ECU 7, 8, 9) Tableau 2-4 Découpage en pool et paramètres des tâches et des messages Pool 4 (CAN) Pool 5 (van) Probatoire Ordonnancement temps réel des tâches et des messages 24