CONSERVATOIRE NATIONAL DES ARTS ET METIERS PARIS

Dimension: px
Commencer à balayer dès la page:

Download "CONSERVATOIRE NATIONAL DES ARTS ET METIERS PARIS"

Transcription

1 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

2 Introduction Ordonnancement temps réel (TR) Contraintes temporelles Modèle de tâche Définitions, propriétés Ordonnanceurs hors ligne / en ligne Configuration de tâches (CT) («task sets») Ordonnançabilité Algorithmes de base pour tâches périodiques Rate Monotonic (RM) Deadline Monotonic (DM) ou Inverse Deadline (ID) Earliest Deadline First (EDF) Least Laxity First (LLF) Prise en compte des tâches non périodiques Tâches sporadiques Tâches apériodiques Ordonnancement de tâches et de messages interdépendants Contraintes de précédence Partage de ressources Ordonnancement temps réel distribué Placement des tâches et affectation des priorités Analyse holistique Ordonnancement conjoint des tâches et des messages Analyse holistique : Concepts de base Analyse holistique : Principes Cas pire - Pires temps de réponse Exemple d application : validation d un système TR distribué Placement et affectation des priorités : Etude de cas Middleware temps réel : RT-CORBA Middleware temps réel Introduction à CORBA CORBA temps réel (RT-CORBA) Architecture RT-CORBA Ordonnancement RT-CORBA TAO (The Ace ORB) Micro noyau ZEN Conclusion Bibliographie Glossaire/Abréviations Tables des illustrations Probatoire Ordonnancement temps réel des tâches et des messages 2

3 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

4 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 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

5 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 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, 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

6 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 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 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 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)] 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 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= Ci 1/ 3) On a U 1 =0.2, U 2 =0.267, U 3 =0.286 et = (2 1) = 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

7 Figure 1.2 Exemple d ordonnancement Rate Monotonic Préemptif 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 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 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

8 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 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

9 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 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 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

10 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 τ 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 = 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

11 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 τ τ τ τ τ 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 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) 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

12 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 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 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

13 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 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 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

14 τ 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 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 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

15 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

16 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

17 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 ) Ordonnancement conjoint des tâches et des messages 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 La transmission d un message quelconque ne peut en effet être interrompue par l émission d un message prioritaire 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

18 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 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) 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 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é 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» 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 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

19 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 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 τ τ U=0.916 τ τ Τ ( k ) ) Le premier temps creux est trouvé au point fixe 57. Probatoire Ordonnancement temps réel des tâches et des messages 19

20 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 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 : initialiser les gigues à 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

21 - 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 ) Cas pire - Pires temps de réponse 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 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

22 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 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 τ 2 P τ 3 P τ 4 P τ 5 P τ 6 P 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 τ τ τ τ τ τ m m 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

23 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

24 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 T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T M T T T T T T 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

25 Proc Tâche Pri Temps de Gigue Temps de Gigue Temps de Gigue Proc Tâche Pri Proc Tâche Pri reponse d'activation reponse d'activation reponse d'activation T T T T T T T T T T T T44(sic) T T T T T T T T T T T T T T T T T T T T T T T T T T T45 * * * T T T46 * * * T T M03(sûr) * * * T T M T T M T T M T T M T T M T M18(sûr) * * * M19(sûr) * * * ECU 1 ECU 2 ECU 3 ECU 4 ECU 5 ECU 6 ECU 7 ECU 8 ECU 9 VAN CAN Tableau 2-5 Placement, priorités et temps de réponse des tâches et des messages 4 Le Tableau 2-5 récapitule le placement des tâches sur les ECU ainsi que leur priorité et leur pire temps de réponse. Les «*» dans les le tableau indiquent que les messages concernés n ont pas à emprunter le réseau car les tâches émettrices et destinataires sont sur le même ECU et communique directement sur le processeur. L algorithme «branch and bound», couplé à l analyseur holistique, a mis 182 secondes sur un ordinateur de type PC pour fournir ces résultats. Nous avons présenté une méthode de validation de configuration de tâches qui s intègre dans le cadre plus général du placement et de l affectation des tâches et des priorités. Cette méthode, l analyse holistique, sert à vérifier que les contraintes temporelles des étapes intermédiaires du processus de placement, sont respectées. Elle peut être sortie de son cadre et servir à valider un système temps réel dans lequel les tâches et les priorités seraient déjà placées. La conception des nouveaux systèmes complexes comme ceux qui ne manqueront pas d être utilisés dans l industrie automobile, aéronautique, spatiale ou nucléaire ne devrait pas pouvoir se passer d une méthode efficace de placement et de validation. Mais on peut dès maintenant utiliser l analyse holistique pour valider des choix qui aurait été faits «à la main». Si ces méthodes et ces algorithmes d ordonnancement ouvrent de nouvelles voies pour la conception d applications temps réel, elles restent toujours difficiles à implémenter efficacement et confortablement. Les programmeurs temps réel qui sont à l origine de ces applications, doivent pouvoir s appuyer, comme les autres programmeurs, sur des outils modernes de conception. Ceci afin de tester et d intégrer facilement, mais de manière rigoureuse, ces nouveaux horizons possibles. 4 Ce tableau est issu de Richard M., Richard P. «Méthode de placement et d affectation des priorités pour les systèmes temps réel distribués» RSTI/TSI Vol.22 n 5/03 Hermes. La non correspondance entre les identifiants des messages et ceux du Tableau 2-4 entrave la compréhension. Il faudrait rétablir cette correspondance. Probatoire Ordonnancement temps réel des tâches et des messages 25

