Chapitre 1 Introduction aux systèmes embarqués et temps réel

1 Chapitre 1 Introduction aux systèmes embarqués et temps réel Cours – Module ASTRE Z. MAMMERI IRIT - UPS - Toulouse 1 Domaines d’application des syst...

10 downloads 462 Views 695KB Size
Chapitre 1 Introduction aux systèmes embarqués et temps réel

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

1

1. Notions et caractéristiques des systèmes embarqués Domaines d’application des systèmes embarqués z Domaines « traditionnels »

-

Avionique Robotique Automobile Militaire

z Domaines « nouveaux »

- Jeux et loisirs - Téléphonie, Internet mobile - Implants (santé (santé, sécurité sécurité…)) - Domotique, - immeubles intelligents, - Villes intelligentes - Vêtements… Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

2

1

Exemple typique de système embarqué

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

3

Exemples de systèmes embarqués Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

4

2

Tendances du marché z Logiciel : - Beaucoup de fournisseurs - Pas de fournisseur dominant - Problèmes de compatibilité : Posix 1003.1c 1003 1c et 1b

z Matériel : - Processeurs essentiellement Motorola - Cartes à puce - Périphériques d’E/S (mesures…) : très diversifiés

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

5

z Définitions 1. Un système embarqué (SE) est un système informatisé spécialisé qui constitue une partie intégrante d’un système plus large ou une machine. Typiquement, c’est un système sur un seul processeur et dont les programmes sont stockés en ROM. A priori, tous les systèmes qui ont des interfaces digitales (i.e. montre, caméra, voiture…) peuvent être considérés comme des SE. Certains SE ont un système d’exploitation et d’autres non car toute leur logique peut être implantée p en un seul programme. p g 2. Un système embarqué est une combinaison de logiciel et matériel, avec des capacités fixes ou programmables, qui est spécialement conçu pour un type d’application particulier. Les distributeurs automatiques de boissons, les automobiles, les équipements médicaux, les caméras, les avions, les jouets, les téléphones portables et les PDA sont des exemples de systèmes qui abritent des SE. Les SE programmables sont dotés d’interfaces de programmation et leur programmation est une activité spécialisée. 3. Un système embarqué est une composante primordiale d’un système (i.e. un avion, une voiture…) dont l’objectif est de commander, contrôler et superviser ce système.

z ‘Embedded’ : Enfoui / Embarqué Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

6

3

z Principales caractéristiques - Encombrement mémoire (mémoire limitée, pas de disque en général) - Consommation d’énergie (batterie : point faible des SE) - Poids et volume - Autonomie - Mobilité - Communication (attention : la communication affecte la batterie) - Contraintes de temps réel - Contraintes de sécurité - Coût de produits en relation avec le secteur cible

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

7

Besoins z Intégration massive de composants embarqués répartis pour bâtir la société de l’information :

téléphones cellulaires – PDA – machines programmables – automobile - appareils médicaux – photo/vidéo/hifi – g – avionique q - spatial p – jjouets électroménager z Outils théoriques et pratiques pour l’intégration permettant de prendre en compte tous ces critères à la fois - Fonctionnalité - Qualité : Robustesse et Performances - Contraintes matérielles (poids, encombrement, .. ) - Coût g global,, consommation électrique q - Délai de mise sur le marché z Construire des systèmes de fonctionnalité et qualité déterminée et garantie, à coût acceptable, est un défi technologique et scientifique majeur.

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

8

4

Aspects à considérer z Techniques : Conception conjointe (Matériel, Logiciel, Environnement) z Économiques : Optimisation par rapport au marché, entre coût et qualité z Multi-compétence : Combinaison de compétences en logiciel, contrôle, réseaux, ingénierie en électronique, IHM, automatique, médecine, mécanique…

Défis à considérer z Hétérogénéité : Construire des systèmes complexes par intégration de composants hétérogènes (mécanismes de communication, vitesse de fonctionnement, granularité des calculs, variété des médias…) z Complexité : L’effort de développement augmente exponentiellement avec le nombre de composants intégrés intégrés. D’où D où la nécessité de remplacer les méthodes de validation a posteriori par des méthodes de validation incrémentale. Développer des outils théoriques et techniques pour la validation incrémentale. z Intelligence : Moyen d’améliorer la qualité (robustesse et la performance) de système : Auto-diagnostic, Auto-configuration, Adaptabilité à l’environnement, Evaluation des risques…

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

