Cours 1 ‐Master 2 SEJalil Boukhobza
Université de Bretagne Occidentale – Lab‐STICC
J.Boukhobza - Systèmes d'exploitation embarqués 1
Ce cours …Contient 24 séances de 2h:
Des cours (au moins 8)Des TPs (plus de 10)Pas de TDs …
Evaluation:Contrôle continu (1/2)
ExposéProjet TP
Examen final (1/2)
J.Boukhobza - Systèmes d'exploitation embarqués 2
Contenu du coursCours:
Revoir toutes les fonctionnalités des OS:Plus en détailsEn se focalisant sur ce qui est spécifique à l’embarqué
Etudes de casTP
Etude approfondie du système LinuxCompilation d’un noyau linux pour l’embarqué
Manipulation des outils permettant de s’y faire
J.Boukhobza - Systèmes d'exploitation embarqués 3
Qu’est ce qu’un système embarquéÉbauche d’une définition: c’est un système électronique et informatique autonome qui est dédié à une tâche particulière et contenue dans un système englobant. Il n’est « généralement » pas programmable.
Pas d’E/S standardsMatériel et application intimement liésLogiciel enfoui … noyé dans le matériel … pas facilement discernable comme dans un PC.
Il sont partout !!!Radio/réveilMachine à caféTélévision / télécommandeMoyen de transport (voiture : à foison !)Téléphone portable ….
J.Boukhobza - Systèmes d'exploitation embarqués 4
Caractéristiques principales d’un système embarqué
Système principalement numériqueMet généralement en œuvre un processeur Exécute une application logicielle dédiée précise (non pas une application scientifique ou grand public)Il n’a pas réellement de clavier standard et l’affichage est limitéCe ne sont pas des PC, mais des architectures similaires (x86) basse consommation
J.Boukhobza - Systèmes d'exploitation embarqués 5
L’embarqué en quelques chiffresEn 1999, il a été vendu (dans le domaine de l’embarqué):
1,3 milliards de processeurs 4 bits1,4 milliards de processeurs 8 bits375 millions de processeurs 16 bits127 millions de processeurs 32 bits3,2 millions de processeurs 64 bits.
Il a été vendu 108 millions de processeurs pour le marché du PCEn 2004:
14 milliards de processeurs pour l’embarqué (microprocesseur, microcontrôleur, DSP, etc.)260 millions de processeurs PC.
Moins de 2% (5%) des processeurs vendu sont pour les PC, 98% (95%) pour l’embarqué
Prix moyen d’un processeur 6$ (2004) alors qu’un processeur PC coute 300$.
Le marché du processeur PC est de très faible volume … mais très lucratif
J.Boukhobza - Systèmes d'exploitation embarqués 6
Champs d’application: 4 grandes classes
1. Calcul généralisteSimilaire aux applications bureau mais embarqué (assistant personnel, téléphone portable, etc.)Consoles de jeux vidéo, set‐top box
2. Contrôle de systèmesMoteur, voiture, avion, processus chimique, nucléaire, navigation, etc.
3. Traitement du signalCompression vidéo, radar, flux de données, etc.
4. Réseaux et communicationsTransmission de données, commutation, routage, téléphone, Internet, etc.
J.Boukhobza - Systèmes d'exploitation embarqués 7
Exemples de systèmes embarquésGrand public :
Appareils photographiques et caméras, lecteurs DVD, chauffage et climatisation, éclairage, électroménager, domotique, sécurité (incendie, intrusion, surveillance, piscine), ascenseurs, HiFi, audio et vidéo, consoles de jeux, décodeurs, etc.
Transports :Automobile, aéronautique, spatial, marine, assistance à la conduite ou au pilotage, maintenance, signalisation, contrôle du trafic aérien, maritime (aujourd’hui aide, demain automatique, objectif trafic autoroutier), distributeur de billets, radar, etc.
Défense :Contrôle de trajectoire, lanceur, etc.
J.Boukhobza - Systèmes d'exploitation embarqués 8
Exemples de systèmes embarqués (2)
Secteur manufacturier et industrie :Chaînes de production, automates, production et distribution d’électricité, réacteurs chimiques, réacteurs nucléaires, raffineries, dispositifs de sécurité, aide à la maintenance, etc.
Information et communication :Imprimante, périphérique, téléphone, répondeur, fax, routeurs, téléphonie mobile, satellites, GPS, etc.
Santé :Imagerie médicale, diagnostique, soins, implants, handicapés, etc.
Autres :Carte à puce, distributeurs, etc.
J.Boukhobza - Systèmes d'exploitation embarqués 9
Système embarqué typique
J.Boukhobza - Systèmes d'exploitation embarqués 10
CPUConversion A/N
Conversion N/A
Interface humaine Port de
diagnostic
Système auxiliaire
FPGA / ASIC
Logicielle
Mémoire
détecteur Actionneur
Environnement extérieur
Système embarqué typique (2)Capteurs (interrupteurs, etc) couplés à des convertisseurs analogique/numérique.Actionneurs (LED, etc) couplés à des convertisseurs numérique/analogique.Calculateur (processeur embarqué et ses E/S).Possibilité d’avoir un/des FPGAs et/ou ASICs pour jouer le rôle de coprocesseurs (accélération matérielle)
Les systèmes embarqués doivent prendre en compte:Variation des températuresVibrations et chocsVariations des alimentationsInterférences RFCorrosionEau, feu, radiation…
J.Boukhobza - Systèmes d'exploitation embarqués 11
Quelques propriétés des systèmes embarquésCiblé: domaine d’action limité aux fonctions pour lesquelles il a été crée.Simple: gage de robustesseFiable: fonctionnement complètement autonome. SécuriséMaintenable dans le temps: certains produits sont censés durer jusqu’à 20 ans et plus (surtout dans le domaine militaire)Interface spécifique: approche matérielle à cause de contraintes d’optimisationOptimisé: généralement logicielles de petite taille car plus c’est grand, plus il y a de chance d’avoir des bugs. Ce sont des logiciels produits à grande échelle, le moindre centime compte.Tolérant aux fautes
12J.Boukhobza - Systèmes d'exploitation embarqués
Métriques des systèmes embarqués
Puissance de calcul: sélection du processeur d’après la charge de travail a effectuer et d’après la largeur des registres.Débit: le système peut avoir besoin de prendre en charge plusieurs données en même temps.Temps de réponse: le système doit réagir viteMémoire: l’estimation la plus précise possible de l’utilisation mémoireConsommation d’énergie: la conception hw ET sw doit prendre en compte la consoNombre d’unités produites dicte le compromis entre prix de production et prix de développementDurée de vie est un paramètre important lors de la décision des composants à inclureInstallation du programme requiert des outils spécifiquesTestabilité et débogage plus dur sans E/S de type clavier, etc.Fiabilité est un paramètre critique ex: système ABS
J.Boukhobza - Systèmes d'exploitation embarqués 13
Logiciel/matériel embarquéLogiciel embarqué: programme/application utilisé dans un équipement et complètement intégré dans ce dernier.Système embarqué: Matériel(s) + logiciel(s) (+ OS)
2 types de systèmes embarqués:1. Systèmes embarqués destinés à l’utilisateur (high‐end): généralement une version
dégradée d’un OS existant (ex: Linux). Ex: routeurs, PDA, etc.2. Systèmes embarqués profondément enfouis: peu de fonctions, très petite empreinte
mémoire, généralement construit from scratch. Appareil photo numérique, téléphones portables, etc.
Différences avec les « machines normales »:Prix (production de masse)Performance Consommation (contrainte de consommation batterie)
Simplifier l’architectureRéduire la vitesse d’horlogeRéduire l’utilisation mémoire
14J.Boukhobza - Systèmes d'exploitation embarqués
Système d’exploitation pour l’embarqué ?
Les systèmes d’exploitation permettent:De gérer les ressources matérielles en assurant leurs partages entre les différents utilisateurs.De présenter une interface homogène et générique (en abstrayant la complexité matérielle) mieux adaptée aux utilisateurs.
Pourquoi un système d’exploitation pour l’embarqué ?Affranchir le développeur de logiciel embarqué de bien connaître le matériel gain en temps de développement
Les applications doivent avoir un accès aux services de l’OS via des APIs (réutilisabilité du code, interopérabilité, portabilité, maintenance aisée)
Possibilité de bénéficier des mêmes avancées technologiques que les applications classiques (TCP/IP, HTTP, etc.)Environnement de développement plus performant
15J.Boukhobza - Systèmes d'exploitation embarqués
Système d’exploitation pour l’embarqué (2)Contrôle de processus sans (ou à faible) contrainte temporelle systèmes à temps partagé
Garantir le partage équitable du temps et des ressourcesContrôle de processus avec contrainte temps réel systèmes temps réel
Garantir les temps de réponseSystèmes à contraintes souples/molles: systèmes acceptant des variations minimes de temps de réponse (systèmes multimédias)Systèmes à contraintes dures: gestion stricte du temps pour conserver l’intégrité du système (déterminisme logique et temporel et fiabilité)
16J.Boukhobza - Systèmes d'exploitation embarqués
Les latencesDéfinition: différence entre le moment où une tâche doit débuter (ou finir) et le moment ou elle débute réellement.Elles sont dues:
Aux propriétés temporelles des processeurs, des bus mémoire et d’autres périphériquesAux propriétés des politiques d’ordonnancementÀ la préemptivité du noyauÀ la charge du systèmeAu changement de contexte
J.Boukhobza - Systèmes d'exploitation embarqués 17
Les latences (2)Tâches introduisant de « l’indeterminisme » temporel :
Accès disque: technologie mécanique, géométrie différente d’un disque à l’autre.Accès au réseau: retransmissions en cas d’erreurRésolution basse du timerPilotes de périphérique non temps réel: utilisation d’attente active et de période de sommeil peu précise.Allocation et gestion de la mémoire: mémoire virtuelle /swap non prédictible.Système de fichier proc: tout ce qui se passe dans le système
création à la volée.…
J.Boukhobza - Systèmes d'exploitation embarqués 18
RécapitulatifCritères Temps partagé Temps réel
But Maximiser la capacité de traitement (débit) & utilisation des ressources
Etre prévisible (garantie de temps de réponse)
Temps de réponse Bon en moyenne Bon dans le pire des cas / moyenne non importante
Comportement à la charge
Confortable à l’utilisateur Stabilité et respect des contraintes de temps
19J.Boukhobza - Systèmes d'exploitation embarqués
Logiciel libre et systèmes embarqués
Contrairement aux logiciels classiques, les logiciels embarqués ont une durée de vie particulièrement longue important de faire évoluer le logiciel indépendamment des aléas économiques.
Contraintes des systèmes propriétaires:Sociétés de taille moyenne ont du mal à suivre l’évolution technologique.Outils de développement sont moins accessibles, la compétence est donc plus cher à obtenir.
Logiciels libres: plusieurs critères (disponible sur www.opensource.org), les principaux sont:
La disponibilité du code sourceLa possibilité de réaliser des travaux dérivésLa redistribution sans royalties
Contrainte majeure: SAV sur le long termeJ.Boukhobza - Systèmes d'exploitation embarqués 20
Mais qu’est ce que l’Open source?1. Libre redistribution: en tant que composant d’une
distribution pas de droit d’auteur.2. Inclusion du code source: code source doit être accessible
sans frais supplémentaires.3. Autorisation de travaux dérivés: modification et travaux
dérivés et leur redistribution4. Intégrité du code source de l’utilisateur5. Pas de discrimination entre les personnes ou les groupes 6. Pas de discrimination entre les domaines d’applications.7. Distribution systématique de la licence8. La licence ne doit pas être spécifique à un produit9. La licence ne doit pas contaminer d’autres logiciels
J.Boukhobza - Systèmes d'exploitation embarqués 21
Logiciels libresInitié par Richard M. Stallman (M.I.T) entre 1970‐1980Naissance de GNU (Gnu is Not Unix!) dont le but était de créer un OS.Mise en place d’un nouveau type de licence: GPL (General Public Licence) principe de copyleft par opposition au copyrightLGPL (Lesser GPL): originellement Library GPL similaire au GPL sur les points suivants:
Le copyleft: interdit de s’approprier le code distribué sous GPL ou LGPLDisponibilité des corrections
Différences avec le GPL: permet d’effectuer une édition des liens de code propriétaire avec les bibliothèques permet la disponibilité sous Linux d’applications propriétaires qui utilisent des bibliothèques LGPL indispensable comme glibc
J.Boukhobza - Systèmes d'exploitation embarqués 22
Tour d’horizon des OS embarquésVxWorks et pSOS: (WindRiver)
Noyau temps réel le plus utilisé dans l’industrieInclut en natif un support TCP/IPCoût important de la licenceUtilisation d’un environnement de compilation croisée
QNX: (QNX)Noyau temps réel de type UNIX (conforme à POSIX)Gratuit pour des applications non commercialesDéveloppement direct sur la plateforme cibleTrès faible empreinte mémoire
µC/OS (micro‐C OS): (uCosii)Environnement de très petite taille (microcontrolleur 68HC11)Utilisable gratuitement pour l’enseignement. Peut intégrer des protocoles standards
23J.Boukhobza - Systèmes d'exploitation embarqués
Tour d’horizon des OS embarqués (2)Windows CE: (Microsoft)
Cantonné à l’équipement de nombreux assistants personnelsLynxOS: (LynuxWorks)
Système temps réel conforme à la norme POSIXNucleus (Accelerated Technology)
Noyau temps réel; couche TCP/IP; interface graphique, serveur http, etc. (open source)
eCos: embeddable Configurable OS (Cygnus puis RedHat)Temps réel, bien adapté aux très faibles empreintes mémoire.Disponibilité des protocoles standards (TCP/IP, etc)Basé sur Linux et la chaîne de compilation GNUConforme à la norme POSIX
24J.Boukhobza - Systèmes d'exploitation embarqués
« OS or not OS »
J.Boukhobza - Systèmes d'exploitation embarqués 25
Jim Turley (2006)Source: http://www.embedded.com/columns/surveys/187203732?_requestid=99359
Source:Richard Nass (2008) http://www.embedded.com/products/softwaretools/210200580?printable=true
Des chiffres, des chiffres …
J.Boukhobza - Systèmes d'exploitation embarqués 26
Source:Richard Nass (2008) http://www.embedded.com/products/softwaretools/210200580?printable=true
Tendance des (RT)OS … encore des chiffres !!
J.Boukhobza - Systèmes d'exploitation embarqués 27
Source: Operating systems on the rise, Jim TurleyEmbedded Systems Design (06/21/06, 09:00:00 AM EDT)http://www.embedded.com/columns/surveys/187203732?_requestid=392414
Les architectures des systèmes d’exploitationPlusieurs structures différentes:1. OS Monolithique (plus ancien):
Simple/ne consomme pas beaucoup de ressourcesConvient aux « petits systèmes » ou quelques portions de systèmes temps réel complexe OS entièrement en mode privilégiéL’application utilise un appel système pour accéder aux services de l’OS procédure exécutée Gestion de l’interruption : optimisée car pas de changement de contexte entier (prioritaire car l’ordonnanceur est désactivé)Impossible de mettre à jour l’application « à chaud » (remplacement + reboot)
28J.Boukhobza - Systèmes d'exploitation embarqués
OS MonolithiquesStructure de base:
Un programme principal qui invoque la procédure du serviceUn ensemble de procédures de services qui gèrent les appels systèmeUn ensemble de procédure utilitaires auxiliaires des précédentes
Vielles version d’UNIX (FreeBSD, SOLARIS), DOS.
J.Boukhobza - Systèmes d'exploitation embarqués 29
Procédure principale
Procédures de service
Procédures auxiliaires
Application
Hardware
OS Monolithique (exemple: UNIX)
J.Boukhobza - Systèmes d'exploitation embarqués 30
Matériel
Gestionnaire d’interruptionsProtectionPilotes de
périphériques
Gestion de processus
Gestion de mémoire
Système de fichiers
Support réseau
Démarrage et initialisation
Application Application Application Application
Couche d’abstraction matérielle (HAL)
API
noyau
OS Monolithiques: avantages/inconvénients
De meilleures performancesVite développé …Dernières versions: chargement dynamique (et donc sélectif) des module
Extension difficileCode non modulaire
Très complexeCode massifPlus c’est gros, moins c’est performant !Nid de bugs Peu fiable (un bug redémarrage) Premières versions à chargement statique 400 périphériques supportés 400 périphériques chargés au démarrage !!!!!!!!
J.Boukhobza - Systèmes d'exploitation embarqués 31
Les architectures des systèmes d’exploitation (2)2. OS Multicouches
OS organisé en hiérarchie de couches. Chacune construite sur la base des services offerts par la couche inférieure.Interface et gestion des interruptions similaire à celle des systèmes monolithiques.Meilleure structure et modularité maintenance plus aisée.Configuration plus fine (modularité) meilleure utilisation de la mémoire + performance.
32J.Boukhobza - Systèmes d'exploitation embarqués
OS multicouches (exemple)Couche 0: fournit le service de multiprogrammation. Dans la première couche, c’était un ensemble de processus séquentiels indépendant.Couche 1: Allocation de mémoire dans la mémoire principale. Au dessus, les processus ignoraient les emplacements mémoire.Couche 2: gestion de la communication entre processus et la console opérateur. Dans la couche précédente, chaque processus avait sa propre console opérateur.Couche 3: périph d’E/S et mise en mémoire tampon des flots d’E/S. Au dessus, les processus travaillaient sur une couche abstraite.Couche 4: contient les programmes utilisateur, les notions de processus, mémoire, console leurs sont abstraites.Couche 5: le processus opérateur (control global du système).
Couche Fonction
5 Opérateur
4 Programmes utilisateur
3 Gestion des E/S
2 Communication opérateur‐processus
1 Gestion de la mémoire et du tampon
0 Allocation du processeur‐multiprogammation
J.Boukhobza - Systèmes d'exploitation embarqués 33
Structure de l’OS THE (Technische
Hogescool Eindhoven), Dijkstra 1968
OS Multicouches: avantages/inconvénients
Facile à étendre (plus structuré)Modèle simple
Traverser les différentes couches peut être couteuxLa multiplication des couches peut ne pas être nécessaire.Performances moins bonnes (monolithique)
J.Boukhobza - Systèmes d'exploitation embarqués 34
Les architectures des systèmes d’exploitation (3)3. OS Micronoyau
Déplace plusieurs fonctions de l’OS vers des « processus serveur » s’exécutant en mode utilisateur réduction au maximum de la taille du code privilégié.But: gérer les communications entre applications et serveurs pour:
Renforcer la politique de sécuritéPermettre l’exécution de fonctions système (accès aux registres d’E/S, etc.).
Fiabilité augmentée: si un processus serveur « crash », le système continue à fonctionner et il est possible de relancer ce service sans redémarrer.Modèle facilement étendu à des systèmes distribués (efficacité?!).Gestion de l’interruption: commutation de tâche moins efficace que le modèle monolithique.
35J.Boukhobza - Systèmes d'exploitation embarqués
OS micronoyau
Le noyau gèrent les communications entre clients et serveurs.Certains services sont impossible à exécuter en mode utilisateur (pilotes de périphériques d’E/S):
Garder certains processus serveur critiques en mode noyauGarder une partie du mécanisme en mode noyau en laissant le choix des politiques aux serveurs en mode utilisateur.
J.Boukhobza - Systèmes d'exploitation embarqués 36
Micronoyau
Processus client
Processus client
Processus serveur
Serveur de terminaux
Serveur de fichiers
Serveur de mémoire Mode utilisateur
Mode noyau
Source: « Systèmes d’exploitation », Andrew Tanenbaum, 2ème édition, Pearson Education 2001
OS micronoyau
Si le client communique avec le serveur par envoi de message, il lui importe peu que le serveur soit local ou distant, le résultat est le même d’où l’adaptabilité aux systèmes distribuésExemples: Windows NT, Mach, Chorus, QNX.
J.Boukhobza - Systèmes d'exploitation embarqués 37
Processus client
Processus client
Processus serveur
Serveur de terminaux
Serveur de fichiers
noyau noyau noyau noyaunoyau
Machine 1 Machine 2 Machine 3 Machine 4 Machine n
Source: « Systèmes d’exploitation », Andrew Tanenbaum, 2ème édition, Pearson Education 2001
OS Micronoyaux: avantages/inconvénients
ExtensibilitéMinimise le code du noyauSécurité:
Un serveur crash, il sera le seul à redémarrer Fiabilité
Micronoyau: code plus petit moins de bugs
Souvent tenté de rajouter des choses dans le noyau (vu qu’il est petit…)Mauvaises performancesRequière beaucoup de prudence lors de la conception
J.Boukhobza - Systèmes d'exploitation embarqués 38
Les architectures des systèmes d’exploitation (4)4. OS Machine virtuelle
L’OS doit remplir 2 fonctions: Multi programmation moniteur de machine virtuelle
Mode privilégié (exécution)Plusieurs processeurs virtuels
Services systèmeUn ou plusieurs OS « invités » qui s’exécutent sur les processeurs virtuels et fournissent les services système.
Le moniteur de machine virtuelle (hyperviseur) intercepte les instructions privilégiées envoyées par l’OS invité, les vérifie (politique de sécurité) et les exécute sur l’OS invité.Les interruptions sont aussi interceptées par le moniteur de la MV
39J.Boukhobza - Systèmes d'exploitation embarqués
OS machine virtuelle2 types:
MV nativeMV invité
Exemple de ce type d’OS: XEN, VMWare, IBM’ VM/370.
J.Boukhobza - Systèmes d'exploitation embarqués 40
Couche matériel Couche matériel
Moniteur de machine virtuelle
Application Application
Système d’exploitation
invité
Application Application
Système d’exploitation
invité
Système d’exploitation hôte
Moniteur de machine virtuelle
Application Application
Système d’exploitation
invité
Application Application
Système d’exploitation
invité
VM nativeVM invité
OS machine virtuelle: avantages/inconvénients
Permet l’exécution de plusieurs OS sur une seule machinePermet une bonne portabilité des applicationsUne protection complète (code exécute en mode privilégié complètement géré)Bon environnement de développement (dev système en mode utilisateur…)
Gros problème de performances (plusieurs couches)Manque de flexibilité
J.Boukhobza - Systèmes d'exploitation embarqués 41
Les normes des systèmes d’exploitation
POSIX (Portable Operating System Interface): standard pour les appels de fonction (API) pour les OS UNIX‐like. Il existe quelques spécifications pour des primitives temps réels.4 profils pour le temps réel:1. PSE51: profile de système temps réel minimaliste : 1 seul processus POSIX pouvant
exécuter plusieurs threads POSIX pouvant utiliser le passage de messages POSIX pour communiquer avec d’autres systèmes PS5x
Hw: 1 seul processeur avec sa mémoire, pas de MMU et d’E/S standard.
2. PSE52: profile de système de contrôleur temps réel: PSE51+support pour un système de fichiers + E/S asynchrones
3. PSE53: profile de système temps réel dédié: PSE51+support multiprocessus(+MMU)
4. PSE54: profile de système temps réel polyvalent: englobe les autres profils. Il consiste de POSIX.1, POSIX.1b, POSIX.1c, et/ou POSIX.5b
Exemple: RTLinux se réclame du profil PSE51 alors qu’RTAI ne réclame rien du tout.
J.Boukhobza - Systèmes d'exploitation embarqués 42
Autres standardsUNIX98: normalisation de l’OS UNIX. Cette norme incorpore plusieurs des normes de POSIXEL/IX: API pour les systèmes embarqués. Se veut un sous ensemble des normes POSIX et ANSI.µTRON: norme japonaise pour les systèmes embarquésOSEK: norme allemande pour une architecture ouverte reliant les divers contrôleurs électroniques d’un véhicule.RT Spec pour Java: spécification pour un runtime qui édicte des prescriptions (ramasse miettes, certaines politiques d’ordonnancement, etc.)Ada95: ex: MarteOS, OpenRavenscar.RT Corba: un ensemble de spécification temps réel
J.Boukhobza - Systèmes d'exploitation embarqués 43
Responsabilités des systèmes d’exploitation
Gestion des tâchesOrdonnancementGestion des interruptionsCommunication inter‐processus et synchronisationGestion de la mémoire Entrées/Sorties et pilotes de périphériquesSystèmes de fichiers Protocoles de communication ….
J.Boukhobza - Systèmes d'exploitation embarqués 44
Principes de base des tâchesProcessus et Threads
Processus: l’activité qui exécute un programme incluant:Le sourceLes donnéesL’état du processeur Chaque processus a son propre espace d’adressage
Gestion de la création, suppression, changement de priorité, contraintes temporelles, besoins mémoire, etc.
Concept de thread utilisateur, noyau, etc.
Les « petits » OS pour l’embarqué utilisent seulement les threads alors que les « grands » OS peuvent utiliser plusieurs modèles processus/threads.
45J.Boukhobza - Systèmes d'exploitation embarqués
Processus et Thread (2)Création de processus et de threads:
Statique: toutes les tâches sont connues à l’avance il n’est pas possible d’en créer pendant que le système tourne.
Dynamique: appels système permettant de créer et détruire des tâches à la volée:
Système plus flexiblePlus de complexité (allocation dynamique, gestion d’erreurs)
46J.Boukhobza - Systèmes d'exploitation embarqués
OrdonnancementEntité qui décide quelle tâche doit exécuter le processeur.Compromis entre la prédictibilité temps réel, complexité d’implémentation, et délai d’exécution.RTOS (Real Time OS) supportent plusieurs politiques d’ordonnancement, le choix incombe (parfois) au programmeur:
FIFO avec priorité (statique)Date limite la plus proche (priorité dynamique) performant (uniprocesseur), couteux en temps de calculServeur sporadique (perte de priorité en fonction du temps processeur consommé).…
J.Boukhobza - Systèmes d'exploitation embarqués 47
Gestion d’interruptionGestion de plusieurs périphériques: minuterie (timer), moteurs, capteurs, disques, etc.Requêtes asynchrones signalés par des interruptions2 types d’interruptions:
Interruptions matériellesInterruptions logicielles
Le code exécuté lors d’une interruption est dicté par le CPU à l’aide du vecteur d’interruption. Mais l’OS intervient pour:
Connecter une adresse mémoire à chaque ligne d’interruptionQue faut‐il faire après avoir servi une interruption
Gestion de l’aspect temps réel.
J.Boukhobza - Systèmes d'exploitation embarqués 48
Communication & Synchronisation Inter Processus
Sémaphores: (Dijkstra 1965)Synchro à travers 2 opérations atomiques P et V.Bas niveauExclusion mutuelle assurée par le programmeur
Moniteurs (Hoare & Hansen 1974)Mécanisme de haut niveauExclusion mutuelle assurée par le compilateur
Passage de messagesTransfert de données entre processusMise en tampon des messagesRendez‐vous
49J.Boukhobza - Systèmes d'exploitation embarqués
Gestion de la mémoireAllocation: Allouer à chaque tâche la mémoire dont elle a besoin Mapping: Faire la correspondance entre la mémoire physique et l’adressage utilisé par les tâches.Protection: Etablir un ensemble de comportements à adopter lorsqu’une tâche utilise de la mémoire non allouée.Implémentation des mécanismes permettant cette gestion.
J.Boukhobza - Systèmes d'exploitation embarqués 50
Support RéseauLe standard POSIX (Portable Operating System Interface for Computing Environments) socket:
Accès uniforme à n’importe quel mode/protocole de communication en réseau (domaine de communication + type de socket)
Support réseau spécifique à un OS particulier:Plus de fonctionnalité (création de filtre de msg / spécification de l’ordre de lecture des msg)Moins de réutilisabilité
51J.Boukhobza - Systèmes d'exploitation embarqués
Autres fonctionsSignaux temps réel et asynchrones: gestion des événements imprévu (pannes sw ou hw) et dégradation des performances en cas de surcharge du processeur).Horloge et minuterie (timer) haute résolution: donner au processus temps réel une mesure juste du temps écouléE/S asynchrones: découpler les processus temps réel de l’imprévisibilité des périphériques d’E/S
52J.Boukhobza - Systèmes d'exploitation embarqués
Compromis lors de la conceptionEspace noyau/espace utilisateur/espace temps réel.OS monolithique/multicouche ou micro‐noyauNoyau préemptible ou nonScalabilitéGestion de mémoire / mémoire partagéeDédié / génériqueOS / langage runtime
J.Boukhobza - Systèmes d'exploitation embarqués 53
Exposé à faireEtude d’un système d’exploitation pour l’embarqué (temps réel … ou pas)
eCosµC/OSFreeRTOSQNXVxWorks (interdit aux étudiants ayant fait leur master1 à l’UBO)… ou un OS embarqué OpenSource (plus pratique pour savoir ce qu’il y a dedans!)
J.Boukhobza - Systèmes d'exploitation embarqués 54