26 3 Middleware temps réel : RT-CORBA Longtemps les applications temps réel ont été développées en langages «assembleur». Les applications étant fortement couplées au matériel, ce sont ces langages qui permettaient de coller au plus près de la machine. Comme le reste de l industrie liée au développement d application, les concepteurs temps réel ont fini par s intéresser aux possibilités qu offre la programmation orientée objet et les middleware. Nous allons voir comment le middleware RT-CORBA peut aider à concevoir une application temps réel distribuée complexe en en fournissant au programmeur une vision unifiée. 3.1 Middleware temps réel Depuis plusieurs années les technologies orientées objets se sont imposées comme le standard de modèle de programmation. Elles permettent de réduire la complexité de développement, de réutiliser les composants déjà développés et de réduire les coûts de maintenance. Avec l accroissement de la complexité de conception, d analyse, de maintenance et de validation des applications temps réel, la communauté temps réel voudrait elle aussi enfin pouvoir profiter de ces progrès. Mais pour cela la notion de temps réel doit être fortement intégrée à ces outils. Les middleware, comme leur nom l indique, se situent entre les applications et l infrastructure sous-jacente. Ils fournissent une représentation abstraite du système d exploitation ou du réseau à l application qui les utilise. Dans le cas des applications non temps réel ce niveau d abstraction permet de s affranchir des caractéristiques physiques ou particulières de ce qui se passe «en dessous». Or une application temps réel, elle, doit pouvoir prendre le contrôle, ou du moins être tenu au courant de ce qui se passe derrière cette abstraction. Cela va à l encontre de la philosophie des middleware. Pour tenir compte des besoins paradoxaux de la communauté temps réel, l OMG (Object Management Group), s est mis au travail et en même temps qu il tente de standardiser une version temps réel de Java et d UML, l OMG a, avec succès, particulièrement bien définies et spécifiées les extensions temps réel pour CORBA. Ces extensions concernent l ordonnancement, la gestion de la mémoire et des communications, et enfin la concurrence d accès. Avant de détailler les concepts et les mécanismes de CORBA temps réel, nous devons présenter succinctement le fonctionnement d un middleware CORBA. 3.2 Introduction à CORBA CORBA (Common Object Request Broker Architecture) est un standard qui spécifie l interfaçage des interactions entre des clients et des serveurs dans un environnement de programmation orienté objet. CORBA fournit une vue abstraite des objets manipulés par l application, et les objets, dans CORBA, n existent que sous cette forme abstraite : les interfaces. Un objet est une collection de propriétés et de méthodes qui «incarnent» cette abstraction. CORBA définit aussi des «opérations». Ce sont par exemples des services qu un client peut requérir de la part d un serveur. Ce sont les méthodes des objets qui implémentent ces opérations. Chaque objet est Probatoire Ordonnancement temps réel des tâches et des messages 26

27 identifié par un numéro unique, la référence d objet, qui est utilisé dans les interfaces pour spécifier les opérations utilisables par un client. L accès aux objets distribués se fait au moyen d un ORB (Object Request Broker) dont le but est de cacher l hétérogénéité des langages, des plateformes, des ordinateurs et des réseaux qui constituent l objet lui même. L ORB par là même, assure l interopérabilité entre les différentes implémentations d objets. L invocation d objet se fait grâce au mécanisme classique RPC (Remote Procedure Call). CORBA supporte les interfaces statiques et dynamiques. Les interfaces statiques sont déterminées à la compilation, alors que les dynamiques sont construites et déterminées à l exécution en interrogeant une base de données d interfaces : le dépôt (interface repository). Les principaux composant de l architecture CORBA de la Figure 3.1 sont brièvement détaillés ci-dessous : - IDL (Interface Definition Language) : Langage de définition des interfaces des objets, qui permet d établir la jonction avec les langages de programmation implémentant les objets. Figure 3.1 Architecture CORBA - Architecture d interface: - Coté client : o IDL stubs (souches). Générées à partir des définitions IDL. Ce sont les interfaces statiques du programme RPC client. o Dynamic Invocation : utilisées pour construire les requêtes à l exécution. Probatoire Ordonnancement temps réel des tâches et des messages 27

28 - Coté serveur o IDL skeleton (squelette) : composant qui aide l «Object Adapter» à implémenter le mécanisme RPC du coté serveur. o Dynamic skeleton: analogues du coté client. o Object Adapter: Les objets accèdent à l ORB par son intermédiaire, pour activer des objets, invoquer les méthodes, interpréter les références d objet. - ORB interface : permet aux clients et aux serveurs d accéder directement à l ORB - ORB Core : Ensemble des fonctionnalités qui assurent le fonctionnement réparti du système. C est le cœur de CORBA : référencement et localisation des objets, «marshalling» des paramètres et des résultats des appels de fonctions. C est grâce à la mise en place d un ORB temps réel (RTORB) que CORBA pourra être adapté au temps réel - Portable Object Adapter (POA) : Composant de l ORB qui assurent le référencement, l activation et la surveillance des objets. On peut avoir autant de POA qu il y a de type d implémentation de CORBA. - Interface repository : Base de donnée utilisée par les clients pour localiser les objets à l exécution et interroger les services offerts par ces objets. - Implementation repository : base de donnée utilisée par l ORB pour localiser les objets. ORB interoperability (GIOP/IIOP) : interopérabilité entre les ORB de différents fournisseurs 3.3 CORBA temps réel (RT-CORBA) C est à partir de 1995 qu un groupe de travail (SIG) s est attaché à produire des spécifications normalisées pour adapter CORBA au temps réel. Avec succès, ce SIG a produit une première spécification RT-CORBA 1.0 en 1998/1999 pour intégrer les notions de priorités fixes et en 2001 RT-CORBA 2.0 pour ce qui concerne les propriétés dynamiques de l ordonnancement temps réel. Des implémentations qui se rapprochent de ces spécifications commencent à voir le jour : TAO en est un exemple particulièrement abouti et ZEN qui s appuie en même temps sur les travaux de TAO et sur les spécifications de Java Temps Réel facilite encore le développement d applications Architecture RT-CORBA Afin d offrir une prédictibilité de bout en bout aux applications temps réel réparties, RT- CORBA définit dans ses spécifications les composants qui doivent être présents : - Ordonnancement préemptif dans le système d exploitation (OS) sous-jacent. - Une implémentation d un ORB temps réel. - Des mécanismes de communication qui intègrent les contraintes temporelles. - La possibilité d imposer des contraintes temporelles aux applications. La Figure 3.4 à la page 30, récapitule les éléments de l architecture RT-CORBA que nous allons détailler maintenant Thread Pool Les threads (processus légers) sont pour RT-CORBA les entités de base ordonnançables. Un modèle de thread est alors défini : il inclut des paramètres temps réel qui sont configurables Probatoire Ordonnancement temps réel des tâches et des messages 28

