1 / 28

Système d’exploitation pour l’embarqué

Chapitre 04. Système d’exploitation pour l’embarqué. Système d’exploitation pour l’embarqué. Introduction des systèmes embarqués Qu’est ce qu’un système embarqué Caractéristiques principales Champs d’application Role des systèmes d’exploitation pour l’embarqué

twyla
Download Presentation

Système d’exploitation pour l’embarqué

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapitre 04 Système d’exploitation pour l’embarqué

  2. Système d’exploitation pour l’embarqué • Introduction des systèmes embarqués • Qu’est ce qu’un système embarqué • Caractéristiques principales • Champs d’application • Role des systèmesd’exploitation pour l’embarqué • Les architectures des systèmes d’exploitation • OS Monolithique • OS Multicouches • OS Micronoyau • OS Machine virtuelle • Les normes des systèmes d’exploitation

  3. Qu’est ce qu’un système embarqué? • 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 standards • Matériel et application intimement liés • Logiciel enfoui … noyé dans le matériel … pas facilement discernable comme dans un PC.

  4. Caractéristiques principales d’un système embarqué • Système principalement numérique • Met généralement en oeuvre 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)

  5. Champs d’application • Calculgénéraliste • Similaire aux applications bureau mais embarqué (assistant personnel, téléphone portable, etc.) • Consoles de jeux vidéo, set‐top box • Contrôle de systèmes • Moteur, voiture, avion, processus chimique, nucléaire, navigation, etc. • Traitement du signal • Compression vidéo, radar, flux de données, etc. • Réseaux et communications • Transmission de données, commutation, routage, téléphone, Internet, etc.

  6. Systèmeembarquétypique

  7. Logiciel/matérielembarqué • Logiciel embarqué: • Programme/application utilisé dans un équipement et complètement intégré dans ce dernier. • Systèmeembarqué: Matériel(s) + logiciel(s) (+ OS). On peuttrouver 2 types de systèmes embarqués: • 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. • Systèmes embarqués profondément enfouis: peu de fonctions, très petite empreinte mémoire: Appareil photo numérique, téléphones portables, etc.

  8. Système d’exploitation pour l’embarqué • Introduction des systèmes embarqués • Qu’est ce qu’un système embarqué • Caractéristiques principales • Champs d’application • Role des systèmesd’exploitation pour l’embarqué • Les architectures des systèmes d’exploitation • OS Monolithique • OS Multicouches • OS Micronoyau • OS Machine virtuelle • Les normes des systèmes d’exploitation

  9. Role des systèmesd’exploitation pour l’embarqué (1/2) • 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

  10. Role des systèmesd’exploitation pour l’embarqué (2/2) • Contrôle de processus sans (ou à faible) contrainte temporelle Systèmes à temps partagé • Garantir le partage équitable du temps et des ressources • Contrôle de processus avec contrainte temps réel Systèmes temps réel (Garantir les temps de réponse) • Systè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é)

  11. Qu’est ce que l’Open source? • Libre redistribution: en tant que composant d’une distribution pas de droit d’auteur. • Inclusion du code source: code source doit être accessible sans frais supplémentaires. • Intégrité du code source de l’utilisateur • Pas de discrimination entre les personnes ou les groupes • Pas de discrimination entre les domaines d’applications. • Distribution systématique de la licence • La licence ne doit pas être spécifique à un produit • La licence ne doit pas contaminer d’autres logiciels

  12. Système d’exploitation pour l’embarqué • Introduction des systèmes embarqués • Qu’est ce qu’un système embarqué • Caractéristiques principales • Champs d’application • Role des systèmesd’exploitation pour l’embarqué • Les architectures des systèmes d’exploitation • OS Monolithique • OS Multicouches • OS Micronoyau • OS Machine virtuelle • Les normes des systèmes d’exploitation

  13. OS Monolithique • Simple/ne consomme pas beaucoup de ressources • Convient 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)

  14. OS Monolithique • Structure de base: • Un programme principal qui invoque la procédure du service • Un ensemble de procédures de services qui gèrent les appels système • Un ensemble de procédure utilitaires auxiliaires des précédentes • Vielles version d’UNIX (FreeBSD, SOLARIS), DOS.

  15. OS Monolithique (exemple: UNIX)

  16. OS Monolithique : Avantages/inconvénients • Avantages • De meilleures performances • Vitedéveloppé … • Dernières versions: chargement dynamique (et donc sélectif) des module • Inconvénients • Extension difficile: Code non modulaire • Trèscomplexe • Code massif • 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 !!!!!!!!

  17. 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.

  18. Structure de l’OSMulticouches • 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: Contientles programmes utilisateur, les notions de processus, mémoire, console leurs sont abstraites. • Couche 5: Le processus opérateur (control global du système).

  19. OS Multicouches: Avantages/inconvénients • Avantages • Facile à étendre (plus structuré) • Modèle simple • Inconvénients • Traverser les différentes couches peut être couteux • La multiplication des couches peut ne pas être nécessaire. • Performances moins bonnes (monolithique)

  20. 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é. • 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. • Gestion de l’interruption: commutation de tâche  moins efficace que le modèle monolithique.

  21. 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 noyau • Garder une partie du mécanisme en mode noyau en laissant le choix des politiques aux serveurs en mode utilisateur.

  22. 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és • Exemples: Windows NT, Mach, Chorus, QNX.

  23. OS Micronoyau: Avantages/inconvénients • Avantages • Extensibilité • Minimise le code du noyau • Sécurité: Un serveur crash, il sera le seul à redémarrer • Fiabilité: Code plus petit  moins de bugs • Inconvénients • Souvent tenté de rajouter des choses dans le noyau (vu qu’il est petit…) • Mauvaises performances • Requière beaucoup de prudence lors de la conception

  24. OS Machine virtuelle • L’OS doit remplir 2 fonctions: • Multi programmation  moniteur de machine virtuelle • Mode privilégié (exécution) • Plusieursprocesseursvirtuels • Services système • Un 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

  25. OS Machine virtuelle • 2 types de MV: • MV native • MV invité • Exemple de ce type d’OS: XEN, VMWare, IBM’ VM/370.

  26. OS Machine virtuelle: Avantages/inconvénients • Avantages • Permet l’exécution de plusieurs OS sur une seule machine • Permet une bonne portabilité des applications • Une 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…) • Inconvénients • Gros problème de performances (plusieurs couches) • Manque de flexibilité

  27. Système d’exploitation pour l’embarqué • Introduction des systèmes embarqués • Qu’est ce qu’un système embarqué • Caractéristiques principales • Champs d’application • Role des systèmesd’exploitation pour l’embarqué • Les architectures des systèmes d’exploitation • OS Monolithique • OS Multicouches • OS Micronoyau • OS Machine virtuelle • Les normes des systèmes d’exploitation

  28. Les normes des systèmes d’exploitation • POSIX (Portable Operating System Interface): standard pour les appels de fonction (API) pour les OS UNIX‐like. • 4 profils pour le temps réel: • 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 • PSE52: profile de système de contrôleur temps réel: PSE51+support pour un système de fichiers + E/S asynchrones • PSE53: profile de système temps réel dédié: PSE51+support multiprocessus(+MMU) • 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

More Related