9

Développement de SE – Niveaux d’abstraction

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

10

5

Intégration de technologies

Méthodes et outils

Programmation et Middleware Réseau OS SoC

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

11

Compétences pour la conception et développement de SE z Domaine métier : médical, loisirs, transport… z Ingénierie : électricité, électronique, chimie, mécanique, robotique, …, informatique z Sciences : mathématiques, statistiques, probabilités,recherche opérationnelle z Informatique • Algorithmique • Programmation • Architectures (CPU, mémoires, périphériques) • Gestion de l’énergie des processeurs et périphériques • Génie logiciel, co-design, méthodes formelles, automates… • Evaluation de performances, test, simulation, vérification • Systèmes S tè d’ d’exploitation l it ti ((ordonnancement…) d t ) • Sécurité et robustesse • Réseaux, mobilité • Capteurs et actionneurs • Vision par ordinateur, caméra Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

12

6

2. Notions et caractéristiques des systèmes temps réel La gestion du temps dans un OS classique (temps partagé) z Un système d'exploitation (OS) classique, c.-à-d. orienté temps partagé, doit organiser et optimiser l'utilisation l utilisation des ressources de façon à ce que l'accès l accès à ces ressources soit équitable. équitable Un OS n'a donc pour seule contrainte de temps que celle d'un temps de réponse satisfaisant pour les utilisateurs avec lesquels il dialogue. Les traitements qu'on lui soumet sont effectués en parallèle au fil de l'allocation des quanta de temps aux diverses applications. z Un OS est capable de dater les événements qui surviennent au cours du déroulement de l'application! : mise à jour d'un fichier, envoi d'un message, etc. Il permet aussi de suspendre un traitement pendant un certain délai, d'en lancer un à une certaine date... z En aucun cas, un OS classique ne garantit que les résultats seront obtenus pour une date précise, surtout si ces résultats sont le fruit d'un traitement déclenché par un événement EXTERIEUR (émission d'un signal par un périphérique quelconque,…)

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

13

Définitions z « Intervalle de temps compatible avec le rythme réel d’arrivée des données et à l’intérieur duquel un ordinateur peut effectuer les traitements nécessaires » Le petit Robert. Robert z « Temps réel signifie l’aptitude d’un système d’exploitation de fournir le niveau de service requis au bout d’un temps de réponse borné ». Posix 1003.1b z Un système temps réel est un système informatique qui doit répondre à des stimuli fournis par un environnement externe afin de le contrôler. z Un STR est un système dont la correction dépend non seulement de la justesse des calculs mais aussi du temps auquel est fourni la réponse (contraintes temporelles). Un résultat hors délai et un résultat faux. Attention : Ne pas confondre temps réel et rapidité Temps réel veut dire prédictibilité et non rapidité.

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

14

7

Classification z Temps réel dur (‘hard real-time’) : le non respect des contraintes temporelles entraîne la faute du système – e.g. contrôle de trafic aérien, système de conduite de missile, ... z Temps réel souple (‘soft real-time’) : le respect des échéances est important mais le non respect des échéance n’a pas de graves conséquences – e.g. système d'acquisition de données pour affichage z Temps réel ferme (‘firm real-time’) : temps réel souple, mais si l’échéance est dépassée le résultat obtenu n’a plus de valeur (et est donc écarté) – e.g. projection vidéo

Cours – Module ASTRE

Z. MAMMERI

15

IRIT - UPS - Toulouse

Capteurs

Actionneurs

Environnement Cours – Module ASTRE

Système de contrôle Z. MAMMERI

IRIT - UPS - Toulouse

16

8

Domaines d’applications z Installations industrielles (chimique, nucléaire, automobile, …) z Contrôle et régulation de trafic en milieu urbain z Systèmes embarqués (voitures, (voitures trains, trains ...)) z Télécommunications z Avionique et aérospatial z Domaine militaire z Multimédia et Web (téléconférences, télé-achat, …) z Domotique, Jeux z Médecine, Télé-médecine z Réalité virtuelle, Travail coopératif z Autres Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

17

Exemple simple et éclairant (1) z On dispose de deux systèmes : - Système Cool, avec : processeur à vitesse 1 ; surcoût système de 1 ; ordonnancement EDF (Earliest Deadline First) - Système Speedy, avec : processeur à vitesse 10 ; surcoût système de 0 ; ordonnancement à l'ancienneté (FIFO) z Donc Speedy est 10 fois plus rapide et infiniment plus efficace que Cool z On considère une application composée de deux tâches non préemptibles : - Tâche T1 envoie des commandes périodiques pour entretenir la commande moteur du véhicule sa durée est de 270 sur Cool et de 27 sur Speedy ; son délai critique de 320 - Tâche T2 réagit à une commande du volant ; sa durée est de 15 sur Cool et de 1,5 sur Speedy ; son délai critique est de 21. z A l’instant t=0, la tâche T1 est déclenchée pour son exécution périodique. Cependant, au même instant, T2 est demandée en réaction à un événement. Les tâches T1 et T2 sont de même importance pour la conduite du véhicule Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

18

9

Exemple simple et éclairant (2) Exécution de T2 d’abord

Surcoût

T1

T2

À cause de son échéance

E é i de Exécution d 15 u.t

0

E é i de Exécution d 270 u.t

16 17

287

320

Exécution sur le processeur Cool T2 respecte son échéance T2 ne respecte pas son échéance Exécution en FIFO

Exécution de 27 u.t

0

21

27 28,5

Exécution sur le processeur Speedy

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

19

Sources des contraintes de temps (1) Î Origines externes − Caractéristiques physiques (vitesse, durée de réaction chimique, …) − Caractéristiques liées aux lois de commande du système physique − Qualité de service requise en terme de délai de réponse tolérable (qualité audio/vidéo) − Perception sensorielle et le temps de réaction de l’homme − Contraintes à caractère commercial − Autres

Connaissance des aspects physiques nécessaire Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

20

10

Sources des contraintes de temps (2) Î Origines internes − Choix de conception • architecture centralisée ou répartie (données, traitements, contrôle) • actions périodiques (avec les périodes adéquates) ou apériodiques • choix d’une structure d’application (interface entre composants, …) • autres

− Choix d’architecture matérielle et logicielle • processeurs avec des vitesses particulières • système d’exploitation (intégrant des algorithmes d’ordonnancement) • réseau avec des débits et des temps de réponse donnés • autres

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

21

Expression des contraintes de temps (1) Expression à l’aide du temps quantifié (temps physique) Î Temps absolu − un instant (date) − une fenêtre temporelle (intervalle de temps)

Î Temps relatif − une durée (délai, (délai période), période) minimale, minimale maximale, maximale moyenne

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

22

11

Expression des contraintes de temps (2) Expression sur les événements Î Contraintes sur la durée de vie d’un événement Î Contraintes sur les instants et l’ordre d’occurrence d’événements é é

Expression sur les données Î Durée de validité (ou contrainte de fraîcheur) Î Contraintes de production Î Contraintes de corrélation

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

23

Expression des contraintes de temps (4) Expression sur les actions (opérations) Î Période Î Instant au plus tôt/tard, pour démarrer une action Î Instant au plus tard/tôt, pour finir une action Î Temps maximum d’exécution (ou échéance relative) Î Temps maximal d’attente d’une ressource Î Temps minimal/maximal d’utilisation d’une ressource Î Temps minimum d’exécution affecté à une action Î Précédence entre actions

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

24

12

Quelques ordres de grandeur Domaines d’applications

Ordre de grandeur des CT

Î Processus chimique

en heure

Î Fabrication

en minute

Î Robotique

en 10 ms

Î Systèmes vocaux

en ms

Î Systèmes radar

en ms

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

25

Principes et concepts de base (1) z Application temps réel = Ensemble de tâches qui coopèrent z Les tâches accèdent à des ressources communes z Les tâches s s’échangent échangent des messages via un réseau z Les tâches doivent respecter différentes contraintes : - Cohérence des ressources partagées - Tolérance aux fautes - Sécurité - Temps de réponse z Les tâches s’exécutent sur 1 ou n processeurs z Système temps réel vs Application temps réel Les deux notions sont souvent confondues Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

26

13

Exemple d’application temps réel et embarquée (1)

zTâches critiques : - Contrôle airbag, contrôle ABS - Contrôle injection injection-moteur moteur - Contrôle pneumatique… zTâches non critiques z Contrôle climatisation z Contrôle vitres z Radio … Cours – Module ASTRE

Z. MAMMERI

27

IRIT - UPS - Toulouse

Exemple d’application temps réel et embarquée (2)

Tâches contrôle de vol

Tâches gestion de cabine

Tâches de Maintenance Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

28

14

Eléments constituant le temps de réponse d’une tâche z Temps d’exécution (Worst Case Execution Time) z Temps d’attente de ressources z Temps d’attente des E/S z Temps dus au système d’exploitation et difficilement calculables – Temps de latence des interruptions (délai entre l’arrivée d’une IT et le début de sa prise en compte effective)

– Temps de préemption (délai de sélection de la tâche à exécuter)

– Latence de l’ordonnancement (dél i entre (délai t lla réception é ti d de l’IT ett l’l’entrée té d dans lla tâ tâche h d de l’l’utilisateur) tili t )

– Temps de commutation de contexte de tâche – Latence de sémaphore (délai entre la libération d’un sémaphore et la réactivation de la tâche bloquée derrière ce sémaphore) Cours – Module ASTRE

Z. MAMMERI

29

IRIT - UPS - Toulouse

Exemple de temps de réponse à un événement z - On considère deux threads Th1 et Th2. Th1 est le plus prioritaire. - A l’instant t0, Th1 lance une E/S. - Le dessin ci-dessous schématise la suite des événements : Th2 devient actif Th1 se met en attente de l’E/S

t0

Le driver fait Passer Th1 à prêt Fin de l’E/S

t1

Temps d’élection et changement de contexte

t2

Th2 est préempté

t3 Latence d’IT

t4

Temps de préemption

Th1 devient Th1 sort de l’appel actif système (E/S)

t5

t6

Temps de Durée de changement retour de de contexte l’appel système

Durée de l’opération d’E/S Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

30

15

Principes et concepts de base (2) z Problèmes à gérer - Problèmes de l’informatique classique - Concurrence

en présence de contraintes de temps

- Communication







- Tolérance aux fautes







- Sécurité







z L’ordonnancement joue un rôle fondamental

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

31

Langages de développement (1) z Besoins – Expression des contraintes de temps – Expression et gestion du parallélisme – spécification et gestion de périphérique de bas niveau (E/S de base) – Modularité – Interfaces avec d’autres langages z 3 familles de langages – Langages assembleurs – Langages séquentiels liés à des librairies système – Langages concurrents de haut niveau Langages synchrones (Lustre, Esterel…) : déterminisme garanti Langages asynchrones (SDL, UML, Java…) : difficulté de garantir le déterminisme

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

32

16

Langages de développement (2) z Langages assembleurs – Historiquement, ces langages furent longtemps les seuls à être utilisés dans le contexte des STR – Dépendant par nature de l'architecture cible (matériel et système d'exploitation) – Aucune abstraction possible et grande difficulté de développement, de maintenance et d'évolution – Langages à proscrire sauf pour l'implémentation de petites fonctionnalités très spécifiques et apportant t t une grande d amélioration éli ti des d performances f