29 au moyen d interfaces. Le programmeur peut ainsi se servir des possibilités d ordonnancement préemptif pour contrer les phénomènes d inversion de priorités. Avec un pool de threads déjà configurés et prêts à s exécuter, le programmeur temps réel s assure du contrôle de ses requêtes temps réel et de la mémoire disponible dans le système natif Mécanismes de priorité Il existe deux types de priorités : les priorités CORBA et les priorités natives de l OS sous jacent. C est le rôle des interfaces PriorityMapping d établir la correspondance entre les deux types (cf..figure 3.2). RT-CORBA définit deux modèles de priorités : les «priorités déclarées par le serveur», et les «priorités propagées par le client» (cf.figure 3.3). Dans le premier cas c est le serveur qui fixe et annonce la priorité des objets ordonnançables, le client à la possibilité de consulter le niveau de priorité des objets qu il va utiliser (il sait à quoi s en tenir) grâce aux interfaces fournies dans les objets. Au risque alors que sa requête «bénéficie» du mécanisme d héritage de priorité implanté dans l OS sous-jacent, et se termine plus vite que prévu. Dans le deuxième cas, c est le client qui fixe les priorités des objets qu il invoque et c est au serveur de les honorer. Le modèle de priorité est choisi et configuré au moyen des interfaces PriorityModelPolicy du RTPOA (Real Time Portable Object Adapter) Figure 3.2 Correspondance des priorités natives et des priorités RT-CORBA Figure 3.3 Modèles de priorités RT-CORBA Probatoire Ordonnancement temps réel des tâches et des messages 29

30 RTCORBA::Threadpool interfaces pour la gestion des pool de processus légers RTCORBA::Priority Type entier pour définir le niveau de priorité [ ] RTCORBA::Current interface d accès aux priorités natives (OS) du thread courent RTCORBA::PriorityMapping interfaces qui établissent les correspondances entre les priorités RTCORBA et celle de l OS sous jacent (native) RTPOA(Real Time Portable Object Adapter) Permet de fixer les priorités à la création des objets. RTCORBA::RTORB permet de configurer l ORB temps réel et de créer les instances des interfaces RTCORBAIDL RTCORBA::Mutex interfaces pour gérer les contentions d accès aux ressources systèmes RTCORBA::ProtocolProperties interfaces pour configurer les protocoles de transport (tailles de buffer, délais, ) Figure 3.4 Architecture CORBA Temps Réel Service d ordonnancement RT-CORBA définit des services d ordonnancements de haut niveau d abstraction et indépendants du système d exploitation sous-jacent. Nous étudierons plus en détails ces services au paragraphe Services ORB temps réel L ORB RT-CORBA, ou RTORB se charge de contrôler les ressources utilisées par l ORB temps réel. C est aussi lui qui crée les interfaces IDL RT-CORBA et qui permet aux Probatoire Ordonnancement temps réel des tâches et des messages 30

31 applications d indiquer à l ORB le type et la quantité des ressources dont elles ont besoin : valeur de priorité des threads, type d ordonnancement, tampons de messages, etc. Le contrôle des ressources utilisées par l ORB permet ainsi de créer des applications prédictibles de bout en bout à travers le bus applicatif CORBA Système d exploitation : RTOS Le système d exploitation, sous jacent à RT-CORBA, le RTOS, doit pouvoir fournir un service temps réel minimum. RT-CORBA ne peut pas en effet accomplir de miracle. Avec un système d exploitation qui n offrirait pas d ordonnancement préemptif par exemple, RT- CORBA serait presque inutilisable. RT-CORBA pour cela doit pouvoir s appuyer au moins sur un système compatible avec les extensions temps réel de POSIX On peut penser à CHORUS, RT-Linux, mais aussi aux versions Windows de Microsoft depuis NT et en particulier les versions «Windows embarqué» Communication Inter-ORB Contrairement à CORBA, RT-CORBA fournit la possibilité aux applications de contrôler les paramètres du réseau et du système sous-jacent. Ce contrôle strict de la Qualité de Service (QOS) se fait au moyen de deux mécanismes : possibilité de choisir et de configurer les propriétés des moyens de communication (RTCORBA::ProtocolProperties), qui doivent utiliser les techniques d ordonnancement vues au chapitre 1, et liaison explicite aux objets serveurs (pas de multiplexage implicite, pas d établissement de connexion différée, ) par la méthode validate.connection de CORBA::Object Ordonnancement RT-CORBA Les systèmes temps réel distribués se répartissent en deux classes : - Les systèmes statiques sont ceux dont on connaît la charge globale et les temps d exécution de chacune des tâches qui les composent, a priori. Ces systèmes peuvent se «contenter» d utiliser des politiques d ordonnancement statiques. - Les systèmes dynamiques ne savent pas quelles applications vont s exécuter et dans quel ordre elles vont s exécuter, soit à cause de leur trop grand nombre, soit à cause de trop grandes variations de leurs besoins de ressources. Ces systèmes doivent pouvoir s adapter à des contraintes temps réel changeantes et utiliser des politiques d ordonnancement dynamiques. RT-CORBA propose des solutions d ordonnancement pour ces deux types de systèmes sous la forme de primitives implémentées directement dans le sous-système RTORB présenté plus haut (cf. paragraphe ci-dessus) ou d interfaces en vue d implémenter des algorithmes plus complexes. Historiquement on distingue RT-CORBA 1.0 qui offre des ordonnancements à priorité fixe comme Rate-Monotonic ou Deadline Monotonic, et RT-CORBA 2.0 pour l ordonnancement à priorité dynamique comme Earliest Deadline First ou Least Laxity First. Une application temps réel doit être assurée d une politique d ordonnancement uniforme à travers tout le système. Le service d ordonnancement, mentionné au paragraphe , choisit à cet effet les priorités CORBA, définit les politiques de fonctionnement que les POA mettront en œuvre, et les correspondances de priorités natives/corba afin d assurer un ordonnancement fiable de bout en bout. Probatoire Ordonnancement temps réel des tâches et des messages 31

