0% ont trouvé ce document utile (0 vote)
154 vues54 pages

OSM 1 Boukhobza

Transféré par

Samira cherif
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
154 vues54 pages

OSM 1 Boukhobza

Transféré par

Samira cherif
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 54

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

Vous aimerez peut-être aussi