z Langages séquentiels liés à des librairies système – Les plus connus sont le C, le C++, Fortran – Apportent un plus grand pouvoir d'abstraction et une certaine indépendance du matériel – Mais, doivent faire appel à des librairies systèmes spécifiques pour la manipulations des processus – Ils posent le problème de la standardisation des appels systèmes mais sont quelques fois le seul choix possible à cause de la spécificité d'une cible et des outils de développement sur celle-ci.

z Langages concurrents de haut niveau – Langages généralistes incluant de plus la notion de tâches et des primitives de synchronisation – Haut pouvoir d'abstraction, indépendance des architecture et des systèmes cibles – Parmi ces langages, Ada et Java sont des plus aboutis – Ces langages sont à privilégier lorsque d'autres contraintes ne rendent pas leur choix impossible Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

33

Exécutifs temps réel (1) (RTOS : Real-Time Operating Systems) z Exécutif = Noyau de système d’exploitation z Caractéristiques d’un exécutif temps réel – comportement de l’OS prédictible * Ordonnancement de tâches prédictible * Gestion de ressources prédictible – dédié à une application spécifique (système embarqué) – plus spécialisé qu'un système d'exploitation – code de taille plus petite qu'un système classique – taille mémoire réduite ((services optimisés p et ceux non utilisés supprimés) pp ) – surcoût du système minimal (changement de contexte) – nombre élevé d’IT utilisables par les tâches – facilité d’insertion et retrait de périphériques

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