32 Car, il faut noter que RT-CORBA, de lui même, n impose pas d ordonnancement particulier, mais spécifie seulement les interfaces à utiliser en fonction des besoins de l application. Même si les primitives que met en place RT-CORBA pour créer un RTORB sont suffisantes pour assurer un ordonnancement temps réel à priorité fixe, la mise en œuvre d un ordonnancement, sans l aide d une implémentation d un service d ordonnancement, reste complexe. Il faut pour cela en effet, à travers tout le système CORBA, être particulièrement vigilant sur la configuration des paramètres et l utilisation des interfaces qui doivent être identiques en tout point du système RT-CORBA 1.0 : Ordonnancement statique Le service d ordonnancement («Scheduling Service») fournit un niveau d abstraction à la configuration de bout en bout de RT-CORBA, à travers ce qu on nomme une «activité» («activity»). Une «activité» est un enchevêtrement d opérations propres à l application. Par exemple, à la réception d une alarme, la tâche apériodique qui doit se déclencher à sa réception, est modélisée comme une «activité» qui correspond à concrètement envoyer un message sur le réseau, mettre un message en mémoire, dans une file d attente par exemple, et pour le thread de la tâche se mettre en attente d élection sur un processeur. Une fois que le développeur a repéré ce que peut être une «activité» parmi d autres dans son application, il la «nomme» («names, strings») de manière unique à travers tout le système CORBA. Le service d ordonnancement associe ce nom unique à des priorités et des objets CORBA et lui assigne des types d ordonnancement. Ce regroupement par «noms» permet au programmeur, quand son application doit entrer dans une section temps réel, d appeler la primitive schedule_activity avec le «nom» de l «activité» en paramètre. Le service d ordonnancement invoque alors le RTORB et le RTOS avec les priorités souhaitées de bout en bout du bus CORBA. On note que le programmeur reste toujours dans l obligation de faire des choix complexes pour les priorités et les objets à utiliser, mais il n a plus à le faire en tout point du système distribué. On notera que le service d ordonnancement est le seul composant de la Figure 3.4 qui a été déclaré optionnel dans les spécifications de RT-CORBA RT-CORBA 2.0 : Ordonnancement dynamique Face aux limites imposées par l ordonnancement statique ou à priorité fixe et le peu de succès rencontré, à notre connaissance, par les «activités» de RT-CORBA 1.0, l OMG a recadré les services que doit pouvoir fournir un middleware temps réel : - Donner la possibilité aux tâches de migrer vers des systèmes hétérogènes - Fournir un moyen de découvrir les systèmes sur lesquels elles peuvent migrer - Faire migrer les paramètres d ordonnancement en même temps que les tâches - Fournir la possibilité d utiliser les algorithmes d ordonnancement ad hoc - Stopper une tâche à distance et la faire repartir - Faire repartir l ordonnanceur local quand une tâche revient de sa migration - Permettre la collaboration des ordonnanceurs locaux distribués pour assurer un ordonnancement global RT-CORBA 2.0 introduit quatre nouveaux concepts 5 qui doivent permettre d atteindre ces objectifs : 5 On propose entre parenthèses une traduction française de ces concepts, non rencontrée dans la littérature. Probatoire Ordonnancement temps réel des tâches et des messages 32

33 - Scheduling Segment (SSeg) (Segment d ordonnancement) : une séquence de code qui s exécute avec des paramètres fixés d ordonnancement - Distributable Thread (DT) (Processus léger distribuable) : la nouvelle entité d exécution de base ordonnançable o Le DT peut s exécuter sur plusieurs nœuds et s imbriquer dans un ou plusieurs Scheduling Segments. o Il est indentifiable de manière unique à travers le système : GUID o Le contexte temps réel du DT est transmissible au différents GIOP - Pluggable Scheduler (Greffe d Ordonnanceur) : facilite l utilisation, les tests (?), d algorithmes d ordonnancement complexes, et inédits - Scheduling Points (Etapes d Ordonnancement): points d interactions entre l ordonnanceur, l application et l ORB. Par exemple lorsque le DT à besoin d une ressource, quand il doit migrer et que son contexte d ordonnancement doit être interprété sur la machine cible Typiquement une application distribuée dans cette architecture est composée de plusieurs DT, qui s exécutent de manière concurrente. Chaque DT à son tour s exécute dans un SSeg ou une série de SSeg distribués qui peuvent eux même être imbriqués. Le code de l application est ainsi ordonnancé en temps réel et de manière distribuée (cf.figure 3.5) Figure 3.5 Invocation distribuée et imbriquée d un Scheduling Segment Même si ces dernières spécifications sont, à l heure actuelle, encore en phase d étude par la communauté temps réel, on peut néanmoins déjà se procurer sous la forme de projets Open Source, ou de produits commerciaux, des implémentations de middleware temps réel qui s appuient sur les spécifications RT-CORBA que nous venons de survoler TAO (The Ace ORB) TAO est le résultat d un projet de longue date, strictement compatible avec les spécifications CORBA non temps réel. Dès 1997, partant du constat que CORBA n était pas adapté au temps réel, les membres de ce groupe actif de recherche, se sont attachés, avant l OMG, à produire des spécifications d un futur RTORB. Cette avance prise sur l organisme de standardisation, et surtout la mise à disposition pour la communauté de code exécutable, font Probatoire Ordonnancement temps réel des tâches et des messages 33

