Informatique embarquée
Transcription
Informatique embarquée
Informatique embarquée Module M1-SIGE : UEF5 B. Miramond & P. Andry Miramond Benoît - UCP 1 Règles du jeu • CM : Octobre – Novembre • TP : Octobre – Décembre • Coupures : Toussaint • Note de CC = CC ou note de TP + Projet • Examen : Décembre Miramond Benoît - UCP 2 Intervenants • B. Miramond : responsable de module – CM (1, 6, 7, 8, 9) • P. Andry : – CM (2, 3, 4, 5) – TP (1, 2, 3, 4) • ATER – TP (5, 6, 7, 8) Miramond Benoît - UCP 3 Plan général des séances de CM (2h) I. II. III. IV. V. VI. VII. VIII. IX. Introduction à l’embarqué Introduction au temps-réel (CM/TP) Ordonnancement temps-réel Mécanismes de synchronisation Conception logicielle en environnement embarqué Organisation générale d’un RTOS Le processus dans la machine Cas d’étude d’un RTOS : uC/OS-II Exemple de plateforme embarquée : Carte Altera Stratix1s10 Miramond Benoît - UCP 4 Planning des TDs/TPs (3h) 1. 2. 3. 4. 5. 1. 1. 2. 3. 4. TP introduction au temps-réel : Thread Posix TD1 Ordonnancement TD2 Ordonnancement TP uC-linux : chaîne de compilation croisée TP embarqué : Application sous uC-linux TP1 prise en main de uC/OS-II sur PC TP1 Prise en main de la carte Altera TP2 embarquée : Application sur carte Projet embarqué sur carte Projet (suite) Miramond Benoît - UCP 5 Offres d’emploi 2006 • ALTEN, APSIT, APTUS, SYSTRAN, MEDIANE … • 18 septembre 2006 Nous recherchons pour un de nos partenaires un ingénieur informatique pour participer à la réalisation d'un logiciel C embarqué sous UNIX. Rattaché à l’équipe de développement du « Smart Module », Vous serez également en charge de mettre à jour une application en « C » ainsi qu’un driver de composant sous LINUX (Debian) embarqué sur une cible de processeur ARM9T. Vous participerez à l'analyse de l'architecture du logiciel, à l'élaboration des spécifications techniques, ainsi qu'à la conception et le développement du logiciel embarqué. 27 septembre 2006 De formation BAC+5 en informatique la maîtrise de la programmation C et assembleur sur DSP. Dans le cadre de notre développement sur des projets d'envergure, nous recherchons des ingénieurs ayant des compétences en Linux embarqué. 02 octobre 2006 Au sein d'une équipe de 3 personnes et sous la responsabilité d'un Chef de projet, vous prenez en charge l'intégration d'un OS Linux dans le cadre d'un système embarqué dans le domaine industriel et vous intervennez dans le développement d'applications sur ce système (spécifications, conception, test, validation). De formation Bac+5 école d'ingénieur ou DESS en informatique industrielle, vous avez une expérience de 2 ans et plus et justifiez d'une réelle expertise en informatique temps réel sous Linux. Vous maîtrisez les langages C,C++. • • Miramond Benoît - UCP 6 Offres d’emploi 2007 • • • 13 aout 2007 – ATOS ORIGIN Atos Origin est l'un des principaux acteurs internationaux dans les services informatiques (conseil, intégration de systèmes et infogérance). Partenaire informatique mondial des jeux olympiques, il compte parmi ses clients de grands comptes internationaux dans tous les secteurs. Le centre GTPC réalise des systèmes en informatique temps réel, technique et scientifique dans les secteurs de l'énergie (pétrole, gaz, électricité).Dans ce cadre, Atos Origin assure le développement des logiciels embarqués d'un ensemble d'applications d'un grand groupe dans le secteur de l'exploration et de la production pétrolière. Ces applications sont à la pointe des domaines scientifiques et techniques, et combinent haute technicité et grande fiabilité. Pour réussir ces projets novateurs et ambitieux, nous souhaitons être "accompagnés" par des collaborateurs à fort potentiel technique et relationnel. - Au sein d'équipes internationales et pluridisciplinaires (électroniciens, mécaniciens, physiciens, informaticiens) vous prenez en charge le développement de logiciels embarqués, organisés autour d'architectures réparties. - Nous recherchons un(e) candidat(e) de formation Bac +5, issu(e) d'une grande école Informatique et/ou Electronique, débutant(e) ou première expérience de 1 à 2 ans au sein d'une équipe de développement logiciel. - Vous maîtrisez les développements en C++ sur cible PC et vous avez une connaissance du développement en logiciel embarqué ou temps réel. - Vos connaissances en électronique seraient un plus très appréciable. 22 aout 2007 – ADENEO - 28/35 KE ADENEO, groupe Adetel (450 p) développe des prestations d'études et produit des systèmes électroniques et logiciels pour les gds comptes de l'industrie, dans les domaines de l'aéronautique, du ferroviaire, de l'automobile. Ratt au Dir du Dépt logiciel, vous intervenez au sein de notre BE ou sur site client sur des projets variés et innovants. Vos missions porteront sur le dévpt de drivers et de BSP, la conception et le dévpt d'appli. temps réel sur processeurs 16 et 32 bits, la mise en oeuvre de couches de comm. et de protocoles (Flexray,1553,ARINC429,MVB), l'expertise technique auprès de nos clients. Ingénieur en info. industriel, vous êtes débutant ou avec 1ère exp. (un an stage inclus) en dévept de log temps réel (C/C++). Connaissance des noyaux(uC/OS-II) ou Os temps réel (QNX,eCos,VxWorks) est un +. Bon niveau d'anglais exigé. Candidature à - ADENEO [email protected] ou sur www.adeneo.adetelgroup.com 28 août 2007 - Mediane System Pour les besoins d'un de nos clients dans le domaine de la Télévision numérique, nous recherchons activement 3 ingénieurs afin de prendre en charge le développement d’un module logiciel intégré dans des décodeurs de télévision numérique. Vous assurez l'architecture générale, la conception détaillée et le développement de nouvelles fonctionnalités et établissez la documentation associée. Vous prenez également en charge l'intégration et les tests unitaires d’une librairie dans un décodeur de télévision numérique en environnement temps réel. De formation Bac+5 Ecole d'ingénieur ou Universitaire, vous justifiez d'une expérience de 2 ans minimum en développement temps réel embarqué et maîtrisez parfaitement les langages C/C++. Vous avez également une expérience réussie en intégration temps réel et connaissez les principes et normes de la télévision numérique (DVB, MPEG2, ISO 7816 ...). Anglais impératif. Miramond Benoît - UCP 7 • • • • Offres 2008 MISSION : Vous interviendrez sur les différentes phases du projet : spécification, développement et tests d'applications, validation, documentation et mise en ?uvre. VOTRE PROFIL : De formation bac +4/5 (ingénieur ou universitaire) ou bac +2 expérimenté, vous êtes autonome en développement de Systèmes Embarqués et de développement de Drivers. Compétences techniques : - Noyaux temps réel (VxWorks, PSOS, QNX, OSEK...) - Microcontrôleurs : 68HCxx, 80Cxx, PIC, ... - Langages : C, C++, Assembleur - Réseaux : CAN, Ethernet - Gestion de configuration ATOS ORIGIN Date : 04/09/2008DÉVELOPPEUR TEMPS RÉEL EMBARQUÉ C-C++ H/F - CDI Référence : SI-SUDEST-SOPH-DLEC++Sophia Antipolis Vous travaillez en équipe projet et participez aux différentes phases du cycle de développement de logiciels embarqués pour le compte d'un de nos plus grands clients. Pour réussir ces projets, nous souhaitons être accompagnés par des collaborateurs à fort potentiel. De formation Bac +4/5, type école d'ingénieurs ou équivalent universitaire, vous justifiez d'une première expérience en développement temps réel et/ou embarqué. Vous maîtrisez les langages de programmation C/C++ dans différents systèmes d'exploitation. Idéalement, vous avez des connaissances dans le domaine du traitement du signal. Vous disposez d'une vision large des technologies et de leur utilisation, savez vous investir et comprenez les problématiques des clients. Ces atouts vous permettront d'évoluer rapidement au sein de notre groupe. Vous êtes dynamique, avez le sens du service, et appréciez le travail en équipe, rejoignez nous ! Sous la responsabilité du client, selon votre niveau d'expérience et vos compétences HW et/ou SW, vous pourrez être appelé à intervenir, En SW sur : • la rédaction de spécifications, • la définition d’architectures logicielles, • la conception et le développement de modules logiciels middleware et/ou applicatifs • la conception et le développement de drivers tps réel (communication, interface réseaux, ..) • les tests unitaires, • l’intégration/validation en environnement temps réel des logiciels développés En HW sur : • la rédaction de spécifications, • la définition d’architectures matérielles, • la conception et le développement de cartes électroniques analogiques et/ou numériques, • la programmation de FPGA, DSP et microcontrôleurs, • la validation/intégration des systèmes électroniques développés En Micro-Electronique sur : • la rédaction de spécifications, • la définition d’architectures, • le développement d’IPs numériques et/ou Analogiques • l’intégration/validation d’ASIC, de SoC • la simulation, la synthèse, l’analyse statique de timing (STA), le P&R, le layout • la caractérisation de chips De formation BAC+5, Ecole d’ingénieurs ou Universitaire, vous justifiez d’une expérience de 1 à 5 ans (stage significatif accepté) : • en conception et développement logiciel, en environnement embarqué (avec ou sans OS temps réel). • En conception Hardware de cartes électroniques (schématique, CAO, intégration) • En conception, simulation et validation de FPGA (VHDL, simulateurs, appareils de labo) • En conception micro-électronique Vous aimez prendre des responsabilités et savez être autonome dans votre travail. La maîtrise des langages C, C++, JAVA, assembleur, la connaissance des architectures SW, HW, les microcontrôleurs/processeurs PIC, Coldfire, ARM, PowerPC, ARC, …, les DSP, les FPGA, le langage VHDL et/ou VERILOG, la CAO électronique. Les systèmes temps réels, les OS eCOS, Linux, Windows, pSOS, CMX, VxWorks, … sont autant d’atouts indispensables. Miramond Benoît - UCP 8 Offres d'emploi 2009 INGENIEUR DE DEVELOPPEMENT C EMBARQUE (H/F) Nous recherchons un ingénieur dynamique pour développer des logiciels embarqués sur nos plateformes. Nos projets sont principalement orientés vers la monétique, ils mettent en oeuvre des technologies très variées telles que: cartes à puce, cartes sans contact, réseaux, Linux embarqué, systèmes temps réel et systèmes propriétaires. Les développements s'effectuent principalement en C, une connaissance d'autres langages tels que JAVA, PERL, PHP est appréciée. Ingénieur développement temps réel h/f Évry Île-de-France Entreprise: Aketys Salaire: Entre 30 et 45 K€ des compétences confirmées dans plusieurs des logiciels suivants: UML, C, C++, assembleur, OS temps réel (Linux... pour participer à des projets de développement temps réel. Dans une équipe projet, vous interviendrez... sur le développement d'un logiciel embarqué sur cible (microcontrôleur, microprocesseur) pour des nouveaux produits Expérience: Vous justifiez d'une expérience d'au moins 3 ans en développement d'applications temps réels embarqués. Conditions: Formation: Issu d'Ecole d'Ingénieur Bac + 5 ou plus Contrat de travail: Durée indéterminée ... Miramond Benoît - UCP 9 Objectif de la formation 1. Savoir développer une application embarquée et temps réel 1. Comprendre les principes de l’exécutif d’un système embarqué 1. Savoir calculer l’ordonnancabilité d’une application temps réel 1. Comprendre les mécanismes mise en jeu dans le matériel Miramond Benoît - UCP 10 Plan du Chapitre I (2h) 1. Introduction à l’embarqué 1. Architecture d’un système embarqué 1. L’embarqué et le temps-réel 1. Le RTOS, une solution acquise Miramond Benoît - UCP 11 1) Introduction à l’embarqué Miramond Benoît - UCP 12 Définition : qu’est ce qu’un système embarqué Miramond Benoît - UCP 13 Miramond Benoît - UCP 14 Marché de l’embarqué • Augmentation de la densité de calcul des processeurs selon la loi de Moore (perf, conso, surface…) => Explosion du marché informatique => Baisse des prix => Emergence de l’informatique embarquée Miramond Benoît - UCP 15 Systèmes embarqués Définition : Un système électronique est embarqué ou enfoui lorsqu’il est un élément constitutif d’un système plus complexe pour lequel il rend des services bien précis (contrôle, surveillance, communication…). Il est constitué de parties matérielles et logicielles qui sont conçues spécifiquement pour réaliser une fonction dédiée. Miramond Benoît - UCP 16 Domaines d’application • Applications utilisateur – Jeux, bureautique, services, multimédia – Téléphones, PDA, lecteurs MP3, set top box… • Contrôle – Contrôle-commande (automobile, usines, robots…) • Traitement d’images – Tracking, reconnaissance … • Traitement du signal – Radar, sonar, avionique – Traitement de grosses quantités de données • Network computing – Téléphonie, routeur… • Autres, … à venir Miramond Benoît - UCP 17 Exemple - Netgear DG632 ADSL hon decoupling electronics (for ADSL). Modem/router colour LED (displaying network status). e colour LED (displaying USB status). processor, a TNETD7300GDU, a member of Texas Instruments' AR7 prod G (Joint Test Action Group) test and programming port. , a single ESMT M12L64164A 8 MB chip. memory, obscured by sticker. r supply regulator. power supply fuse. er connector. et button. rtz crystal. rnet port. rnet transformer, Delta LF8505. 721B ethernet PHY transmitter receiver. B port. phone (RJ11) port. Miramond Benoît - UCP 18 Exemple – Téléphone mobile Miramond Benoît - UCP 19 Caractéristiques spécifiques des systèmes embarqués Les caractéristiques principales d’un système électronique embarqué sont : • Autonome. Une fois enfouis dans l’application ils ne sont (le plus souvent) plus accessibles • Temps réel. Les temps de réponses de ces systèmes sont aussi importants que l’exactitude des résultats • Réactif. Il doivent réagir à l’arrivée d’informations extérieures non prévues • Contraints. Leurs ressources (calcul, batterie, mémoire, surface…) sont souvent limitées Miramond Benoît - UCP 20 2) Architecture d’un système embarqué Miramond Benoît - UCP 21 Adéquation Application-Architecture (AAA) • L’architecture du système dépend directement de l’application : – Caractéristiques du traitement à réalisé : besoins en puissance de calcul, données à manipuler, … – Environnement applicatif : la télévision numérique sur téléphone est différente d’un décodeur TNT • Il faut donc mettre en adéquation l’application et l’architecture – Optimisation du code (voir accélération matérielle de certaines parties) – Dimensionnement de l’architecture pour respecter les contraintes non-fonctionnelles • On se préoccupe donc beaucoup plus des aspects architecturaux dans l’embarqué Miramond Benoît - UCP 22 Architectures embarqués Besoins Enfoui Léger RAM < 10 Ko < 4Mo ROM/Flash ~ 100 Ko < 2Mo Processeurs PIC NeC Fujitsu Freescale SoC Pas de cache u-contrôleur (automobile, avionique...) Matériel sup Exemple Moyen Haut de gamme DragonBall 68k ColdFire ARM DSP Haute disponib ilité 2-8 Mo 8-32 Mo > 100 Mo 2-4 Mo 4-16 Mo > 100 Mo MIPS MIPS PowerP C ColdFire ARM ARM PowerP X86 PowerPC C x86 Pas de MMU SoC PDA, tel, machine à laver Routeur, Wifi, capteurs Video ≅ PC controlle r Console Serveur Miramond Benoît - UCP 23 Architecture représentative d’un système embarqué Miramond Benoît - UCP 24 Architectures distribuées 2005 : Une automobile de classe haute contient une centaine de microprocesseurs (de 8 à 32 bits) … Miramond Benoît - UCP 25 Exemple – Automobile (Laguna) [Renault] Miramond Benoît - UCP 26 Le microprocesseur au centre 2005 : Une automobile de classe haute contient une centaine de microprocesseurs (de 8 à 32 bits) • Matériel disponible sans conception • Développement logiciel rapide • Flexible • Bas coût induit par les grandes quantités vendues • Bénéficier de la dernière technologie de fabrication • Bénéficier de l’optimisation de grandes équipes de concepteurs Miramond Benoît - UCP 27 Quel type de processeur? • Processeurs généraux – Fonctionnalités multiples – Surdimensionnés, fréquence élevée, conso énorme • Processeurs embarqués – Peuvent être customisés pour une application – Fréquence et conso réduites • Processeurs de traitement du signal (DSP) – Traitements intensifs (voix, image…) – Téléphones portables • SoC – Microcontrôleurs, système multi composants (proc, ASIC, …) – Systèmes multi-processeurs Miramond Benoît - UCP 28 MMU ou pas ? • Rôle de la MMU hérité de l'architecture Intel 386 – Protection mémoire entre espaces d'adressage des processus – Gestion de la mémoire virtuelle • Encombrement important dans l'architecture processeur • Latence plus élevée pour l'exécution des programmes • OS plus gourmand en empreinte mémoire Miramond Benoît - UCP 29 Le marché du processeur embarqué • 6 % des processeurs vendus sont destinés au marché des PC 85 % avec un système d’exploitation (OS) windows • 94 % des processeurs vendus sont destinés au marché de l’embarqué 95% avec un OS ouvert Miramond Benoît - UCP 30 Roadmap semi-conducteurs Miramond Benoît - UCP 31 Différence avec l’informatique générale • Dans les systèmes embarqués, les tâches concurrentes sont définies statiquement • Un système est conçu pour un nombre limité de fonctionnalités • Elles ne changent pas avec le temps • Cela autorise de dimensionner au mieux et d’optimiser le système en fonction de ses besoins Miramond Benoît - UCP 32 Différence avec l’informatique générale Informatique : • Processeur standard • • • • – Multiples unités fonctionnelles (flottant, exécution désynchronisée, prédiction…) – Fréquence élevée (> GHz) – Consommation électrique élevée – Chaleur – Taille MMU (mémoire virtuelle) OS Cache Grand nombre de périphériques Embarqué : • Processeur dédié (contrôleur) – – – – – Architecture adaptée Vitesse faible (~200 MHz) 8-32bits : mémoire limitée Basse consommation Petite taille, grand volume => faible coût • Processeur DSP (traitements) – Très puissants • Qqs Mo de mémoire • RTOS • Pas de cache Miramond Benoît - UCP 33 3) Systèmes embarqués temps réel Miramond Benoît - UCP 34 Systèmes embarqués temps réel Systèmes embarqués temps réel Systèmes embarqués Systèmes temps réel Miramond Benoît - UCP 35 Systèmes temps réel Définition Ce sont des systèmes liés au contrôle de procédés du monde (temps) réel. L’exécution de traitements dans ces systèmes doit terminer avant une date butoir appelée échéance définie par la vitesse d’évolution de l’environnement réel au-delà de laquelle les résultats ne sont plus valides. Exemple critique : le contrôleur de frein d’une voiture, la sortie du train d’atterrissage… Miramond Benoît - UCP 36 Systèmes embarqués temps réel Exemples : Hard real time : Pilotage automatique de la ligne 14 Dispositif de surveillance d’une centrale nucléaire Système de guidage de missiles Régulateur de vitesse en automobile Soft real-time: Téléphone portable Lecteur DVD, électroménager Miramond Benoît - UCP 37 Première définition … cf. Chapitre 2 • Système temps-réel dur/stricte (hard real-time) Le non-respect des échéances peut avoir des conséquences graves sur le fonctionnement du système ou sur son environnement (auto-pilotage, freinage, assistance médicalisée…). Les échéances ne doivent jamais être dépassées. • Système temps-réel mou (soft real-time) Le non-respect des échéances ralentit le système sans conséquences graves (billetterie automatique…). Le système doit répondre au mieux, le plus rapidement possible. Notion de QoS (Qualité de service) Miramond Benoît - UCP 38 Systèmes multi-périodes • La plupart des systèmes embarqués sont dit mutlirate ou multi-période – Les données sont capturées à un certain rythme (du monde réel) : tour de roue de l’automobile, fps d’une caméra, … – Les traitements sur ces données ne sont pas forcément de même granularité (1 pour 64) – Différents traitements peuvent intervenir de manière indépendante (périodique et apériodique) – Les actionneurs fonctionnent à une fréquence différente des capteurs Miramond Benoît - UCP 39 Systèmes temps réel • Il ne s’agit pas de rendre le résultat le plus rapidement possible, mais simplement à temps. • L’échelle de temps de l’échéance peut varier d’une application à l’autre – microseconde en contrôle radar – milliseconde pour la synchronisation image/son (mpeg) – minute pour les distributeurs automatiques • Tous peuvent être temps réel souples ou durs Miramond Benoît - UCP 40 La notion/modélisation du temps est fondamentale Evènemen Synchrone t simple Evènemen ts multiples Entrées Evènemen t simple Synchrone Système temps réel Asynchro ne Asynchro ne Contraintes temporelles Miramond Benoît - UCP Evènemen ts multiples Sorties 41 Déterminisme • Pour être en mesure de respecter les contraintes temporelles associées aux exécutions de programmes, le système (architecture, application) est conçu et dimensionné de manière à réduire tout indéterminisme : – Simplifier les méthodes de gestion matérielle (os) – Ordonnancer les tâches les plus urgentes – Développer du matériel dédié aux types de calculs réalisés – Supprimer les caches • Le temps de réponse du système est garantie!!! Miramond Benoît - UCP 42 Concevoir pour optimiser Rendre l’exécution déterministe • En temps d’exécution • En taille mémoire utilisée • En consommation d’énergie Optimisations : • Minimiser les communications • Minimiser les synchronisations • Utilisation des propriétés de la théorie des graphes pour manipuler l’application et son implantation logicielle et/ou matérielle Miramond Benoît - UCP 43 Les défis de conception de l’embarqué • Concevoir/Produire vite le logiciel et le matériel • À bas coût • Répondre aux contraintes non fonctionnelles (taille, performance, consommation, sécurité, tolérance…) • Appréhender la complexité (matérielle, logicielle et intergicielle) • Prévoir la réutilisation du système pour plusieurs générations Un compromis difficile à respecter (problème multicritères): coût / performances / consommation Miramond Benoît - UCP 44 L’embarqué – un environnement contraint On ne travaille donc pas en embarqué comme on travaille (développe) su PC !! • Performances • Faible Consommation - autonomie • Peu de mémoire • Faible encombrement • Poids réduit • … Il faut penser de manière beaucoup plus globale (AAA) Miramond Benoît - UCP 45 Résumé • Les systèmes embarqués – Sont en plein essor commercial – et sont donc conçus à base de processeurs programmables, – Ce sont des systèmes autonomes, – le plus souvent temps réel. • La conjonction de ces facteurs conduit à des contraintes d’ordonnancement sévères en terme de – Prédictibilité – Taille mémoire Miramond Benoît - UCP 46 4) L’OS temps réel, une solution acquise Miramond Benoît - UCP 47 iveau 5Couche des langages d’application Traduction (compilateur) iveau 4Couche du langage d’assemblage Traduction (assembleur) iveau 3Couche du système d’exploitation Interprétation partielle (OS) Couche architecture du jeu d’instruction iveau 2 (ISA) Interprétation (microprogramm ou exécution directe (cablé) iveau 1 Couche microarchitecture iveau 0 Matériel Miramond Benoît - UCP Couche logique numérique 48 Quels OS retrouvent-on dans l’embarqué ? • Windows CE-mobile • Linux (free) et ces déclinaisons embarquées ou RT – RTlinux – BlueCatLinuxRT – uC-linux – RTAI … • OS propriétaire (home-made) – QNX neutrino – VXWorks – lynxOS – uC/OS-II – … Miramond Benoît - UCP 49 La part des OS dans l'embarqué (source : linuxdevice.com) Miramond Benoît - UCP 50 Quelle différence entre OS et RTOS ? • Le système d’exploitation temps-réel (RTOS) est : – Déterministe : la durée de chaque service est déterminée et ne change pas avec les données. – Prévisible : la durée de chaque service est connue. – Léger : le code de l’OS prend peu de mémoire (empreinte mémoire) – Dédiée, modulable : il fournit des services dédiées selon les besoins de l’application Miramond Benoît - UCP 51 Le succès de Linux en embarqué • • • • • • Libre (gratuit) Open-source Différentes distributions Stable Communauté importante (aide web) Compilateur C associé gratuit (gcc) Miramond Benoît - UCP 52 Comment rendre linux temps réel ? • Distributions TR – Montavista – LynuxWorks – Redhat – Ubuntu • Patch RT (CONFIG_PREEMPT_RT) de Linux : – Scheduler – Interruption préemptibles (thread-IRQ) – Horloge système plus précise (nanosec)... – sur une certaine plate-forme, le temps de latence de réponse à une interruption ne sera jamais supérieur à 20µs, par exemple – http://rt.wiki.kernel.org/index.php/Main_Page • Micro-noyau – Xenomai – Windriver RT Linux (RTAI) Miramond Benoît - UCP 53 Fonctionnalités TR du patch config_preempt_rt Miramond Benoît - UCP 54 Exemple du micro-noyau Xenomai Miramond Benoît - UCP 55 Ordonnanceur 2.6 Grande nouveauté : Ordonnanceur en O(1) 2 types de process Process non-Temps Réel : chaque process se voit attribuer une valeur, appelée nice value, qui détermine la priorité et le temps d’exécution – ce temps d’exécution est appelé timeslice et correspond au temps maximum qu’un process peut rester en exécution avant de « laisser la place » à un autre. La valeur de nice est comprise entre –20 et 19 inclus, 0 étant la valeur par défaut et –20 correspond à la priorité la plus haute et au timeslice le plus élevé Process Temps Réel : chaque process se voit attribuer une priorité comprise entre 1 et 99 inclus – les process nonTemps Réel se voient attribuer également cette priorité mais avec la valeur 0. 99 étant la priorité la plus élevée, on comprend alors pourquoi un process Temps Réel sera toujours prioritaire devant un autre non-Temps Réel. Pour les process Temps Réel, il existe deux politiques d’ordonnancement : SCHED_FIFO : le process Temps Réel restera en exécution tant qu’aucun autre process Temps Réel de priorité supérieure strictement ne sera prêt ou tant qu’il ne passera pas à l’état bloqué. S’il est préempté, il reste tout de même en tête de la liste d’exécution des process de même priorité que lui. C’est donc lui qui sera de nouveau exécuté quand le process de priorité supérieure aura terminé son exécution. Idem s’il change de priorité, il sera placé en tête de la liste des process exécutables ayant cette priorité. Il ne passe en fin de cette liste que par appel explicite de sa part à une certaine fonction. SCHED_RR : la politique est identique en tout point à la précédente, exception faite à la présence d’un timeslice pour les process de même priorité. Ainsi, s’il n’y a pas de process de plus forte priorité pour préempter celui en cours d’exécution, au bout d’un certain temps ce dernier sera placé en queue de la liste des process de même priorité. Miramond Benoît - UCP 56 Trois tests pour les linux RT • Latence d'une tâche de forte priorité – Cyclic_test • Inversion de priorité (cf. cours suivant) – classic_pi • Préemption et latence de l'ordonnanceur – preempt_test • Temps d'accès noyau • ... http://www.kernel.org/pub/linux/kernel/people/tglx/rt-tests/rt-tests-0.49.t Miramond Benoît - UCP 57 Le bench cyclic_test sur un système non Temps Réel : $> ./cyclictest –a –t –n –p99 T:0( 3431) P:99 I:1000 C: 100000 Min: 5 Act: 10 Avg: T: 1 ( 3432) P:98 I:1500 C: 66934 Min: 4 Act: 10 Avg: 17 14 Max: 39242 Max: 39661 Ici, le résultat du même test sur un système Temps Réel : $> ./cyclictest –a –t –n –p99 T: 0 ( 3407) P:99 I:1000 C: 100000 Min: 7 Act:10 Avg: 10 Max: T: 1 ( 3408) P:98 I:1500 C: 67043 Min: 7 Act: 8 Miramond Benoît - UCP Avg: 10 Max: 18 22 58 Latence d'ordonnancement Histogrammme de répartition des apparitions en fonction de leur latence Miramond Benoît - UCP 59 Quels RTOS seront étudiés dans la formation ? (1) • uC-linux (« You See Linux », Micro Controller Linux) – 1998, portage à partir de linux 2.0 • • • • Motorola 68000, Colfire Intel i960 Nios ARM7 – Pas de MMU, pas mémoire virtuelle – Taille noyau < 512 Ko – Pile TCP/IP Miramond Benoît - UCP 60 Quels RTOS seront étudiés dans la formation ? (2) • uC/OS-II (Micro Controller Operating System) – 1992 (J. Labrosse) – 40 processeurs différents (8-64 bits) – Portable – ROMable – Scalable (modulaire) – Préemptif – Déterministe – Pas de MMU Miramond Benoît - UCP 61 Couche des langages d’application Workstation Couche du langage d’assemblage Couche du système d’exploitation Couche architecture du jeu d’instruction (ISA) télécharger Cible embarquée Couche microarchitecture Miramond Benoît - UCP Couche logique numérique 62 Plan général des séances de CM (2h) I. II. III. IV. V. Introduction à l’embarqué Introduction au temps-réel (CM/TP) Ordonnancement temps-réel Mécanismes de synchronisation Conception logicielle en environnement embarqué VI. Organisation générale d’un RTOS VII. Le processus dans la machine VIII. Cas d’étude d’un RTOS : uC/OS-II IX. Carte Altera pour l’embarqué Miramond Benoît - UCP 63 Bibliographie Temps réel et embarqué : • MicroC/OS-II, The Real-Time Kernel. J. Labrosse • Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (Real-Time Systems Series) by Giorgio C. Buttazzo (Hardcover Oct 1, 2004) • Real-Time Concepts for Embedded Systems by Qing Li and Caroline Yao (Paperback - Jul 2003) • Linux embarqué, 2006 Aller plus loin : • Embedded Systems Handbook. R. Zurawski and all The Art of Designing Embedded Systems. J. Ganssle • Real-Time Systems by Jane W. S. Liu (Hardcover Jun 15, 2000) Miramond Benoît - UCP 64