54
Cours 1 Master 2 SE Jalil Boukhobza Université de Bretagne Occidentale – LabSTICC J.Boukhobza - Systèmes d'exploitation embarqués 1

Cours 1 Master 2 SE Université Bretagne Occidentale …stiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Qu’est ce qu’un système embarqué y Ébauche d’une

Embed Size (px)

Citation preview

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