34 que le groupe TAO est devenu un acteur incontournable dans le domaine du temps réel distribué. Les travaux de TAO ont permis de mettre en évidence les limites logiques des implémentations des ordonnanceurs à priorité fixe comme DM et RM. En effet, pour prendre en compte dans ces ordonnanceurs les tâches non périodiques comme les alarmes, ou les interruptions matérielles (tâches sporadiques et apériodiques, i.e. à contraintes strictes et relatives), une solution consiste à les traiter sous une forme ou une autre comme des tâches périodiques. On s arrange alors pour allouer les ressources temporelles dont elles pourraient avoir besoin, soit en intégrant leur pire cas d exécution dans un ordonnancement DM ou RM (cas des tâches sporadiques), soit grâce à la mise en place d un «serveur sporadique» vu au chapitre 1.5 (cas des tâches apériodiques). Ce gaspillage pessimiste des ressources dans le premier cas, cette complexité dans le deuxième, a poussé l équipe TAO à implémenter des politiques d ordonnancement dynamiques comme EDF et LLF, mais aussi mixtes comme MUF, bien avant que l OMG ne décide de se pencher sur ces problèmes et publie RT- CORBA 2.0. TAO est à l heure actuelle l un des rares RTORB qui respecte les spécifications RT-CORBA 1.0 et une partie de celles de RT-CORBA 2.0. Cependant, le RTORB de TAO hérite d un problème historique de taille : il est développé en C++. La standardisation de l interfaçage (IDL) CORBA/C++, ayant été accouchée dans la douleur 6, son apprentissage rebute nombre de programmeurs, et par voie de conséquence freine l adoption à grande échelle des implémentations C++ du groupe TAO Micro noyau ZEN ZEN pour sa part est un ORB CORBA temps réel (RTORB) open source, architecturé autour d un micro noyau implémenté au moyen des spécifications temps réel pour Java (RTSJ), et qui s appuie sur les travaux de TAO. Les avantages attendus sont de pouvoir profiter de la simplicité, de l efficacité et de la portabilité du langage Java. De plus, l utilisation d un micro noyau ORB permet de développer des applications embarquées temps réel distribuées (DRE) modulaires, minimalistes et adaptées (télécommunications sans fil, chirurgie robotique, contrôle de processus industriels, ) tout en conservant la possibilité d utiliser les services des serveurs distants connectés au même bus CORBA (cf. Figure 3.6). Figure 3.6 Architecture modulaire du micro noyau ZEN. 6 On pourra lire à ce sujet «Object Interconnections: The History of the OMG C++ Mapping» Probatoire Ordonnancement temps réel des tâches et des messages 34

35 Mais en utilisant Java, ZEN doit s affranchir de deux aspects rédhibitoires pour le temps réel : - le modèle préemptif d ordonnancement de la JVM (Java Virtual Machine) varie d une plateforme à une autre (tourniquet ou préemption par priorité simple) 7 - le ramasse miette (Garbage Collector) de la JVM peut préempter n importe quel autre thread Pour cela ZEN utilise des mécanismes issus des travaux des RTSJ tel que la «scoped memory» et les «no-heap real-time threads», pour améliorer la prédictibilité du middleware. Pour la description de ces mécanismes, sortant du cadre de ce mémoire, on pourra consulter : Les nouveaux paradigmes qui se sont mis en place dans les autres secteurs de l industrie du logiciel - tablant sur des ressources mémoires sans limites, des processeurs toujours plus puissants, des réseaux de communication toujours plus rapides et bon marché - n ont pas pu profiter aux développeurs temps réels. Du fait de contraintes rigoureuses dont sont tributaires les applications temps réel distribuées, comme des espaces mémoire restreints, des temps d exécutions strictement prédictibles, des consommations d énergie draconiennes, ces applications ont continué à être développées avec des outils d ascètes. L intégration des spécificités propre au temps réel dans les middleware standards du marché et les langages de développement orientés objet, va permettre à la communauté temps réel de prendre le train en marche de la réutilisation de code, de la conception modulaire et du modèle client serveur. 7 Voir «Java Threads», Oaks & Wong 2 nd édition (version française) page 135 Probatoire Ordonnancement temps réel des tâches et des messages 35

36 Conclusion Le domaine temps réel est complexe. On ne peut pas comprendre la problématique posée par le temps réel dans les environnements multiprocesseurs et distribués, sans de solides connaissances de base. Avant de se plonger dans l étude de l ordonnancement temps réel des tâches et des messages, les mécanismes d ordonnancement préemptif traditionnels et ceux du temps réel centralisé, doivent absolument être maîtrisés. C est ce que nous avons tenté de faire dans la première partie de ce rapport : «Valider temporellement un système temps réel consiste à prouver a priori que quel soit le flot d événement entrant, le système sera toujours capable de réagir conformément à ses contraintes temporelles». Or les applications temps réel devenant de plus en plus imposantes, comme c est le cas dans l industrie automobile, il devient nécessaire de les paralléliser en les distribuant, en les répartissant à travers un réseau de communication. La validation temporelle de ces systèmes devient alors fortement dépendante de l architecture logicielle adoptée, c'est-à-dire du placement des tâches sur les différents processeurs. L analyse holistique est une méthode efficace de validation de ces systèmes distribués hétérogènes. Intéressante à plus d un titre, elle permet, couplée à la méthode «branch and bound», d aider à concevoir l architecture logicielle elle-même. Cette aide à la conception est alors renforcée par les nouveaux outils de développement qui se standardisent. RT-CORBA, TAO et ZEN ouvrent de nouveaux horizons jusqu alors réservés aux développeurs d applications traditionnelles : POO, bus applicatifs, micronoyaux, réutilisation du code Autant d arguments qui pourront inciter les développeurs et les chercheurs à se joindre à la petite communauté du temps réel. Probatoire Ordonnancement temps réel des tâches et des messages 36

