Cours
1 ‐ Master 2 SE
Jalil Boukhobza
Université de Bretagne Occidentale – Lab‐STICC
J.Boukhobza - Systèmes d'exploitation embarqués 1
Ce cours …
y Contient 24 séances de 2h:
y Des cours (au moins 8)
y Des TPs (plus de 10)
y Pas de TDs …
y Evaluation:
y Contrôle continu (1/2)
y Exposé
y Projet TP
y Examen final (1/2)
J.Boukhobza - Systèmes d'exploitation embarqués 2
Contenu du cours
y Cours:
y Revoir toutes les fonctionnalités des OS:
y Plus en détails
y En se focalisant sur ce qui est spécifique à l’embarqué
y Etudes de cas
y TP
y Etude approfondie du système Linux
y Compilation d’un noyau linux pour l’embarqué
y 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é
y É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.
y Pas d’E/S standards
y Matériel et application intimement liés
y Logiciel enfoui … noyé dans le matériel … pas facilement discernable
comme dans un PC.
y Il sont partout !!!
y Radio/réveil
y Machine à café
y Télévision / télécommande
y Moyen de transport (voiture : à foison !)
y Téléphone portable ….
J.Boukhobza - Systèmes d'exploitation embarqués 4
Caractéristiques principales d’un
système embarqué
y Système principalement numérique
y Met généralement en œuvre un processeur
y Exécute une application logicielle dédiée précise (non
pas une application scientifique ou grand public)
y Il n’a pas réellement de clavier standard et l’affichage
est limité
y 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 chiffres
y En 1999, il a été vendu (dans le y Moins de 2% (5%) des
domaine de l’embarqué): processeurs vendu sont pour les
y 1,3 milliards de processeurs 4 bits PC, 98% (95%) pour l’embarqué
y 1,4 milliards de processeurs 8 bits
y 375 millions de processeurs 16 bits
y 127 millions de processeurs 32 bits
y Prix moyen d’un processeur 6$
y 3,2 millions de processeurs 64 bits. (2004) alors qu’un processeur PC
coute 300$.
y Il a été vendu 108 millions de
processeurs pour le marché du PC y Le marché du processeur PC
y En 2004: est de très faible volume …
y 14 milliards de processeurs pour mais très lucratif
l’embarqué (microprocesseur,
microcontrôleur, DSP, etc.)
y 260 millions de processeurs PC.
J.Boukhobza - Systèmes d'exploitation embarqués 6
Champs d’application:
4 grandes classes
1. Calcul généraliste
y Similaire aux applications bureau mais embarqué (assistant
personnel, téléphone portable, etc.)
y Consoles de jeux vidéo, set‐top box
2. Contrôle de systèmes
y Moteur, voiture, avion, processus chimique, nucléaire,
navigation, etc.
3. Traitement du signal
y Compression vidéo, radar, flux de données, etc.
4. Réseaux et communications
y Transmission de données, commutation, routage, téléphone,
Internet, etc.
J.Boukhobza - Systèmes d'exploitation embarqués 7
Exemples de systèmes embarqués
y Grand public :
y 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.
y Transports :
y 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.
y Défense :
y Contrôle de trajectoire, lanceur, etc.
J.Boukhobza - Systèmes d'exploitation embarqués 8
Exemples de systèmes embarqués
(2)
y Secteur manufacturier et industrie :
y 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.
y Information et communication :
y Imprimante, périphérique, téléphone, répondeur, fax,
routeurs, téléphonie mobile, satellites, GPS, etc.
y Santé :
y Imagerie médicale, diagnostique, soins, implants,
handicapés, etc.
y Autres :
y Carte à puce, distributeurs, etc.
J.Boukhobza - Systèmes d'exploitation embarqués 9
Système embarqué typique
Logicielle
FPGA /
Mémoire
ASIC
Conversion Conversion
détecteur
A/N CPU N/A
Actionneur
Interface Système
humaine Port de auxiliaire
diagnostic
Environnement
extérieur
J.Boukhobza - Systèmes d'exploitation embarqués 10
Système embarqué typique (2)
y Capteurs (interrupteurs, etc) couplés à des convertisseurs
analogique/numérique.
y Actionneurs (LED, etc) couplés à des convertisseurs numérique/analogique.
y Calculateur (processeur embarqué et ses E/S).
y Possibilité d’avoir un/des FPGAs et/ou ASICs pour jouer le rôle de
coprocesseurs (accélération matérielle)
y Les systèmes embarqués doivent prendre en compte:
y Variation des températures
y Vibrations et chocs
y Variations des alimentations
y Interférences RF
y Corrosion
y Eau, feu, radiation
y …
J.Boukhobza - Systèmes d'exploitation embarqués 11
Quelques propriétés des systèmes
embarqués
y Ciblé: domaine d’action limité aux fonctions pour lesquelles il a
été crée.
y Simple: gage de robustesse
y Fiable: fonctionnement complètement autonome.
y Sécurisé
y Maintenable dans le temps: certains produits sont censés durer
jusqu’à 20 ans et plus (surtout dans le domaine militaire)
y Interface spécifique: approche matérielle à cause de contraintes
d’optimisation
y Optimisé: 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.
y Tolérant aux fautes
J.Boukhobza - Systèmes d'exploitation embarqués 12
Métriques des systèmes
embarqués
y Puissance de calcul: sélection du processeur d’après la charge de travail
a effectuer et d’après la largeur des registres.
y Débit: le système peut avoir besoin de prendre en charge plusieurs
données en même temps.
y Temps de réponse: le système doit réagir vite
y Mémoire: l’estimation la plus précise possible de l’utilisation mémoire
y Consommation d’énergie: la conception hw ET sw doit prendre en
compte la conso
y Nombre d’unités produites dicte le compromis entre prix de production
et prix de développement
y Durée de vie est un paramètre important lors de la décision des
composants à inclure
y Installation du programme requiert des outils spécifiques
y Testabilité et débogage plus dur sans E/S de type clavier, etc.
y Fiabilité est un paramètre critique ex: système ABS
J.Boukhobza - Systèmes d'exploitation embarqués 13
Logiciel/matériel embarqué
y Logiciel embarqué: programme/application utilisé dans un équipement et
complètement intégré dans ce dernier.
y 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.
y Différences avec les « machines normales »:
y Prix (production de masse)
y Performance
y Consommation (contrainte de consommationbatterie)
y Simplifier l’architecture
y Réduire la vitesse d’horloge
y Réduire l’utilisation mémoire
J.Boukhobza - Systèmes d'exploitation embarqués 14
Système d’exploitation pour
l’embarqué ?
y Les systèmes d’exploitation permettent:
y De gérer les ressources matérielles en assurant leurs partages entre
les différents utilisateurs.
y De présenter une interface homogène et générique (en abstrayant la
complexité matérielle) mieux adaptée aux utilisateurs.
y Pourquoi un système d’exploitation pour l’embarqué ?
y Affranchir le développeur de logiciel embarqué de bien connaître le
matériel gain en temps de développement
y 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)
y Possibilité de bénéficier des mêmes avancées technologiques que
les applications classiques (TCP/IP, HTTP, etc.)
y Environnement de développement plus performant
J.Boukhobza - Systèmes d'exploitation embarqués 15
Système d’exploitation pour
l’embarqué (2)
y Contrôle de processus sans (ou à faible) contrainte
temporelle systèmes à temps partagé
y Garantir le partage équitable du temps et des ressources
y Contrôle de processus avec contrainte temps réel
systèmes temps réel
y Garantir les temps de réponse
y Systèmes à contraintes souples/molles: systèmes acceptant
des variations minimes de temps de réponse (systèmes
multimédias)
y Systèmes à contraintes dures: gestion stricte du temps pour
conserver l’intégrité du système (déterminisme logique et
temporel et fiabilité)
J.Boukhobza - Systèmes d'exploitation embarqués 16
Les latences
y Définition: différence entre le moment où une tâche
doit débuter (ou finir) et le moment ou elle débute
réellement.
y Elles sont dues:
y Aux propriétés temporelles des processeurs, des bus
mémoire et d’autres périphériques
y Aux propriétés des politiques d’ordonnancement
y À la préemptivité du noyau
y À la charge du système
y Au changement de contexte
J.Boukhobza - Systèmes d'exploitation embarqués 17
Les latences (2)
y Tâches introduisant de « l’indeterminisme » temporel :
y Accès disque: technologie mécanique, géométrie différente
d’un disque à l’autre.
y Accès au réseau: retransmissions en cas d’erreur
y Résolution basse du timer
y Pilotes de périphérique non temps réel: utilisation d’attente
active et de période de sommeil peu précise.
y Allocation et gestion de la mémoire: mémoire virtuelle /swap
non prédictible.
y Système de fichier proc: tout ce qui se passe dans le système
p création à la volée.
y …
J.Boukhobza - Systèmes d'exploitation embarqués 18
Récapitulatif
Critères Temps partagé Temps réel
But Maximiser la capacité de Etre prévisible (garantie
traitement (débit) & de temps de réponse)
utilisation des ressources
Temps de réponse Bon en moyenne Bon dans le pire des cas /
moyenne non importante
Comportement à la Confortable à l’utilisateur Stabilité et respect des
charge contraintes de temps
J.Boukhobza - Systèmes d'exploitation embarqués 19
Logiciel libre et systèmes
embarqués
y Contrairement aux logiciels classiques, les logiciels embarqués ont une durée
de vie particulièrement longue t important de faire évoluer le logiciel
indépendamment des aléas économiques.
y Contraintes des systèmes propriétaires:
y Sociétés de taille moyenne tont du mal à suivre l’évolution technologique.
y Outils de développement sont moins accessibles, la compétence est donc plus cher à
obtenir.
y Logiciels libres: plusieurs critères (disponible sur www.opensource.org), les
principaux sont:
y La disponibilité du code source
y La possibilité de réaliser des travaux dérivés
y La redistribution sans royalties
y Contrainte majeure: SAV sur le long terme
J.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 t 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 redistribution
4. Intégrité du code source de l’utilisateur
5. Pas de discrimination entre les personnes ou les groupes
6. Pas de discrimination entre les domaines d’applications.
7. Distribution systématique de la licence
8. La licence ne doit pas être spécifique à un produit
9. La licence ne doit pas contaminer d’autres logiciels
J.Boukhobza - Systèmes d'exploitation embarqués 21
Logiciels libres
y Initié par Richard M. Stallman (M.I.T) entre 1970‐1980
y Naissance de GNU (Gnu is Not Unix!) dont le but était de créer
un OS.
y Mise en place d’un nouveau type de licence: GPL (General Public
Licence) t principe de copyleft par opposition au copyright
y LGPL (Lesser GPL): originellement Library GPL similaire au GPL
sur les points suivants:
y Le copyleft: interdit de s’approprier le code distribué sous GPL ou
LGPL
y Disponibilité des corrections
y Différences avec le GPL: permet d’effectuer une édition des liens
de code propriétaire avec les bibliothèques t 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és
y VxWorks et pSOS: (WindRiver)
y Noyau temps réel le plus utilisé dans l’industrie
y Inclut en natif un support TCP/IP
y Coût important de la licence
y Utilisation d’un environnement de compilation croisée
y QNX: (QNX)
y Noyau temps réel de type UNIX (conforme à POSIX)
y Gratuit pour des applications non commerciales
y Développement direct sur la plateforme cible
y Très faible empreinte mémoire
y µC/OS (micro‐C OS): (uCosii)
y Environnement de très petite taille (microcontrolleur 68HC11)
y Utilisable gratuitement pour l’enseignement.
y Peut intégrer des protocoles standards
J.Boukhobza - Systèmes d'exploitation embarqués 23
Tour d’horizon des OS embarqués
(2)
y Windows CE: (Microsoft)
y Cantonné à l’équipement de nombreux assistants personnels
y LynxOS: (LynuxWorks)
y Système temps réel conforme à la norme POSIX
y Nucleus (Accelerated Technology)
y Noyau temps réel; couche TCP/IP; interface graphique,
serveur http, etc. (open source)
y eCos: embeddable Configurable OS (Cygnus puis RedHat)
y Temps réel, bien adapté aux très faibles empreintes mémoire.
y Disponibilité des protocoles standards (TCP/IP, etc)
y Basé sur Linux et la chaîne de compilation GNU
y Conforme à la norme POSIX
J.Boukhobza - Systèmes d'exploitation embarqués 24
« OS or not OS »
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
J.Boukhobza - Systèmes d'exploitation embarqués 25
Des chiffres, des chiffres …
Source:Richard Nass (2008)
http://www.embedded.com/products/softwaretools/210200580?printable=true
J.Boukhobza - Systèmes d'exploitation embarqués 26
Tendance des (RT)OS … encore des
chiffres !!
Source: Operating systems on the rise, Jim Turley
Embedded Systems Design
(06/21/06, 09:00:00 AM EDT)
http://www.embedded.com/columns/surveys/187203732?_requestid=392414
J.Boukhobza - Systèmes d'exploitation embarqués 27
Les architectures des systèmes
d’exploitation
Plusieurs structures différentes:
1. OS Monolithique (plus ancien):
y Simple/ne consomme pas beaucoup de ressources
y Convient aux « petits systèmes » ou quelques portions de
systèmes temps réel complexe
y OS entièrement en mode privilégié
y L’application utilise un appel système pour accéder aux
services de l’OS procédure exécutée
y Gestion de l’interruption : optimisée car pas de changement
de contexte entier (prioritaire car l’ordonnanceur est
désactivé)
y Impossible de mettre à jour l’application « à chaud »
(remplacement + reboot)
J.Boukhobza - Systèmes d'exploitation embarqués 28
OS Monolithiques
y Structure de base:
y Un programme principal qui invoque la procédure du service
y Un ensemble de procédures de services qui gèrent les appels système
y Un ensemble de procédure utilitaires auxiliaires des précédentes
y Vielles version d’UNIX (FreeBSD, SOLARIS), DOS.
Application Procédure
principale
Procédures de
service
Procédures
Hardware auxiliaires
J.Boukhobza - Systèmes d'exploitation embarqués 29
OS Monolithique (exemple: UNIX)
Application Application Application Application
API
Système de Gestion de Gestion de Démarrage et Support
fichiers mémoire processus initialisation réseau
noyau
Pilotes de Gestionnaire
périphériques
Protection d’interruptions
Couche d’abstraction matérielle (HAL)
Matériel
J.Boukhobza - Systèmes d'exploitation embarqués 30
OS Monolithiques:
avantages/inconvénients
3 De meilleures performances
3 Vite développé …
3 Dernières versions: chargement dynamique (et donc sélectif) des
module
2 Extension difficile
2 Code non modulaire
2 Très complexe
2 Code massif
2 Plus c’est gros, moins c’est performant !
2 Nid de bugs
2 Peu fiable (un bug redémarrage)
2 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
y OS organisé en hiérarchie de couches. Chacune
construite sur la base des services offerts par la couche
inférieure.
y Interface et gestion des interruptions similaire à celle des
systèmes monolithiques.
y Meilleure structure et modularité maintenance plus
aisée.
y Configuration plus fine (modularité) meilleure
utilisation de la mémoire + performance.
J.Boukhobza - Systèmes d'exploitation embarqués 32
OS multicouches (exemple)
y Couche 0: fournit le service de
multiprogrammation. Dans la première Structure de l’OS THE (Technische
couche, c’était un ensemble de processus
séquentiels indépendant. Hogescool Eindhoven), Dijkstra 1968
y Couche 1: Allocation de mémoire dans la
mémoire principale. Au dessus, les processus Couche Fonction
ignoraient les emplacements mémoire.
y Couche 2: gestion de la communication entre 5 Opérateur
processus et la console opérateur. Dans la
couche précédente, chaque processus avait sa 4 Programmes utilisateur
propre console opérateur.
y Couche 3: périph d’E/S et mise en mémoire 3 Gestion des E/S
tampon des flots d’E/S. Au dessus, les
processus travaillaient sur une couche 2 Communication opérateur‐
abstraite.
y Couche 4: contient les programmes processus
utilisateur, les notions de processus, mémoire,
console leurs sont abstraites. 1 Gestion de la mémoire et du
y Couche 5: le processus opérateur (control tampon
global du système).
0 Allocation du processeur‐
multiprogammation
J.Boukhobza - Systèmes d'exploitation embarqués 33
OS Multicouches:
avantages/inconvénients
3 Facile à étendre (plus structuré)
3 Modèle simple
2 Traverser les différentes couches peut être couteux
2 La multiplication des couches peut ne pas être
nécessaire.
2 Performances moins bonnes (monolithique)
J.Boukhobza - Systèmes d'exploitation embarqués 34
Les architectures des systèmes
d’exploitation (3)
3. OS Micronoyau
y 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é.
y But: gérer les communications entre applications et serveurs pour:
y Renforcer la politique de sécurité
y Permettre l’exécution de fonctions système (accès aux registres d’E/S,
etc.).
y Fiabilité augmentée: si un processus serveur « crash », le système
continue à fonctionner et il est possible de relancer ce service sans
redémarrer.
y Modèle facilement étendu à des systèmes distribués (efficacité?!).
y Gestion de l’interruption: commutation de tâche moins efficace
que le modèle monolithique.
J.Boukhobza - Systèmes d'exploitation embarqués 35
OS micronoyau
Processus Processus Processus Serveur de Serveur de Serveur de
Mode utilisateur
client client serveur terminaux fichiers mémoire
Micronoyau Mode noyau
Source: « Systèmes d’exploitation »,
Andrew Tanenbaum, 2ème édition,
Pearson Education 2001
y Le noyau gèrent les communications entre clients et
serveurs.
y Certains services sont impossible à exécuter en mode
utilisateur (pilotes de périphériques d’E/S):
y Garder certains processus serveur critiques en mode noyau
y Garder 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
OS micronoyau
Machine 1 Machine 2 Machine 3 Machine 4 Machine n
Processus Processus Processus Serveur de Serveur de
client client serveur terminaux fichiers
noyau noyau noyau noyau noyau
Source: « Systèmes d’exploitation »,
Andrew Tanenbaum, 2ème édition,
Pearson Education 2001
y 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és
y Exemples: Windows NT, Mach, Chorus, QNX.
J.Boukhobza - Systèmes d'exploitation embarqués 37
OS Micronoyaux:
avantages/inconvénients
3 Extensibilité
3 Minimise le code du noyau
3 Sécurité:
3 Un serveur crash, il sera le seul à redémarrer
3 Fiabilité
3 Micronoyau: code plus petit p moins de bugs
2 Souvent tenté de rajouter des choses dans le noyau (vu qu’il
est petit…)
2 Mauvaises performances
2 Requiè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
y L’OS doit remplir 2 fonctions:
y Multi programmation moniteur de machine virtuelle
y Mode privilégié (exécution)
y Plusieurs processeurs virtuels
y Services système
y Un ou plusieurs OS « invités » qui s’exécutent sur les processeurs
virtuels et fournissent les services système.
y 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é.
y Les interruptions sont aussi interceptées par le moniteur de la
MV
J.Boukhobza - Systèmes d'exploitation embarqués 39
OS machine virtuelle
y 2 types:
y MV native
y MV invité
y Exemple de ce type d’OS: XEN, VMWare, IBM’ VM/370.
Application Application Application Application
Application Application Application Application Système Système
d’exploitation d’exploitation
invité invité
Système Système
d’exploitation d’exploitation
invité invité Moniteur de machine virtuelle
Moniteur de machine virtuelle Système d’exploitation hôte
Couche matériel Couche matériel
VM native
VM invité
J.Boukhobza - Systèmes d'exploitation embarqués 40
OS machine virtuelle:
avantages/inconvénients
3 Permet l’exécution de plusieurs OS sur une seule
machine
3 Permet une bonne portabilité des applications
3 Une protection complète (code exécute en mode
privilégié complètement géré)
3 Bon environnement de développement (dev système
en mode utilisateur…)
2 Gros problème de performances (plusieurs couches)
2 Manque de flexibilité
J.Boukhobza - Systèmes d'exploitation embarqués 41
Les normes des systèmes
d’exploitation
y 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.
y 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
y 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 standards
y UNIX98: normalisation de l’OS UNIX. Cette norme
incorpore plusieurs des normes de POSIX
y EL/IX: API pour les systèmes embarqués. Se veut un sous
ensemble des normes POSIX et ANSI.
y µTRON: norme japonaise pour les systèmes embarqués
y OSEK: norme allemande pour une architecture ouverte
reliant les divers contrôleurs électroniques d’un véhicule.
y RT Spec pour Java: spécification pour un runtime qui
édicte des prescriptions (ramasse miettes, certaines
politiques d’ordonnancement, etc.)
y Ada95: ex: MarteOS, OpenRavenscar.
y 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
y Gestion des tâches
y Ordonnancement
y Gestion des interruptions
y Communication inter‐processus et synchronisation
y Gestion de la mémoire
y Entrées/Sorties et pilotes de périphériques
y Systèmes de fichiers
y Protocoles de communication ….
J.Boukhobza - Systèmes d'exploitation embarqués 44
Principes de base des tâches
Processus et Threads
y Processus: l’activité qui exécute un programme incluant:
y Le source
y Les données
y L’état du processeur
y Chaque processus a son propre espace d’adressage
y Gestion de la création, suppression, changement de priorité,
contraintes temporelles, besoins mémoire, etc.
y Concept de thread utilisateur, noyau, etc.
y Les « petits » OS pour l’embarqué utilisent seulement les threads
alors que les « grands » OS peuvent utiliser plusieurs modèles
processus/threads.
J.Boukhobza - Systèmes d'exploitation embarqués 45
Processus et Thread (2)
y Création de processus et de threads:
y Statique: toutes les tâches sont connues à l’avance il
n’est pas possible d’en créer pendant que le système
tourne.
y Dynamique: appels système permettant de créer et
détruire des tâches à la volée:
y Système plus flexible
y Plus de complexité (allocation dynamique, gestion d’erreurs)
J.Boukhobza - Systèmes d'exploitation embarqués 46
Ordonnancement
y Entité qui décide quelle tâche doit exécuter le processeur.
y Compromis entre la prédictibilité temps réel, complexité
d’implémentation, et délai d’exécution.
y RTOS (Real Time OS) supportent plusieurs politiques
d’ordonnancement, le choix incombe (parfois) au
programmeur:
y FIFO avec priorité (statique)
y Date limite la plus proche (priorité dynamique) performant
(uniprocesseur), couteux en temps de calcul
y Serveur sporadique (perte de priorité en fonction du temps
processeur consommé).
y …
J.Boukhobza - Systèmes d'exploitation embarqués 47
Gestion d’interruption
y Gestion de plusieurs périphériques: minuterie (timer),
moteurs, capteurs, disques, etc.
y Requêtes asynchrones signalés par des interruptions
y 2 types d’interruptions:
y Interruptions matérielles
y Interruptions logicielles
y Le code exécuté lors d’une interruption est dicté par le CPU
à l’aide du vecteur d’interruption. Mais l’OS intervient pour:
y Connecter une adresse mémoire à chaque ligne d’interruption
y Que faut‐il faire après avoir servi une interruption
y Gestion de l’aspect temps réel.
J.Boukhobza - Systèmes d'exploitation embarqués 48
Communication & Synchronisation
Inter Processus
y Sémaphores: (Dijkstra 1965)
y Synchro à travers 2 opérations atomiques P et V.
y Bas niveau
y Exclusion mutuelle assurée par le programmeur
y Moniteurs (Hoare & Hansen 1974)
y Mécanisme de haut niveau
y Exclusion mutuelle assurée par le compilateur
y Passage de messages
y Transfert de données entre processus
y Mise en tampon des messages
y Rendez‐vous
J.Boukhobza - Systèmes d'exploitation embarqués 49
Gestion de la mémoire
y Allocation: Allouer à chaque tâche la mémoire dont
elle a besoin
y Mapping: Faire la correspondance entre la mémoire
physique et l’adressage utilisé par les tâches.
y Protection: Etablir un ensemble de comportements à
adopter lorsqu’une tâche utilise de la mémoire non
allouée.
y Implémentation des mécanismes permettant cette
gestion.
J.Boukhobza - Systèmes d'exploitation embarqués 50
Support Réseau
y Le standard POSIX (Portable Operating System
Interface for Computing Environments) socket:
y Accès uniforme à n’importe quel mode/protocole de
communication en réseau (domaine de communication
+ type de socket)
y Support réseau spécifique à un OS particulier:
y Plus de fonctionnalité (création de filtre de msg /
spécification de l’ordre de lecture des msg)
y Moins de réutilisabilité
J.Boukhobza - Systèmes d'exploitation embarqués 51
Autres fonctions
y Signaux 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).
y Horloge et minuterie (timer) haute résolution:
donner au processus temps réel une mesure juste du
temps écoulé
y E/S asynchrones: découpler les processus temps réel
de l’imprévisibilité des périphériques d’E/S
J.Boukhobza - Systèmes d'exploitation embarqués 52
Compromis lors de la conception
y Espace noyau/espace utilisateur/espace temps réel.
y OS monolithique/multicouche ou micro‐noyau
y Noyau préemptible ou non
y Scalabilité
y Gestion de mémoire / mémoire partagée
y Dédié / générique
y OS / langage runtime
J.Boukhobza - Systèmes d'exploitation embarqués 53
Exposé à faire
y Etude d’un système d’exploitation pour l’embarqué
(temps réel … ou pas)
y eCos
y µC/OS
y FreeRTOS
y QNX
y VxWorks (interdit aux étudiants ayant fait leur master1 à
l’UBO)
y … ou un OS embarqué OpenSource (plus pratique
pour savoir ce qu’il y a dedans!)
J.Boukhobza - Systèmes d'exploitation embarqués 54