34

17

Exécutifs temps réel (2)

Applications

Applications

Middleware

Middleware

Drivers

Système d’exploitation

RTOS

Drivers

STR fondés sur un RTOS

STR utilisant un OS conventionnel (approche peu efficace, non recommandée)

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

35

Exemples de Système d'exploitation temps réel z Produits commerciaux - Lynx-OS : système Unix à base de thread noyau - compatible avec Linux www.lynuxworks.com/ - QNX : système Unix www.qnx.com/ - Windows CE : système Microsoft temps réel www.microsoft.com/technet/prodtechnol/wce/plan/realtime.mspx - VxWorks et pSos : Exécutif de Wind river www.windriver.com/products/device_technologies/os/vxworks5/ - Nucleus Real-Time Operating System /p y / / / www.mentor.com/proyducts/embedded_software/nucleus_rtos/index.cfm z Open sources – extensions de Lunix - RT-Linux : www.fsmlabs.com/rtlinuxpro.html - KURT : www.ittc.ku.edu/kurt - RTAI : www.aero.polimi.it/rtai/news/index.html Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

36

18

Standards POSIX pour le temps réel z POSIX = Portable Operating System Interface for uniX z Objectifs : Définir une interface standard entre les applications et l’OS pour rendre les applications (TRE) portables z Services proposés - Threads, ordonnancement, synchronisation - Gestion du temps - Files de messages, signaux - E/S asynchrones - Gestion de la mémoire z POSIX 1003.1 : interface de base d’accès à l’OS. z POSIX 1003.1b (appelé aussi 1003.4) – 1993 : Extensions temps réel (ordonnancement à priorité, signaux TR, horloges et timers, sémaphores, messages, E/S asynchrones…) z POSIX 1003.1c (appelé aussi 1003.4) – 1993 : Extensions de threads (création/destruction de threads, synchronisation et ordonnancement de threads…) z Beaucoup d’implantations de POSIX sont disponibles : Lynx, VxWorks, RTEMS… Cours – Module ASTRE