37 Bibliographie Bonnet C., Demeure I., 1999, Introduction aux systèmes temps réel, Hermes (Chapitre 3) Cottet F., Delacroix J., Kaiser C., Mammeri Z., 2002, Scheduling in real-time systems, Wiley (Chapitres: 1, 2, 3, 6, 8 et 9.4) Decotigny D., 2002, Bibliographie d'introduction à l'ordonnancement dans les systèmes informatiques temps réel (chapitre 3) Delacroix J., Méthodes de Programmation Système 2003/2004, Ordonnancement temps réel (pages 30-48) Grolleau E., Choquet-Geniet A., Ordonnancement de tâches temps réel en environnement multiprocesseur à l aide de réseaux de Pétri, RTS 03/2001 Paris (introduction) Kaiser C, ACCOV 2003/2004, Le temps réel (chapitre 4.3) Krishnmaurthy Y., 2002, Real-time CORBA 2.0: Dynamic Scheduling Krishnmaurthy Y.,Pyarali I., 2003, Design and Implementation Issues in the Dynamic Scheduling Real -Time CORBA 2.0 Specification Largeteau G., Geniet D., 2002, Validation Temporelle d Applications Temps Réel Distribuées à Contraintes Strictes (introduction) Peyre J.F., Informatique industrielle A , Systèmes temps réel, Partie I et Partie III Richard P., Richard M., Cottet F., 2000, Analyse holistique des systèmes temps réel distribués Richard P., Richard M., Cottet F., 2003, Placement et Validation dans les Systèmes Temps Réel Distribués Schmidt D.C., Kuhns F., 2000, An Overview of the Real-time CORBA Specification Schmidt D.C., Vinoski S., 2002, Object Interconnections: Real-time CORBA, Part 4: Protocol Selection and Explicit Binding, C/C++ Users Jounal (conclusion) Probatoire Ordonnancement temps réel des tâches et des messages 37

38 Glossaire/Abréviations ATR : Application temps réel CAN : Control Area Network CT : Configuration de tâches («task set») CORBA : Common Object Request Broker Architecture DM : Deadline Monotonic DRE : Distributed Real-time and Embedded DT : Distributable Thread ou Processus Léger Distribuable ECU : Electronic Component Unit EDF : Earliest Deadline First (priorité dynamique) GIOP : General Inter-ORB Protocol GUID : Globally Unique IDentifier LLF : Least Laxity First (priorité dynamique) Middleware : Passerelle Applicative MUF : Maximum Urgency First POO : Programmation Orientée Objet OMG : Object Management Group ORB : Object Request Broker RM : Rate Monotonic (priorité statique) RT-CORBA : Real Time CORBA RTORB : Real Time ORB SITR : Système Informatique Temps Réel SSA : Scheduling System Architecture SSeg : Scheduling Segment Tap : Tâche apériodique Thread : Processus léger Tp : Tâche périodique TR : Temps Réel VAN : Vehicle Area Network HL : ordonnanceur «Hors Ligne» EL : ordonnanceur «En Ligne» Probatoire Ordonnancement temps réel des tâches et des messages 38

39 Tables des illustrations Figure 1.1 Modèle temporel d une tâche périodique... 5 Figure 1.2 Exemple d ordonnancement Rate Monotonic Préemptif... 7 Figure 1.3 Exemple d ordonnancement EDF de tâches à échéance sur requête... 7 Figure 1.4 Exemple d ordonnancement avec un serveur sporadique... 8 Figure 1.5 Exemple de graphe de précédence Figure 1.6 Modification des paramètres de tâches dépendantes pour EDF Figure 1.7 Graphe de précédence de cinq tâches d une application temps réel Figure 1.8 Problématique de la prédictibilité du temps de réponse Figure 1.9 Pire temps de réponse d une tâche en partage de ressources critiques Figure 1.10 Exemple d inversion de priorité Figure 1.11 Résolution de l inversion de priorité par le mécanisme de l héritage de priorité. 15 Figure 2.1 Ordonnancement d une configuration de tâches distribuée Figure 2.2 La gigue d activation est l attente due à la fin de la tâche précédente Figure 2.3 Graphe de précédence des tâches et des messages d un système TR distribué Figure 2.4 Ordonnancement temps réel de tâches et de messages dans un système distribué. 23 Figure 2.5 Graphe de précédence d un système embarqué Figure 3.1 Architecture CORBA Figure 3.2 Correspondance des priorités natives et des priorités RT-CORBA Figure 3.3 Modèles de priorités RT-CORBA Figure 3.4 Architecture CORBA Temps Réel Figure 3.5 Invocation distribuée et imbriquée d un Scheduling Segment Figure 3.6 Architecture modulaire du micro noyau ZEN Probatoire Ordonnancement temps réel des tâches et des messages 39

40 ERRATUM Page 4, dernière ligne «CH i (t)=c i (t)/d i (t) la charge résiduelle 0 CH i (t) u i CH(e i )=0» Page 5 Figure 1.1 : rajouter TR i C i + Activation Echéance Réactivation s i TR i e i r i D i T i Page 6, Période d étude [0, PPCM(T i )] & [Min(r i0 ), Max{r i0,(r j0 +D j )}+2*PPCM(T i )] Page 9 «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.» Page 13 équation [Éq. 1-4] T0 TR 0 C 0 + Min( n2, m) CRmax + Ci i HPT Ti Page 17 avant «Ceci pour lui permettre de respecter son échéance d i», «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 ).» Page 19, , remplacer les valeurs du tableau Tâche C i T i U i PPCM(t 1, t 2,t 3,t 4,t 5 )=300 τ τ U=0.916 τ τ Τ Page 23, 2.3 remplacer «modéliseé «par «modélisée» Page 23, rajouter dans glossaire définition ECU : Electronic Component Unit Page 25, avant dernier paragraphe, dernière phrase, remplacer «holiste» par «holistique» Page 25, dernière phrase, «Ceci afin de tester et d intégrer facilement, mais de manière rigoureuse, ces nouveaux horizons possibles.» Page 26, 3.1, «ou du moins être tenue au courant» Page 29, , 8 ème ligne, remplacer «et se se termine» par «et se termine» Page 34, 3.3.3, dernière phrase «freine l adoption à grande échelle des implémentations C++ du groupe TAO.» Page 35, dernière phrase, remplacer le point virgule situé après «code» par une virgule. Page 38 rajouter dans glossaire définition POO : Programmation Orientée Objet d i Temps Probatoire Ordonnancement temps réel des tâches et des messages 40

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel [email protected] Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches

Plus en détail

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

Analyse du temps de réponse des systèmes temps réel Analyse du temps de réponse des systèmes temps réel Pascal Richard Laboratoire d Informatique Scientifique et Industrielle, ENSMA BP 40198 Téléport 2 F-86960 Futuroscope [email protected] RÉSUMÉ.

