2/26/2021
Cours Systèmes d’Exploitation embarqués et
Temps réel
Chapitre I : Introduction au Systèmes
d’Exploitation
Embarqués et Temps réel
2O20/2021 Ahmed Ghazi Blaiech 1
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
Définition
• C’est un système électronique et informatique autonome qui est dédié à une tâche
particulière et contenu dans un système englobant. Il n’est « généralement » pas
programmable.
• Pas d’E/S standards.
• Il est constitué de parties matérielles et logicielles qui sont conçues
spécifiquement pour réaliser une fonction dédiée.
• Il n’est pas visible mais il est intégré dans un équipement doté d’une fonction, on
dit que alors c’est un système enfoui.
2O20/2021 2
1
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
Caractéristiques principales d’un système embarqué
• Système principalement numérique
• Met généralement en œuvre un processeur
• Exécute une application logicielle dédiée précise (non pas une application grand
public)
• Il peut connecter un clavier standard et un écran standard.
• Autonomie élevée: Une fois en marche sur l’application, il n’est plus accessible
• Temps réel: Le temps de réponse de ces systèmes est aussi important que
l’exactitude des résultats
2O20/2021 3
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
• Ressources limitées ( mémoire, vitesse processeur, énergie).
• Interaction avec son environnement (capteurs)
• Garantit la robustesse (stabilité de sa performance malgré des conditions
externes)
• Sécurisé
• Maintenable dans le temps: certains systèmes sont censés durer jusqu’à 20 ans
et plus
• Optimisé: généralement il utilise des logiciels de petite taille car plus c’est
grand, plus il y a de chance d’avoir des bugs.
• Tolérant aux fautes (continuer à fonctionner, éventuellement de manière réduite
au lieu de tomber complètement en panne, lorsque l'un de ses composants ne
fonctionne plus correctement).
2O20/2021 4
2
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
Champs d’application
• Il existe 4 grandes classes:
1. Calcul généraliste:
Similaire aux applications bureau mais embarqué (assistant personnel,
téléphone portable, etc.)
Consoles de jeux vidéo, décodeur, appareils photographiques et caméras,
…
2. Contrôle de systèmes: Moteur, voiture, avion, processus chimique, nucléaire,
navigation, …
3. Traitement du signal: Compression vidéo, radar, flux de données ,etc.
4. Réseaux et communications: Transmission de données, routage, etc.
2O20/2021 5
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
Architecture d’un système embarqué
• Un système embarqué peut être structuré autour d’un:
Capteurs couplés à des convertisseurs analogique/numérique.
Actionneurs (LED, etc) couplés à des convertisseurs
numérique/analogique.
Calculateur (processeur embarqué et ses E/S).
Mémoire ROM, pour les programmes à exécuter, et RAM, pour le
stockage temporaire des données.
• Possibilité d’avoir un/des FPGAs et/ouSystème
ASICs embarqué
pour jouer typique
le rôle de co-
processeurs (accélération matérielle) Logicielle
FPGA /
Mémoire
ASIC
détecteur
Conversion
A/N CPU Conversion
N/A
Actionneur
Interface Système
humaine Port de auxiliaire
diagnostic
Environnement
2O20/2021 extérieur 6
3
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
Métriques des systèmes embarqués
• Puissance de calcul: sélection du processeur d’après la charge de travail à 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 vite.
• Mémoire: l’estimation la plus précise possible de l’utilisation mémoire.
• Consommation d’énergie: la conception matérielle et logicielle doit prendre en
compte la consommation de l’énergie.
• Nombre d’unités produites
• Durée de vie est un paramètre important lors de la décision des composants à
inclure.
• Testabilité et débogage
2O20/2021 7
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
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)
• Deux types de systèmes embarqués:
1. Systèmes embarqués destinés à l’utilisateur (high‐end): utilisation d’un OS
(ex: Linux). Ex: routeurs, Assistant numérique personnel, etc.
2. Systèmes embarqués profondément enfouis: peu de fonctions, très petite
empreinte mémoire, généralement construit from scratch. Ex: Appareil photo
numérique, téléphones portables, etc.
• Dans les systèmes embarqués, les tâches sont des fonctionnalités limitées et elles
ne changent pas avec le temps
Dimensionner au mieux et optimiser le système en fonction de ses besoins
2O20/2021 8
4
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Système Embarqué
Différence entre l’informatique et l’embarqué
Informatique Embarqué
• Processeur standard: • Processeur dédié:
Multiples unités fonctionnelles 8-32-64 bits
(flottant, fixe, …) Vitesse faible
Fréquence élevée Basse consommation
Consommation électrique élevée • Processeur DSP très puissant
Chaleur • Quelque MO de mémoire
• MMU (Mémoire virtuelle) • Real-Time Operating System
• OS • …
• …
2O20/2021 9
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
Un OS est-il obligatoire ?
Absolument pas !
• Certains langages sont un OS à eux tout seul (Forth).
• Certains langages incluent des options de concurrence plus ou moins avancées
(Ada, Java).
Un OS est-il utile ?
Absolument oui !
• La plupart des programmes embarqués ont des contraintes comparables qui
doivent être respectées (concurrence, temps-réel, périphériques, ..).
• Le nombre de tâche/services devient de plus en plus important
Augmentation de complexité de ces systèmes
2O20/2021 10
5
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
• L’OS va permettre aux développeurs de logiciel embarqué de bien connaître le
matériel
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)
Le temps de développement va devenir raisonnable, afin de limiter le temps de
mise sur le marché (time-to-market), et ainsi d’assurer le succès du produit.
• Les ressources matérielles doivent être gérées en assurant leurs partages entre les
différents utilisateurs.
• L’OS va offrir une interface homogène et générique mieux adaptée aux utilisateurs
• L’OS va donner la possibilité de bénéficier des mêmes avancées technologiques
que les applications classiques (TCP/IP, HTTP, etc.)
2O20/2021 11
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
• L’OS garantit un environnement de développement plus performant
• L’OS offre un contrôle de processus sans (ou à faible) contrainte temporelle pour
les systèmes à temps partagé
Garantir le partage équitable du temps et des ressources
• L’OS offre un contrôle de processus avec contrainte temps réel pour les systèmes
temps réel
Garantir les temps de réponse
2O20/2021 12
6
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
Temps
• Soit T est la durée entre le moment où une tâche doit débuter et le moment ou
elle débute réellement.
• La durée T est due:
Aux propriétés temporelles des processeurs, des bus mémoire et d’autres
périphériques
Aux propriétés des politiques d’ordonnancement
Au changement de contexte
…
2O20/2021 13
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
Qu’est ce que le temps réel
• Non seulement des résultats exacts
• Mais aussi fournis dans un temps donné, compatible avec l’évolution du
système
L’échelle de temps dépend du système
de quelques millisecondes pour un système de navigation aérienne
à plusieurs minutes ou heures pour le contrôle d'un réacteur
chimique
• Dans un système temps réel, un résultat de calcul mathématiquement exact
mais arrivant au delà d'une échéance prédéfinie est un résultat faux
2O20/2021 14
7
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
• Un système temps réel est un système où le temps intervient dans la validité
du programme :
Possibilité de réagir en un temps adapté aux événements externes.
Possibilité de fonctionnement en continu sans réduire le débit du flot
d'informations traitées.
Temps de calcul connus et modélisables pour permettre l'analyse de la
réactivité.
Temps partagé/Temps réel
• Dans les systèmes en temps partagé, l'exécution simultanée de plusieurs programmes
vise à répondre rapidement aux demandes de plusieurs utilisateurs en
communication directe avec le système.
• Un système d'exploitation temps réel doit garantir que toute opération se termine
dans un délai donné, en vue de garantir la réussite du dispositif dans lequel le
2O20/2021 15
système est utilisé.
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
Conception d’un système temps réel
• La conception d'un Système Temps Réel passe par plusieurs phases :
1. Identification de la tâche à réaliser et les contraintes temporelles qui
doivent être satisfaites
2. Ecriture du code
3. Mesure du temps d'exécution de chaque tâche et test de rendez-vous
horaire pour vérifier qu'aucune tâche ne dépassera son temps limite
pendant le fonctionnement du système.
Avec les tests, il est possible de garantir qu'aucun temps limite ne
sera dépassé.
Si les tests ne sont pas concluants, il est nécessaire de reprendre la
conception depuis le début, en choisissant un processeur plus rapide
ou en utilisant d'autres algorithmes pour implémenter les tâches.
2O20/2021 16
8
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
Les tâches peuvent être identifiées par trois valeurs de temps :
Période de la tâche
Temps limite pour la tâche
Temps de calcul maximal pour la tâche.
• Un système temps réel se divise en deux parties qui interagissent entre elles:
Un procédé, en général industriel, muni de capteurs, envoie des mesures ou
déclenche des événements avec une occurrence périodique ou aléatoire.
un système informatique, connecté au procédé. Ce système informatique
commande et contrôle de manière dynamique le comportement du procédé,
en respectant les contraintes de temps qui lui sont associées.
Système est réactif
2O20/2021 17
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
• Le système informatique se décompose lui-même en deux parties :
l'application temps réel proprement dite construite par un ensemble de
tâches, qui sont activées de manière:
périodique pour réaliser les prises de mesures
apériodique pour prendre en compte les événements du procédé.
Les services d'un noyau temps réel appelé généralement exécutif temps
réel pour respecter les contraintes temps réel des tâches et utiliser les
2O20/2021 18
ressources matérielles ou périphériques.
9
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
Exemple: tâche périodique
2O20/2021 19
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
RTOS
• C’est Système d’exploitation temps-réel (RTOS - Real Time Operating
Systems), qui se caractérise par la présence de contrainte temps réel
• Un RTOS est construit autour d’un noyau multitâche qui contrôle l’allocation de
labs du temps des tâches.
• Un labs du temps est la durée d’exécution d’une tâche donnée avant qu’elle sera
arrêtée et remplacée par une autre tâche.
• Ce processus est connu par le changement du contexte, qui se répète de façon
continue.
• Un RTOS fournit aussi les messages qui passent entre les tâches,
synchronisation des tâches et allocation de ressources partagées aux tâches
2O20/2021 20
10
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
Les services de bases d’un RTOS
1. Tâche:
Processus ou thread: elle est définie par son identificateur, comporte un
contexte permettant à tout instant de connaître son état et ainsi de pouvoir
arrêter/redémarrer son exécution sur le processeur.
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 (au fur et à mesure):
Système plus flexible (qui peut s'adapter aux circonstances).
Plus de complexité (allocation dynamique, gestion d’erreurs,…)
2O20/2021 21
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
2. Ordonnancement:
Entité qui décide quelle tâche doit être exécutée par le processeur
Faire un compromis entre la complexité d’implémentation, et délai
d’exécution
RTOS supporte plusieurs politiques d’ordonnancement, le choix revient au
programmeur:
FIFO avec priorité (statique)
Date limite la plus proche (priorité dynamique)
Serveur sporadique (perte de priorité́ en fonction du temps processeur
consommé).
...
2O20/2021 22
11
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
3. Interruptions:
et Temps réel
Les interruptions permettent de prendre en compte des événements au
processeur. La prise en compte d'une interruption provoque l'arrêt du
programme en cours et l'exécution d'un programme associé à cette
interruption.
Les interruptions permettent de signaler des requêtes asynchrones
Gestion de l’aspect temps réel
2O20/2021 23
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
4. Boites aux lettres: Service permettant d'envoyer (send) et de recevoir
(receive) des messages. La tâche en attente d'une lettre est suspendue jusqu'à
l'arrivée de cette dernière.
5. Evénements : Le principe des événements est similaire à celui des boites aux
lettres, à la différence près qu'au lieu de recevoir ou d'envoyer des données, un
signal est émis ou attendu.
6. Gestion de la mémoire
Allocation: 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.
2O20/2021 24
12
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
7. Sémaphores: Les sémaphores utilisés avec les systèmes temps réel servent à
partager une ressource entre plusieurs tâches (création d'une section critique).
Les sémaphores servent également à synchroniser plusieurs tâches entre elles.
8. Timers ou chronomètre: Ces services permettent de réaliser des traitements
cycliques ou de détecter des dépassements dans les réceptions de données par
exemple.
9. Support réseau
Le standard POSIX (Portable Operating System Interface for Computing
Environments) socket :
Accès à n’importe quel mode/protocole de communication en réseau
2O20/2021 25
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqués
et Temps réel
Classification des RTOS
1. Temps réel dur: Un système d’exploitation est dit Temps Réel dur s’il est
capable de répondre à des sollicitations ou événements (internes ou externes)
dans un temps maximum connu.
Si ces événement sont traités très tardivement, ils provoquent des
conséquences catastrophiques.
2. Temps réel mou: Ces systèmes se rapprochent fortement des systèmes
d'exploitation classiques à temps partagé. Ils garantissent un temps moyen
d'exécution pour chaque tâche.
Si ces événement sont traités très tardivement, ils ne provoquent pas
des conséquences catastrophiques.
2O20/2021 26
13
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqué
et Temps réel
Quelques célèbres RTOS
• VxWorks : produit généraliste et largement répandu
• PSOS édité par ISI (appli militaire, tél. portable).
• VRTX édité par Microtec (appli militaire, tél. portable).
• LynxOs (Unix temps réel).
• Windows CE/Microsoft (systèmes embarqués peu temps réel).
• OSEK-VDX (appli. automobile).
• RTEMS de Oar (appli. militaire).
• eCos de cygnus.
• RT-Linux.
2O20/2021 27
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqué
La norme POSIX
et Temps réel
• POSIX sont les initiales de "Portable Operating System Interface" (Interface
Portable pour Systèmes d'Exploitation).
• C'est un standard qui tend à obtenir la portabilité des logiciels aux niveau du
code source.
un programme destiné à un système d'exploitation et respectant le
standard POSIX devrait se compiler et s'exécuter sous n'importe quel
système POSIX, même s'il provient d'un fabricant différent.
• POSIX est développé par l'IEEE (Institute of Electrical and Electronic
Engineering) et standardisé par ANSI (American National Standards Institute)
et ISO (International Standards Organisation).
• POSIX est basée sur UNIX. La majorité des systèmes d'exploitation tendent à
être compatibles POSIX aux travers de leurs différentes versions.
2O20/2021 28
14
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqué
et Temps réel
• Exemples: Chapitres Signification
POSIX 1003.1 Services de base (ex : f or k ,
exec, ect)
POSIX 1003.2 Commandes shell (ex : sh)
POSIX 1003.1b [GAL 95] Temps réel
POSIX 1003.1c [RIF 95] Threads
POSIX 1003.5 POSIX et Ada
etc
2O20/2021 29
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqué
et Temps réel
Les extensions POSIX Temps Réel
• Les extensions POSIX sont conçues pour améliorer application 1 application 2
le contrôle de la gestion des ressources de systèmes
d'exploitation appels systèmes
(POSIX)
• Chaque groupe se charge de concevoir un aspect du
Système
système d'exploitation. Par exemple, le groupe d'exploitation
nommé POSIX.4 (renommées 1003.1b depuis Drivers
1993) autorise l'usage d'un système d'exploitation Interruptions et Entrées/Sorties
dans des situations temps réel. M atériel (Hardware)
Figure 1 - Interface POSIX d'un système d'exploitation
2O20/2021 30
15
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Systèmes d’Exploitation Embarqué
et Temps réel
• Exemple de systèmes temps réel avec ou non la nome IEEE POSIX 1003.1
2O20/2021 31
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Démarrage sur un système embarqué
2O20/2021 32
16
2/26/2021
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Démarrage sur un système embarqué
2O20/2021 33
Introduction au Systèmes d’Exploitation
Embarqués et Temps réel
Bibliographie
• Jalil Boukhobza. Cours de Master de Système d’exploitation pour l’embarqué-
Introduction. 2015. Repéré à [Link]
[Link]/boukhobza/images/stories/Documents/Teachings2/SEE/CM/SEE_1_15
.pdf
• Cours systèmes Temps réel. 1999. Repéré à
[Link]
• François TOUCHARD. Introduction aux Systèmes Temps Réels. Année
universitaire 2015-16. Repéré à [Link]
[Link]/IRM4/[Link]
2O20/2021 34
17
2/26/2021
Cours Systèmes d’Exploitation embarqués et
Temps réel
Chapitre II : Les Tâches
2O20/2021 35
18