Z. MAMMERI

37

IRIT - UPS - Toulouse

Architecture logiciel d’un système TRE N oyau tem ps réel G estion du tem p s

H orloge tem p s réel

G estio n des évén em en ts P rim itives

IT

G estion d es in terrup tions

O rd on n an ceu r

R eq uête

A ctivation

T âch es u tilisateu r T âch e i

Cours – Module ASTRE

Z. MAMMERI

T âche j

T âch e k

IRIT - UPS - Toulouse

38

19

Niveaux simplifiés pour un STRE

Espace Utilisateur RT User process

RT User process

NonRT User process

Appels système

Ordonnancement de processus

Espace Système NonRT Kernel t k task

RT Kernel t k task

RT kernel t k task

Données

IT

Hardware

Cours – Module ASTRE

Z. MAMMERI

39

IRIT - UPS - Toulouse

Exemple de tâches temps réel (en langage FlowC)

Filter

GetData IN

DATA

DATA

La tâche GetData mesure une température à partir de l’environnement et envoie la valeur mesurée à la tâche Filter. U mesure estt effectuée Une ff t é toutes t t les l 10 ms. Quand N mesures ont été effectuées, la moyenne des N mesures est envoyée à Filter.

Cours – Module ASTRE

Z. MAMMERI

COEF OUT

La tâche Filter lit N mesures et les ignore et lit ensuite la moyenne des mesures, multiplie cette moyenne par c (dont la valeur est lue à partir de COEF) et envoie la valeur obtenue à l’environnement via le port OUT.

IRIT - UPS - Toulouse

40

20

Exemple de tâches temps réel (en langage FlowC)

Process GetData

Process Filter

(InPort IN, OutPort DATA)

(InPort DATA, InPort COEF, OutPort OUT)

{ float mesure, somme; int i;

{ float c, d; int j;

While(1)

c = 1; j = 0;

{ somme = 0;

While(1)

for (i=0; i< N; i++) {

{ SELECT(DATA, COEF) {

READ(IN, mesure ,1);

CASE DATA: READ(DATA, d, 1);

somme+= mesure ;

if (j==N) {j=0; d=d*c;

WRITE(DATA, mesure, 1)

WRITE(OUT, d,1); } else j++;

DELAY(10)

CASE COEF: READ(COEF, c, 1); break ;

} WRITE(DATA, somme/N,1)

}}}

}}

Cours – Module ASTRE

Z. MAMMERI

IRIT - UPS - Toulouse

41

21