Plus en détail

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

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement Master 2 pro Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement Isabelle PUAUT / Rémi COZOT Université de Rennes I 1 Applications temps-réel embarquées Systèmes en interaction avec l

Plus en détail

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel Ordonnancement centralisé par Francis COTTET Professeur d université (ENSMA, Poitiers Futuroscope) Ingénieur de l Institut national polytechnique de Grenoble Docteur ès sciences

Plus en détail

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

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 i LE TEMPS RÉEL 1. PRÉSENTATION DU TEMPS RÉEL 1.1. APPLICATIONS TEMPS RÉEL 1.2. CONTRAINTES DE TEMPS RÉEL 2. STRUCTURES D'ACCUEIL POUR LE TEMPS RÉEL 2.1. EXÉCUTIFS TEMPS RÉEL 2.2. RÉSEAUX LOCAUX TEMPS

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

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

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

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

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm) Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 - Evénements et architectures - Spécifications de performances

Plus en détail

Introduction au temps réel

Introduction au temps réel Introduction au temps réel [email protected] Version 2.0 Définition d un système temps réel Un système temps réel se compose d'un ou plusieurs sous-systèmes devant répondre en un temps fini et spécifié

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. [email protected] Résumé Ce document

Plus en détail

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

1 Mesure de la performance d un système temps réel : la gigue TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core

Plus en détail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

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

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

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

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d

Plus en détail

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

MEAD : temps réel et tolérance aux pannes pour CORBA MEAD : un intergiciel temps-réel et tolérant aux pannes pour CORBA Master 2 Informatique Recherche Université de Marne-la-Vallée Vendredi 3 mars 2006 Plan 1 Introduction 2 Solutions existantes 3 Concilier

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

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

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Network musical jammin

Network musical jammin Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le

Plus en détail

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

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006. (19) TEPZZ 68448A_T (11) EP 2 68 448 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 13.03.2013 Bulletin 2013/11 (1) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.01) (21) Numéro de dépôt:

Plus en détail

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

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Cours A7 : Temps Réel

Cours A7 : Temps Réel Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Organisation des cours 12 prochaines séances 6 janvier au 24 mars, Partiel le 27 janvier, Les 3 et 24

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

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

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Introduction aux systèmes temps réel. Iulian Ober IRIT [email protected]

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr Introduction aux systèmes temps réel Iulian Ober IRIT [email protected] Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Chapitre 4 : Exclusion mutuelle

Chapitre 4 : Exclusion mutuelle Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

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

Un concept multi-centre de données traditionnel basé sur le DNS Confiez vos activités critiques à un expert S il est crucial pour vos activités commerciales que vos serveurs soient disponibles en continu, vous devez demander à votre hébergeur de vous fournir une solution

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

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

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

La surveillance réseau des Clouds privés

La surveillance réseau des Clouds privés La surveillance réseau des Clouds privés Livre blanc Auteurs : Dirk Paessler, CEO de Paessler AG Gerald Schoch, Rédactrice technique de Paessler AG Publication : Mai 2011 Mise à jour : Février 2015 PAGE

Plus en détail

Exercices de dénombrement

Exercices de dénombrement Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.

Plus en détail

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

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ Auteur : S.& S. Etienne F7n COUP DE BOURSE, NOMBRE DÉRIVÉ TI-Nspire CAS Mots-clés : représentation graphique, fonction dérivée, nombre dérivé, pente, tableau de valeurs, maximum, minimum. Fichiers associés

Plus en détail

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

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

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

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

Continuité et dérivabilité d une fonction

Continuité et dérivabilité d une fonction DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité

Plus en détail

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

Efficace et ciblée : La surveillance des signaux de télévision numérique (2) Efficace et ciblée : La surveillance des signaux de télévision numérique (2) La première partie de cet article publié dans le numéro 192 décrit la méthode utilisée pour déterminer les points de surveillance

Plus en détail

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

DAns un système multi-utilisateurs à temps partagé, plusieurs processus Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont

Plus en détail

Mathématiques financières

Mathématiques financières Mathématiques financières Table des matières 1 Intérêt simple 1 1.1 Exercices........................................ 1 2 Intérêt composé 2 2.1 Taux nominal, taux périodique, taux réel.......................

Plus en détail

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

Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 -Définition et problématique - Illustration par des exemples -Automatisme:

Plus en détail

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

Plus en détail

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

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

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

TRAAM STI 2013-2014 Acquisition et exploitations pédagogiques des données sur un système pédagogique TRAAM STI 2013-2014 Acquisition et exploitations pédagogiques des données sur un système pédagogique Bilan technique et éléments de développement Fonctionnalités attendues Une vingtaine d établissements

Plus en détail

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

FORMAT FORMA ION SUR LA ION SUR LA GESTION DE PROJET & MS PROJECT FORMATION SUR LA GESTION DE PROJET & MS PROJECT Présentation rapide Jamal Achiq Consultant - Formateur sur le management de projet, MS Project, et EPM Certifications: Management de projet : «PRINCE2, Praticien»

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Internet et Multimédia Exercices: flux multimédia

Internet et Multimédia Exercices: flux multimédia Internet et Multimédia Exercices: flux multimédia P. Bakowski [email protected] Applications et flux multi-média média applications transport P. Bakowski 2 Applications et flux multi-média média applications

Plus en détail

TURBOS Votre effet de levier sur mesure

TURBOS Votre effet de levier sur mesure TURBOS Votre effet de levier sur mesure Société Générale attire l attention du public sur le fait que ces produits, de par leur nature optionnelle, sont susceptibles de connaître de fortes fluctuations,

Plus en détail

document proposé sur le site «Sciences Physiques en BTS» : http://nicole.cortial.net BTS AVA 2015

document proposé sur le site «Sciences Physiques en BTS» : http://nicole.cortial.net BTS AVA 2015 BT V 2015 (envoyé par Frédéric COTTI - Professeur d Electrotechnique au Lycée Régional La Floride Marseille) Document 1 - Etiquette énergie Partie 1 : Voiture à faible consommation - Une étiquette pour

