Ordonnancement temps réel monoprocesseur Frank Singhoff Bureau C-207 Université de Brest, France singhoff@univ-brest.fr UE systèmes temps réel, Université de Brest Page 1/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Outils de vérification. 6. Résumé. 7. Références. UE systèmes temps réel, Université de Brest Page 2/66
Ordonnancement, définitions (1) Objectifs : prendre en compte les besoins d urgence, d importance des applications temps réel. Eléments de taxinomie : Algorithmes hors ligne/en ligne : moment où sont effectués les choix d allocation. Priorités statiques/dynamiques : les priorités changent elles? Algorithmes statiques/dynamiques. Algorithmes préemptifs ou non : tâches interruptibles par d autres? non préemptif = 1. Exclusion mutuelle des ressources aisée. 2. Surcoût de l ordonnanceur moins élevé. 3. Efficacité moindre. UE systèmes temps réel, Université de Brest Page 3/66
Ordonnancement, définitions (2) Propriétés recherchées : 1. Faisabilité/ordonnançabilité : est il possible d exhiber un test de faisabilité? Condition permettant de décider hors ligne du respect des contraintes des tâches. Exemple : pire temps de réponse des tâches. 2. Optimalité : critère de comparaison des algorithmes (un algorithme est dit optimal s il est capable de trouver un ordonnancement pour tout ensemble faisable de tâches). 3. Complexité : les tests de faisabilité sont ils polynômiaux? exponentiels? passage à l échelle? 4. Facilité de mise en œuvre : l ordonnanceur est-il facile à implanter dans un système d exploitation? UE systèmes temps réel, Université de Brest Page 4/66
Vérification/validation d un système Exemple de processus de vérification d un système: 1. On définit l architecture matérielle et l environnement d exécution: la capacité mémoire, le processeur et sa puissance de calcul, le système d exploitation (et donc l algorithme d ordonnancement des tâches). 2. On réalise le code fonctionnel (ex: fonction C d un thread POSIX). 3. On conçoit l architecture logicielle: comment associer le code fonctionnel et le matériel. Conduit à modéliser les tâches du système ainsi que leurs contraintes et caractéristiques temporelles. 4. On valide la faisabilité de l architecture logicielle sur l architecture matérielle, c-a-d, entre autre la faisabilité du jeu de tâches. 5. Eventuellement, on revient à 1, 2 ou 3. Cycle de conception/vérification. UE systèmes temps réel, Université de Brest Page 5/66
Notion de tâche (1) Processeur = unique ressource partageable dans un système temps réel = exécutif temps réel. Tâche : suite d instructions + données + contexte d exécution (état). Famille de tâches : Tâches dépendantes ou non. Tâches importantes, urgentes. Tâches répétitives : activations successives (tâches périodiques ou sporadiques) = fonctions critiques. Tâches non répétitives/apériodiques : une seule activation = fonctions non critiques. UE systèmes temps réel, Université de Brest Page 6/66
Notion de tâche (2) Paramètres définissant une tâche i : Arrivée de la tâche dans le système : S i. Pire temps d exécution d une activation : C i (capacité). Période d activation : P i. Délai critique : D i (relatif à P i si tâche périodique, à S i si tâche apériodique). Date d exécution au plus tôt : R i. UE systèmes temps réel, Université de Brest Page 7/66
Notion de tâche (3) Un modèle simplifié de tâches : le modèle de tâches périodiques synchrones à échéance sur requête [LIU 73]. Caractéristiques : Tâches périodiques. Tâches indépendantes. avec i : S i = 0 = instant critique (pire cas). avec i : P i = D i = tâches à échéance sur requête. UE systèmes temps réel, Université de Brest Page 8/66
Ordonnanceur : structure, fonctions (1) Etape 1 Etape 2 Etape 3 Tâches prêtes Calcul des priorités 010101 Priorité min Priorité max Election Tâche élue Trois fonctions principales : (1) Calcul de priorité : En ligne ou hors ligne. Période : Rate Monotonic (RM). Echéance : Deadline Monotonic (DM), Earliest Deadline First (EDF). Laxité : Least Laxity First (LLF). (laxité à l instant t : L i (t) = D i (t) reliquat de C i à exécuter). Etc. UE systèmes temps réel, Université de Brest Page 9/66
Ordonnanceur : structure, fonctions (2) Etape 1 Etape 2 Etape 3 Tâches prêtes Calcul des priorités 010101 Priorité min Priorité max Election Tâche élue (2) Gestion de la/des files d attente : Une file par priorité. Application d une politique (FIFO, Round-Robin,...). Exemple : POSIX 1003.1b, Chorus, Solaris, etc... (3) Election : Election de la tâche en tête de file. HPF : plus haute priorité d abord. EDF : plus courte échéance d abord. LLF : plus petite laxité d abord. UE systèmes temps réel, Université de Brest Page 10/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Outils de vérification. 6. Résumé. 7. Références. UE systèmes temps réel, Université de Brest Page 11/66
Algorithmes classiques 1. Algorithme à priorités fixes, avec affectation des priorités selon Rate Monotonic (RM, RMS, RMA). 2. Algorithme à priorités dynamiques, Earliest Deadline First (EDF). UE systèmes temps réel, Université de Brest Page 12/66
Ordonnancement à priorité fixe (1) Caractéristiques : Priorités fixes = analyse hors ligne = applications statiques et critiques. Complexité faible et mise en œuvre facile dans un système d exploitation. Fonctionnement : 1. Affectation hors ligne des priorités. 2. Election de la tâche de plus forte priorité. Affectation des priorités selon Rate Monotonic : Algorithme optimal dans la classe des algorithmes à priorité fixe. Tâches périodiques uniquement. Priorité = inverse de la période. UE systèmes temps réel, Université de Brest Page 13/66
Ordonnancement à priorité fixe (2) Cas préemptif : T1 : C1=6 ; P1=10 (gris) T2 : C2=9 ; P2=30 (blanc) Noir=libre D2 D1 D1 D1 0 10 20 30 Cas non préemptif : D1 D1 D2 D1 0 10 20 30 Echéance manquée UE systèmes temps réel, Université de Brest Page 14/66
Ordonnancement à priorité fixe (3) Faisabilité/ordonnançabilité : 1. Période d étude = [0,PPCM(P i )]. Solution exacte. Toute affectation de priorité. Préemptif ou non. 2. Taux d utilisation (préemptif et RM seulement) : U = n i=1 C i P i n(2 1 n 1) Condition suffisante mais non nécessaire : solution pessimiste donc. 3. Temps de réponse = délai entre l activation d un tâche et sa terminaison. Solution parfois exacte (selon les modèles de tâches). Toute affectation de priorité. Préemptif ou non. UE systèmes temps réel, Université de Brest Page 15/66
Ordonnancement à priorité fixe (4) Calcul du pire temps de réponse : Hypothèses : cas préemptif. Principe : pour une tâche i, on cherche à évaluer, au pire cas, son temps d exécution + son temps d attente lorsque des tâches plus prioritaires s exécutent. Où encore : r i = C i + I j r i = C i + j hp(i) ri P j j hp(i) C j Où hp(i) est l ensemble des tâches de plus forte priorité que i ; x est l entier directement plus grand que x. UE systèmes temps réel, Université de Brest Page 16/66
Ordonnancement à priorité fixe (5) Technique de calcul : on évalue de façon itérative w n i par : w n+1 i = C i + On démarre avec w 0 i = C i. Conditions d arrêt : Echec si w n i > P i. Réussite si w n+1 i = w n i. j hp(i) w n i P j C j UE systèmes temps réel, Université de Brest Page 17/66
Ordonnancement à priorité fixe (6) Exemple : P1=7 ; C1=3; P2=12 ; C2=2 ; P3=20 ; C3=5 w 0 1 = 3 = r 1 = 3 w 0 2 = 2 w 1 2 = 2+ 2 7 3 = 5 w 2 2 = 2+ 5 7 3 = 5 = r2 = 5 w 0 3 = 5 w3 1 = 5+ 5 7 3+ 5 12 2 = 10 w3 2 = 5+ 10 7 3+ 10 12 2 = 13 w3 3 = 5+ 13 7 3+ 13 12 2 = 15 w3 4 = 5+ 15 7 3+ 15 12 2 = 18 w 5 3 = 5+ 18 7 3+ 18 12 2 = 18 = r3 = 18 UE systèmes temps réel, Université de Brest Page 18/66
Ordonnancement à priorité fixe (7) Comment faire cohabiter des tâches apériodiques dans un système ordonnancé par priorité fixe avec Rate Monotonic : 1. Les tâches apériodiques ne sont pas urgentes = priorités plus faible que les tâches périodiques. 2. Les tâches apériodiques sont urgentes = utilisation de serveur de tâches apériodiques. UE systèmes temps réel, Université de Brest Page 19/66
Ordonnancement à priorité fixe (8) Serveur de tâches apériodiques : tâche périodique dédiée à l exécution des tâches apériodiques. T1 : C1=4 ; P1=20 (gris) T2 : C2=12 ; P2=30 (blanc) S : CS=4 ; PS=10; A arrive en t=4 ; CA=3 B arrive en t=9 ; CB=4 Noir=libre A B A A A B B B B 4 10 12 20 23 27 30 Serveur par scrutation : exécution des tâches apériodiques arrivées avant le début de l activation du serveur ; ne consomme pas de temps processeur si pas de tâche apériodique. Temps de scrutation considéré négligeable. Simple mais ressource gaspillée. Autres serveurs : serveur sporadique, différé,... UE systèmes temps réel, Université de Brest Page 20/66
L algorithme EDF (1) Caractérisques : Algorithme à priorité dynamique = mieux adapté que priorité fixe aux applications dynamiques. Supporte les tâches périodiques et les tâches apériodiques. Algorithme optimal : utilise jusqu à 100 pourcents de la ressource processeur. Mise en œuvre difficile dans un système d exploitation. Instable en sur-charge : moins déterministe que priorité fixe. UE systèmes temps réel, Université de Brest Page 21/66
L algorithme EDF (2) Fonctionnement : 1. Calcul de la priorité = calcul d une échéance. Soit D i (t), l échéance à l instant t et D i, le délai critique de la tâche i : Tâche apériodique : D i (t) = D i + S i. Tâche périodique : D i (t) = date de début de l activation courante à l instant t + D i. 2. Election : élection de la plus courte échéance d abord. UE systèmes temps réel, Université de Brest Page 22/66
L algorithme EDF (3) Cas préemptif : T1 : C1=6 ; P1=10 (gris) T2 : C2=9 ; P2=30 (blanc) Noir = libre D2 D1 D1 D1 0 10 20 30 Cas non préemptif : D2 D1 D1 D1 0 10 20 30 Echéance manquée UE systèmes temps réel, Université de Brest Page 23/66
L algorithme EDF (4) Faisabilité/Ordonnançabilité : 1. Période d étude : idem priorité fixe (tâches périodiques). 2. Taux d utilisation, cas préemptif, tâches périodiques indépendantes et synchrones: Condition nécessaire et suffisante si i : D i = P i : U = n i=1 C i P i 1 (uniquement nécessaire si i : D i < P i ) Condition suffisante si i : D i < P i : U = n i=1 C i D i 1 3. Temps de réponse : complexité importante. UE systèmes temps réel, Université de Brest Page 24/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Outils de vérification. 6. Résumé. 7. Références. UE systèmes temps réel, Université de Brest Page 25/66
La norme POSIX 1003.1b (1) sched_get_priority_min()... Niveau de priorité le plus faible n n+1... sched_get_priority_max() Niveau de priorité le plus fort POSIX 1003.1b [GAL 95] = extensions temps réel du standard ISO/ANSI POSIX définissant une interface portable de systèmes d exploitation. Modèle d ordonnancement : Priorités fixes, préemptif = RM facile. Une file d attente par priorité + politiques de gestion de la file (SCHED_FIFO, SCHED_RR, SCHED_OTHERS,...). UE systèmes temps réel, Université de Brest Page 26/66
La norme POSIX 1003.1b (2) Gestion des files d attente POSIX : élection de la tâche en tête de file d attente de plus haute priorité. Principales politiques proposées : 1. SCHED_FIFO : la tâche quitte la tête de file si : Terminaison de la tâche. Blocage de la tâche (E/S, attente d un délai) => remise en queue. Libération explicite => remise en queue. 2. SCHED_RR : idem SCHED_F IF O mais en plus, la tâche en tête de file est déplacée en queue après expiration d un quantum (round robin). 3. SCHED_OT HERS : fonctionnement non normalisé. UE systèmes temps réel, Université de Brest Page 27/66
La norme POSIX 1003.1b (3) Exemple : Tâches C i S i Priorité Politique a 1 7 1 FIFO b 5 0 4 RR c 3 0 4 RR d 6 4 2 FIFO c b b c d d d a d d d b c b b 0 4 5 7 10 15 Quantum SCHED_RR = 1 unité de temps. Niveau de plus forte priorité : 1. UE systèmes temps réel, Université de Brest Page 28/66
La norme POSIX 1003.1b (4) Ordonnanceurs POSIX 1003.1b : #define SCHED_OTHER 0 #define SCHED_FIFO 1 #define SCHED_RR 2 Consultation des paramètres spécifiques à la mise en œuvre de POSIX 1003.1b : int sched_get_priority_max(int policy); int sched_get_priority_min(int policy); int sched_rr_get_interval(pid_t pid, struct timespec *tp); Libération volontaire du processeur : int sched_yield(void); UE systèmes temps réel, Université de Brest Page 29/66
La norme POSIX 1003.1b (5) Paramètre(s) ordonnanceur : struct sched_param { int sched_priority;... }; Consultation ou modification de l ordonnanceur : int sched_setscheduler(pid_t pid, int policy, const struct sched_param *p); int sched_getscheduler(pid_t pid); Consultation ou modification des paramètres d ordonnancement : int sched_getparam(pid_t pid, struct sched_param *p); int sched_setparam(pid_t pid, const struct sched_param *p); UE systèmes temps réel, Université de Brest Page 30/66
La norme POSIX 1003.1b (6) Initialisation : héritage par fork(), démarrage en section critique. Exemple : cf. tâches page 14. struct sched_param parm; int res=-1;... /* Tache T1 ; P1=10 */ parm.sched_priority=15; res=sched_setscheduler(pid_t1,sched_fifo,&parm); if(res<0) perror("sched_setscheduler tache T1"); /* Tache T2 ; P2=30 */ parm.sched_priority=10; res=sched_setscheduler(pid_t2,sched_fifo,&parm); if(res<0) perror("sched_setscheduler tache T2"); UE systèmes temps réel, Université de Brest Page 31/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Outils de vérification. 6. Résumé. 7. Références. UE systèmes temps réel, Université de Brest Page 32/66
Prise en compte des dépendances Différentes dépendances: 1. Partage de ressources. 2. Contraintes de précédence (ex : communications). UE systèmes temps réel, Université de Brest Page 33/66
Partage de ressources (1) Préemptée T1 T3 P(mutex) P(mutex) V(mutex) Bloquée T2 Arrivée Accéder à une ressource c est éventuellement devoir attendre qu elle se libère = borne sur le temps de blocage (noté B i ). Problèmes : Iinversion de priorités : comment réduire la durée de l inversion de priorité? = protocoles d héritage de priorité. Comment finement évaluer B i? Caractéristiques des protocoles : calcul de B i, nombres de ressources accessibles, complexité, interblocage possible ou non, etc. UE systèmes temps réel, Université de Brest Page 34/66
Partage de ressources (2) prio T1 = prio T3 T1 T3 P(mutex) P(mutex) V(mutex) prio T1 = valeur initiale V(mutex) T2 Arrivée Bloquée Héritage simple (ou Priority Inheritance Protocol ou PIP) : Une tâche qui bloque une autre plus prioritaire qu elle, exécute la section critique avec la priorité de la tâche bloquée. Une seule ressource : sinon interblocage possible. B i = somme des sections critiques des tâches moins prioritaires que i. UE systèmes temps réel, Université de Brest Page 35/66
Partage de ressources (3) PIP ne peut pas être utilisé avec plusieurs ressources = interblocage. On implante généralement PCP (Priority Ceiling Protocol) [SHA 90] (ex. VxWorks). Deux variétés de PCP : OCPP et ICPP. Exemple d Immediate Ceiling Priority Protocol ou ICPP : Priorité plafond d une ressource = priorité statique maximale de toutes les tâches qui utilisent la ressource. Priorité dynamique d une tâche = maximum (priorité statique de la tâche, priorité plafond de toutes les ressources allouées). B i = plus grande section critique. UE systèmes temps réel, Université de Brest Page 36/66
Partage de ressources (4) Soit n tâches périodiques synchrones à échéance sur requête, ordonnées de façon décroissantes selon leur priorité (avec B n = 0 donc). Prise en compte du temps de blocage dans : Critère d ordonnançabilité RM : i,1 i n : i 1 k=1 Critère d ordonnançabilité EDF/LLF : C k P k + C i +B i P i i(2 1 i 1) i,1 i n : i 1 k=1 C k P k + C i +B i P i 1 UE systèmes temps réel, Université de Brest Page 37/66
Partage de ressources (5) Prise en compte du temps de blocage B i dans le calcul du temps de réponse d un ensemble de tâches périodiques synchrones à échéances sur requêtes, ordonnancées priorité fixe préemptif : r i = C i +B i + j hp(i) ri Où hp(i) est l ensemble des tâches de plus forte priorité que i. P j C j Résolution par la méthode itérative : w n+1 i = C i +B i + j hp(i) w n i P j C j Attention : avec B i, le calcul du temps de réponse devient une condition suffisante mais non nécessaire. C est une solution pessimiste. UE systèmes temps réel, Université de Brest Page 38/66
Contraintes de précédence (1) Principales approches : 1. Conditions initiales (paramètre S i ). Décaler les réveils selon les contraintes de précédence. Tests d ordonnançabilité spécifiques. 2. Affectation des priorités (Chetto/Blazewicz [BLA 76, CHE 90]). 3. Modification des délais critiques (Chetto/Blazewicz). 4. Utilisation des paramètres "Jitter" et/ou "offset" [TIN 94, TIN 92]. Calcul de pire temps de réponse 5. Heuristique d ordonnancement (ex : Xu et Parnas [XU 90]). UE systèmes temps réel, Université de Brest Page 39/66
Contraintes de précédence (2) Principe de Blazewicz [BLA 76] et Chetto et al [CHE 90] : rendre les tâches indépendantes en modifiant leurs paramètres. Hypothèses : Tâches soit apériodiques, soit périodiques de même période. Technique : 1. Modification pour RM : i,j i j : priorite i > priorite j 2. Modification pour EDF : D i = min(d i,min( j i j : D j C j)). UE systèmes temps réel, Université de Brest Page 40/66
Contraintes de précédence (3) T1 T3 T2 T4 C i D i Di T 4 2 14 14 T 3 1 8 8 T 2 2 10 7 T 1 1 5 5 Exemple : EDF + tâches apériodiques. D4 = 14; D3 = 8; D2 = min(d 2,D3 C 3,D4 C 4 ) = min(10,8 1,14 2) = 7; D1 = min(d 1,D2 C 2,D3 C 3 ) = min(5,7 2,8 1) = 5; UE systèmes temps réel, Université de Brest Page 41/66
Contraintes de précédence (4) Utilisation du Jitter. Exemple historique = le timer d un système est modélisé comme une tâche périodique avec P timer = 10 ms,c timer = 3 ms. On souhaite réveiller une tâche i à l instant t = 15 ms. Réveil effectif de i 0 10 20 15 : Réveil théorique de i La date effective de réveil de la tâche i sera 23ms. Sa gigue est de J i = 8 ms. Temps de réponse = r i = w i +J i, avec : wi +J j w i = C i + j hp(i) P j C j UE systèmes temps réel, Université de Brest Page 42/66
Contraintes de précédence (5) T1 : C1=6 ; P1=18 (gris) T2 : C2=9 ; P2=18 (noir) T1 T2 Temps de réponse T1 Activation n Activation n+1 Temps de réponse T2 Jitter T2 = Temps de réponse T1 Exemple du producteur/consommateur : T1 et T2 sont activées toutes les 18 unités de temps. T1 lit un capteur et transmet la valeur vers T2 qui doit l afficher à l écran. T2 doit être activée sur terminaison de T1. Quel est le temps de réponse de T2? UE systèmes temps réel, Université de Brest Page 43/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Outils de vérification. 6. Résumé. 7. Références. UE systèmes temps réel, Université de Brest Page 44/66
Outils de vérification (1) Un outil d analyse de l ordonnancement temps réel doit offrir : Un moyen pour décrire le système à vérifier (architecture et comportement). Des moyens d analyse à proprement dit, qui peuvent être basés sur : 1. Méthodes algébriques/analytiques: tests de faisabilité. 2. Le Model-checking: le système est décrit grâce à un modèle avec un langage formel, afin d énumérer exhaustivement l ensemble des états potentiels du modèle. 3. La simulation: calcul de chronogrammes puis analyse (vérification généralement partielle). UE systèmes temps réel, Université de Brest Page 45/66
Outils de vérification (2) Algèbrique/analytiqye Model Simulation checking Preuve oui oui non Système de grande taille oui parfois parfois Tâches/ordonnanceurs non oui oui spécifiques Facile à employer oui non parfois Quel type d outil doit on employer? Tous... ils sont complémentaires. UE systèmes temps réel, Université de Brest Page 46/66
Outils de vérification (3) Exemples d outils commerciaux/open-source : MAST, Université de Cantabria, http://mast.unican.es/ Rapid-RMA, Tri-Pacific Software Inc, http://www.tripac.com/ Times, Université de Uppsala, http://www.timestool.com/ Cheddar, Université de Brest, http://beru.univ-brest.fr/~singhoff/cheddar... UE systèmes temps réel, Université de Brest Page 47/66
Outils de vérification (4) Cheddar = outil pédagogique développé par l Université de Bretagne Occidentale/Lab-STICC. Modèle d architecture : Support pour divers langages d architecture: AADL, UML/Marte,... Propose un modèle d architecture propriétaire. Inter-opérabilité avec différents outils de modélisation (Stood, TOPCASED, IBM Rational Software Architect, POOA-visio). Sujets de TD + corrections : http://beru.univbrest.fr/~singhoff/cheddar/contribs/educational/ubo UE systèmes temps réel, Université de Brest Page 48/66
Outils de vérification (5) Architecture and Analysis Design Language (AADL) : Norme internationale publiée par la SAE (Society of Automotive Engineers) sous le standard AS-5506. Version 1.0 publiée en 2004, puis version 2 en 2009. http://aadl.info rassemble les informations utiles sur AADL. Langage de conception/modélisation adapté aux systèmes répartis embarqués temps réel : 1. Concurrence. 2. Modélisation de l architecture logicielle et matérielle (quantifier les ressources). 3. Expression contraintes temporelles. UE systèmes temps réel, Université de Brest Page 49/66
Outils de vérification (6) Composant AADL : Définition d un composant : représentation d une entité logicielle ou matérielle, réutilisable/paquetage. Un type/interface + une ou plusieurs implantations. Interaction entre composants : features (interface) + connexions. Propriétés de composant : attributs qui indique toutes informations nécessaires à sa mise en oeuvre ou à son analyse. Un composant peut avoir des sous-composants. = Mod?le d architecture AADL = hiérarchie/arborescence de composants. UE systèmes temps réel, Université de Brest Page 50/66
Outils de vérification (7) Déclaration d un composant : Type du composant : identificateur, catégorie, propriétés et features. Implantation du composant : structure interne (sous-composants, propriétés,...). Catégorie du composant : modélise les abstractions présentes dans un système temps réel (sémantique, comportement du composant). Trois familles de catégories : matériels (composants constituant la plate-forme d exécution), logiciels (composants constituant le logiciel à réaliser), systèmes (architecture globale du système à réaliser). UE systèmes temps réel, Université de Brest Page 51/66
Outils de vérification (8) Catégories de composants logiciels : thread : fil d exécution (flot de contrôle qui exécute un programme) => tâche Ada/VxWorks, thread POSIX/Java,... data : structure de données implantée dans le langage cible => struct C, class C++/Java, record Ada,... process : modélise un espace mémoire (protection mémoire). Un process doit contenir au moins un thread. subprogram : modélise un programme exécutable séquentiellement (fonction C, méthode Java, sous-programme Ada). Est associé à un code source. thread group : modélise la notion de hiérarchie entre threads UE systèmes temps réel, Université de Brest Page 52/66
Outils de vérification (9) Exemple de composants logiciels : thread receiver end receiver; thread implementation receiver.impl end receiver.impl; thread analyser... thread implementation analyser.impl... process processing end processing; process implementation processing.others subcomponents receive : thread receiver.impl; analyse : thread analyser.impl; end processing.others; UE systèmes temps réel, Université de Brest Page 53/66
Outils de vérification (10) Catégories de composants matériels : processor : abstraction du logiciel/matériel en charge de l ordonnancement des threads. Un processor peut comporter plusieurs virtual processors. memory : modélise toute entité de stockage physique de données (disque dur, mémoire vive, etc). device : composant qui interagit avec l environnement. On ignore sa structure interne (thread, data,...). Ex : capteur, actionneur. bus : entité permettant l échange de donnée/contrôle entre device, memory ou processor (ex : réseau de communication, bus, etc). Exemple : device antenna end antenna; processor leon2; end leon2; UE systèmes temps réel, Université de Brest Page 54/66
Outils de vérification (11) Catégorie «system» : Permet de structurer un modèle d architecture tout en manipulant les sous-composants indépendamment (system, process, processor, device, bus). Spécifie le déploiement des composants logiciels sur les composants matériels. Un composant système constitue la racine de l arborescence de l architecture. UE systèmes temps réel, Université de Brest Page 55/66
Outils de vérification (12) Exemple d un système complet : thread implementation receiver.impl... process implementation processing.others... processor leon2... system radar end radar; system implementation radar.simple subcomponents main : process processing.others; cpu : processor leon2; properties Actual_Processor_Binding => reference cpu applies to main; end radar.simple; UE systèmes temps réel, Université de Brest Page 56/66
Outils de vérification (13) Propriété : Attribut typé, associé à un ou plusieurs composants. Propriété = Nom + type + liste des composants concernés. Property sets. Property sets définis par la norme : AADL_Properties et AADL_Project. Il est possible de définir de nouveaux property sets. Exemple : property set AADL_Properties is Deadline : aadlinteger applies to (thread, device,...); Source_Text : inherit list of aadlstring applies to (data, port, thread,...);... end AADL_Properties; UE systèmes temps réel, Université de Brest Page 57/66
Outils de vérification (14) Association de propriétés : Affecte une valeur à une propriété pour un composant donné. Affectation dans l implémentation et/ou le type d un composant, par extension ou sur les instances. Exemple : thread receiver properties Compute_Execution_Time => 3.. 4 ms; Period => 150 ms; end receiver; thread implementation receiver.impl properties Deadline => 150 ms; end receiver.impl; UE systèmes temps réel, Université de Brest Page 58/66
Outils de vérification (15) Connexions entre composants : modélisent leurs interactions => flot de contrôle et/ou d échange de données. Features : interface du composant. Chaque feature est caractérisée par un nom, une catégorie, une orientation, un type de donnée,... Catégories de feature = types d interaction : event port : émission/réception d un signal. data port/event data port : échange synchrone/asynchrone d un message. subprogram parameter : paramètre lors d appels de sous-programme. data access : accès à une donnée partagée (composant data). subprogram access : mise en oeuvre des RPCs.... UE systèmes temps réel, Université de Brest Page 59/66
Outils de vérification (16) Connexion pour accès à une donnée partagée : process implementation processing.others subcomponents analyse : thread analyser.impl; display : thread display_panel.impl; a_data : data shared_var.impl; connections data a_data -> display.share; data a_data -> analyse.share; end processing.others; data shared_var; end shared_var; data implementation shared_var.impl end shared_var.impl; thread analyser features share : requires data access shared_var.impl; end analyser; UE systèmes temps réel, Université de Brest Page 60/66
Outils de vérification (17) Que peut on attendre d un modèle AADL : 1. Génération du code et de la documentation (ex : Ocarina de Télécom-Paris-Tech, STOOD d Ellidiss Technologies). 2. Analyse : sémantique, fiabilité, performances, ordonnançabilité,... Services offerts par Cheddar : 1. Analyse d ordonnançabilité. 2. Analyse d empreinte mémoire. UE systèmes temps réel, Université de Brest Page 61/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Outils de vérification. 6. Résumé. 7. Références. UE systèmes temps réel, Université de Brest Page 62/66
Résumé 1. Algorithmes classiques pour le temps réel : priorité fixe, EDF. Techniques de vérification a priori d un jeu de tâches. 2. Majorité des systèmes d exploitation = philosophie à la POSIX 1003.1b : priorités fixes multi-files + FIFO et/ou round-robin. 3. Exemple de techniques pour la prise en compte des dépendances, du partage des ressources. 4. Liens entre architecture logicielle, matérielle et ordonnancement temps réel. UE systèmes temps réel, Université de Brest Page 63/66
Sommaire 1. Introduction et concepts de base. 2. Algorithmes classiques pour le temps réel. 3. Un peu de pratique : le standard POSIX 1003. 4. Prise en compte de dépendances. 5. Résumé. 6. Outils de vérification. 7. Références. UE systèmes temps réel, Université de Brest Page 64/66
Références (1) [BLA 76] J. Blazewicz. «Scheduling Dependant Tasks with Different Arrival Times to Meet Deadlines». In. Gelende. H. Beilner (eds), Modeling and Performance Evaluation of Computer Systems, Amsterdam, Noth-Holland, 1976. [CHE 90] H. Chetto, M. Silly, and T. Bouchentouf. «Dynamic Scheduling of Real-time Tasks Under Precedence Constraints». Real Time Systems, The International Journal of Time-Critical Computing Systems, 2(3):181 194, September 1990. [GAL 95] B. O. Gallmeister. POSIX 4 : Programming for the Real World. O Reilly and Associates, January 1995. [LIU 73] C. L. Liu and J. W. Layland. «Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environnment». Journal of the Association for Computing Machinery, 20(1):46 61, January 1973. [SHA 90] L. Sha, R. Rajkumar, and J.P. Lehoczky. «Priority Inheritance Protocols : An Approach to real-time Synchronization». IEEE Transactions on computers, 39(9):1175 1185, 1990. UE systèmes temps réel, Université de Brest Page 65/66
Références (2) [TIN 92] K. Tindell. «Using Offset Information to Analyse Static Priority Pre-Emptively Scheduled Task Sets». In YCS. 182, Dept of Computer Science, University of York, 1992. [TIN 94] K. W. Tindell and J. Clark. «Holistic schedulability analysis for distributed hard real-time systems». Microprocessing and Microprogramming, 40(2-3):117 134, April 1994. [XU 90] J. Xu and D. Parnas. «Scheduling Processes with Release Times, Deadlines, Precedence, and Exclusion Relations». IEEE Transactions on Software Engineering, 16(3):360 369, March 1990. UE systèmes temps réel, Université de Brest Page 66/66