Ordonnancement temps réel monoprocesseur



Documents pareils
Ordonnancement temps réel

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

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

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

Ordonnancement des applications temps réel réparties

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

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

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

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

Introduction au temps réel

Introduction aux systèmes temps réel

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

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

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

Ordonnancement temps réel

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Annexe 6. Notions d ordonnancement.

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

Extension d'un outil de trace pour système embarqué temps réel. Encadrants : Laurent Pautet, Jérôme Hugues

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Conception des systèmes répartis

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Cours A7 : Temps Réel

Chapitre 4 : Exclusion mutuelle

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

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Les diagrammes de modélisation

Introduction à la programmation concurrente

RTDS G3. Emmanuel Gaudin

Impact de choix d implantation sur les performances d une application de Contrôle-Commande

Equilibrage de charge (Load

Projet Active Object

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

NFP111 Systèmes et Applications Réparties

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

Initiation au HPC - Généralités

Cours de Systèmes d Exploitation

Partie 7 : Gestion de la mémoire

Application de K-means à la définition du nombre de VM optimal dans un cloud

Cours de Génie Logiciel

Prise en compte des ressources dans les composants logiciels parallèles

Développement d un interpréteur OCL pour une machine virtuelle UML.

Ordonnancement sous contraintes de Qualité de Service dans les Clouds

Exécutif temps réel Pierre-Yves Duval (cppm)

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Génie Logiciel avec Ada. 4 février 2013

Introduction à la Programmation Parallèle: MPI

Software Engineering and Middleware A Roadmap

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

Solutions de gestion de la sécurité Livre blanc

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

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Introduction aux Systèmes et aux Réseaux

UE 8 Systèmes d information de gestion Le programme

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

<Insert Picture Here> Solaris pour la base de donnés Oracle

Programmation C. Apprendre à développer des programmes simples dans le langage C

IFT2255 : Génie logiciel

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Brique BDL Gestion de Projet Logiciel

Modélisation des interfaces matériel/logiciel

Ré-ordonnancement adaptatif de messages dans un réseau ad hoc de véhicules

Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Vérifier la qualité de vos applications logicielle de manière continue

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

EL48 Machines electriques. Energie et environnement C 28 TD 28 TP 18 THE 46. Niveau GXO 1-GX02 Connaissances scientifiques EL47 Oui Oui

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Introduction aux algorithmes répartis

Sujet de thèse CIFRE RESULIS / LGI2P

Ordonnancement temps réel et minimisation de la consommation d énergie

Machines virtuelles Cours 1 : Introduction

Les processus légers : threads. Système L3, /31

Qualité du logiciel: Méthodes de test

Algorithmique des Systèmes Répartis Protocoles de Communications

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

Synergies entre Artisan Studio et outils PLM

4.2 Unités d enseignement du M1

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

UML (Diagramme de classes) Unified Modeling Language

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

IRL : Simulation distribuée pour les systèmes embarqués

Un ordonnanceur stupide

UE Programmation Impérative Licence 2ème Année

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

Chapitre 4 : Outils de communication centralisés entre processus

Information utiles. webpage : Google+ : digiusto/

Chapitre VI- La validation de la composition.

Cours Programmation Système

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Integrated Modular Avionic

Transcription:

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