Plus en détail

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

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech [email protected] Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

Cours A7 : Temps Réel

Cours A7 : Temps Réel Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : les mécanismes multitâches, la gestion des priorités, l ordonnancement, la gestion

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

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

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia Les systèmes de base de données temps réels Pokrovskaya Natalia, Kabbali Nadia Année académique 2008-2009 Table des matières 1 Introduction 2 2 Système de gestion de bases de données classiques 3 3 Systèmes

Plus en détail

White Paper - Livre Blanc

White Paper - Livre Blanc White Paper - Livre Blanc Développement d applications de supervision des systèmes d information Avec LoriotPro Vous disposez d un environnement informatique hétérogène et vous souhaitez à partir d une

Plus en détail

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

EXERCICE 4 (7 points ) (Commun à tous les candidats) EXERCICE 4 (7 points ) (Commun à tous les candidats) On cherche à modéliser de deux façons différentes l évolution du nombre, exprimé en millions, de foyers français possédant un téléviseur à écran plat

Plus en détail

Consolidation de stockage

Consolidation de stockage (Information sur la technologie Sto-2003-2) Wolfgang K. Bauer Spécialiste stockage Centre de compétence transtec AG Waldhörnlestraße 18 D-72072 Tübingen Allemagne TABLE DES MATIÈRES 1 RÉSUMÉ...3 2 INTRODUCTION...4

Plus en détail

Introduction à la théorie des files d'attente. Claude Chaudet [email protected]

Introduction à la théorie des files d'attente. Claude Chaudet Claude.Chaudet@enst.fr Introduction à la théorie des files d'attente Claude Chaudet [email protected] La théorie des files d'attente... Principe: modélisation mathématique de l accès à une ressource partagée Exemples réseaux

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

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

Orientations pour la gestion documentaire des courriels au gouvernement du Québec Orientations pour la gestion documentaire des courriels au gouvernement du Québec Janvier 2009 Dépôt légal Bibliothèque et Archives nationales du Québec, 2010 ISBN : 978-2-550-59635-6 Table des matières

Plus en détail

CCP PSI - 2010 Mathématiques 1 : un corrigé

CCP PSI - 2010 Mathématiques 1 : un corrigé CCP PSI - 00 Mathématiques : un corrigé Première partie. Définition d une structure euclidienne sur R n [X]... B est clairement symétrique et linéaire par rapport à sa seconde variable. De plus B(P, P

Plus en détail

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

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Introduction aux algorithmes répartis

Introduction aux algorithmes répartis Objectifs et plan Introduction aux algorithmes répartis Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR http://sardes.inrialpes.fr/people/krakowia! Introduction aux algorithmes

Plus en détail

Optimisation for Cloud Computing and Big Data

Optimisation for Cloud Computing and Big Data 1 / 23 Optimisation for Cloud Computing and Big Data Olivier Beaumont, Lionel Eyraud-Dubois 2 / 23 Aujourd hui Problèmes de fiabilité on va oublier la dynamicité Placement de VMs en programmation par contraintes

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

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

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Caractéristiques des ondes

Caractéristiques des ondes Caractéristiques des ondes Chapitre Activités 1 Ondes progressives à une dimension (p 38) A Analyse qualitative d une onde b Fin de la Début de la 1 L onde est progressive puisque la perturbation se déplace

Plus en détail

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

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre : Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant

Plus en détail

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

Analyse des coûts. 1 ère année DUT GEA, 2005/2006 Analyse des coûts Analyse des coûts Les techniques de calcul et d analyse des coûts portent le nom de comptabilité analytique ou comptabilité de gestion. Ces deux termes seront utilisés indifféremment dans ce cours. Contrairement

Plus en détail

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

La Certification de la Sécurité des Automatismes de METEOR 1 La Certification de la Sécurité des Automatismes de METEOR 2 un mot sur METEOR 3 Le projet METEOR, c'est... un système automatique complexe fortement intégré matériel roulant, équipements électriques,

Plus en détail

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

Gouvernance des mesures de sécurité avec DCM-Manager. Présentation du 22 mai 2014 Gouvernance des mesures de sécurité avec DCM-Manager Présentation du 22 mai 2014 Gérer les actifs logiciels et leur répartition Maîtriser le durcissement des configurations Suivre l application des correctifs

Plus en détail

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

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

Plus en détail

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

CEG4566/CSI4541 Conception de systèmes temps réel CEG4566/CSI4541 Conception de systèmes temps réel Chapitre 6 Vivacité, sécurité (Safety), fiabilité et tolérance aux fautes dans les systèmes en temps réel 6.1 Introduction générale aux notions de sécurité

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

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

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes. Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis

Plus en détail

Erreurs les plus fréquentes Guide de dépannage

Erreurs les plus fréquentes Guide de dépannage Erreurs les plus fréquentes Guide de dépannage janvier 2012 Le présent manuel et le support électronique qui l accompagne sont des produits exclusifs de Paiements Optimal, S.A.R.L. Leur usage est réservé

Plus en détail

Temps Réel. Jérôme Pouiller <[email protected]> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

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

!-.!#- $'( 1&) &) (,' &*- %,! 0 $'( 1&) +&&/ ( &+&& &+&))&( -.#- 2& -.#- &) (,' %&,))& &)+&&) &- $ 3.#( %, (&&/ 0 ' Il existe plusieurs types de simulation de flux Statique ou dynamique Stochastique ou déterministe A événements discrets

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Manuel utilisateur. Version 1.6b

Manuel utilisateur. Version 1.6b Manuel utilisateur Version 1.6b Table des matières Table des matières... 2 1. Introduction... 3 a. But de ce document... 3 b. Objet de ce document... 3 c. Remarques et commentaires... 3 2. Premiers pas

Plus en détail

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

Systèmes et exécutifs temps-réel Systèmes et exécutifs temps-réel Licence professionnelle «Systèmes embarqués dans l automobile» Isabelle PUAUT (Cours + TD) Jean-François DEVERGE et Christophe Pais (TP) 1 Applications temps-réel Systèmes

Plus en détail