Article de référence | Réf : H8200 v2

Tour d'horizon des types d'OS employés en embarqué
OS embarqués

Auteur(s) : Frédéric Pétrot

Relu et validé le 24 août 2021

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais En anglais

RÉSUMÉ

Le but fondamental des systèmes d'exploitation (Operating Systems ou OS) est de fournir aux applications des services permettant de rendre transparent le partage des ressources et les accès au matériel. De nombreux équipements enfouissent des circuits contenant un ou plusieurs processeurs ainsi que des coprocesseurs spécialisés. Ces circuits, fortement contraints en surface et puissance de calcul, et pour lesquels les tâches à exécuter sont au moins partiellement connues d'avance, imposent l'utilisation d'un système d'exploitation, même minimaliste. Ainsi, pour traiter un flot de données ininterrompu ou exécuter des programmes, l'OS pourra être spécialisée, pour en simplifier le code et en maximiser les performances.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

ABSTRACT

Embedded operating system (OS)

The fundamental purpose of the operating systems (OS) is to provide application services enabling the transparency of resource sharing and access to material. A large number of equipment buries circuits containing one or more processors and specialized coprocessors. These circuits are highly constrained in terms of surface and computing power, and for which the tasks to be performed being at least partially known in advance, require the use of an operating system, even minimalist. Thus, to treat a continuous stream of data or run programs, the OS can be specialized, simplifying the code and maximizing the performance.

Auteur(s)

  • Frédéric Pétrot : Docteur es sciences de l'université Pierre et Marie Curie (Paris VI) - Professeur à l'Ensimag, Institut polytechnique de Grenoble

INTRODUCTION

Les systèmes embarqués et/ou intégrés rappellent par certains côtés les ordinateurs d'antan, par les ressources limitées dont ils disposent. Ceci conduit à des besoins de compacité de code et à une exploitation optimisée du matériel qui n'est plus de mise dans les systèmes informatiques actuels où l'abondance de ressources de calcul et de mémorisation est la règle. Que l'on ne s'y trompe pas cependant : comparaison n'est pas raison, et les systèmes informatiques embarqués d'aujourd'hui sont souvent bien plus performants que leurs prédécesseurs non embarqués, mais ils sont aussi extrêmement contraints, et les quelques kilo-octets, microsecondes ou milliwatts qui sont épargnés par un système d'exploitation ad hoc seront toujours utiles à l'application, pour permettre de faire fonctionner mieux, de manière plus sûre et plus longtemps un appareillage. Globalement, le but d'un système d'exploitation consiste à abstraire et partager les ressources matérielles pour simplifier l'écriture des applications. Les systèmes d'exploitation des ordinateurs modernes visent à optimiser les temps de réponses moyens pour l'utilisateur face à un clavier et une souris, quitte à requérir de nombreuses ressources à un instant donné pour garantir cet objectif. Dans le monde de l'embarqué, un tel objectif n'a souvent pas de sens, car il n'y a pas d'utilisateur à proprement parler et la notion assez subjective et mal formalisée de temps de réponse acceptable est clairement inadaptée. Les systèmes d'exploitation pour les systèmes embarqués ont en général besoin de contraintes clairement précisées pour réaliser les services qu'ils sont censés fournir. Ces critères peuvent être liés à la performance temporelle, par exemple sur la latence minimale et maximale du traitement des interruptions, en espace mémoire maximal requis, en capacité de contrôle du matériel en vue par exemple de la basse consommation, etc. Les systèmes pour lesquels la réalisation d'une action doit être faite dans un laps de temps prédéfini, potentiellement de manière répétée, sont dits temps réel. Ils ont une importance particulière dans le monde de l'embarqué, car le contrôle du déclenchement d'un air bag ou le décodage d'une vidéo n'ont d'intérêt que si l'action est réalisée dans le temps imparti.

Par ailleurs, les méthodes de construction des systèmes d'exploitation ont évolué au cours du temps et permettent aujourd'hui de n'inclure que les parties qui sont utiles à la fois à l'application, si celle-ci est connue d'avance, ce qui est le cas bien souvent, et au matériel. Elles permettent ainsi de construire un système « sur mesure » qui maximise l'efficacité de l'appareil. L'intégration posant des questions cruciales de rendement et de flexibilité, les systèmes intégrés actuellement en cours de conception tendent à inclure plusieurs (voire de nombreux) processeurs. La gestion de ces nombreux processeurs, qui peuvent être de type identiques ou différents, par exemple un processeur à usage général et un processeur de traitement de signal, a clairement un impact sur les systèmes d'exploitation destinés à être embarqués.

La plupart des applications intégrées actuelles font appel à des algorithmes qui sont très gourmands en termes de ressources mémoire et de capacité de calcul. Ainsi, les systèmes électroniques embarqués, du moins ceux qui visent les appareillages grand public, doivent non seulement être d'un coût très faible mais ils doivent de plus fournir une performance très élevée. Ce faible coût implique une faible consommation, car cela seul permet l'utilisation de boîtiers plastique à faible coût (par opposition aux boîtiers en céramique) et l'absence de radiateur et de ventilateur. La solution utilisée dans le passé pour satisfaire ces contraintes a été de développer du matériel ad hoc : il est généralement admis que le nombre de MIPS (millions d'instructions par seconde) par watt (unité de mesure de la performance vis-à-vis de la consommation) est de deux à trois ordres de grandeur plus élevé dans le matériel spécialisé que dans le logiciel. Cependant, les applications récentes sont peu pérennes à cause de l'évolution continue et en profondeur des différents standards sur lesquels elles se basent. Ainsi, les solutions purement matérielles ne sont plus acceptables car elles ne permettent pas une flexibilité suffisante pour s'adapter au besoin, et les solutions au moins partiellement programmables sont maintenant la règle. En conséquence, il est à présent reconnu que des systèmes d'exploitations dédiés sont nécessaires.

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v2-h8200


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais En anglais

4. Tour d'horizon des types d'OS employés en embarqué

Pour un utilisateur lambda, un système d'exploitation est généralement perçu comme un programme omniscient qui exécute des tâches comme le lancement d'applications, la gestion d'une souris ou d'un clavier. En réalité, cette couche logicielle n'est rien d'autre qu'un ensemble de fonctions qui a le rôle spécifique d'assurer l'interface entre le logiciel et le matériel. Ces fonctions servent à manipuler des structures de données qui vont, fondamentalement, représenter la notion de « tâche » telle que le système la conçoit et la notion de gestionnaire de ces tâches, pour en assurer la sélection et le lancement. C'est donc par des appels à des fonctions que les applications vont se partager le temps processeur, la mémoire et les périphériques. La particularité de ces fonctions repose sur le fait qu'elles ne sont en pratique appelées explicitement que très rarement. Ces appels sont faits soit à travers des fonctions de bibliothèques, soit par le gestionnaire d'interruptions.

Un exemple typique est la fonction printf de la bibliothèque standard du C. Cette fonction, après avoir formaté la chaîne de caractères selon sa spécification, va appeler la fonction write qui en réalité assure l'accès à un périphérique qui est sous le contrôle du système. write est un appel système qui fait passer le processeur en mode noyau. (Pour information, la section 2 des manuels d'Unix documente l'ensemble des appels systèmes qui sont à la disposition un programme applicatif). Cette fonction possède comme argument un descripteur de fichier, ce qui est la manière usuelle sous Unix de désigner un périphérique. En fonction du type de ce fichier, et de l'accessibilité effective du périphérique, le pilote ad hoc sera à son tour appelé pour effectuer l'action requise, ici envoyer ce qui est requis par le matériel d'affichage. On peut noter qu'une tâche peut être suspendue et remplacée par une autre à partir du moment où elle effectue un appel à une fonction du système.

De plus, il existe, dans les systèmes qui ne sont pas complètement minimalistes, une fonction très spéciale qui permet, lorsque l'on l'appelle, de substituer à la tâche courante une autre tâche. C'est ce que l'on nomme changement de contexte, car il faut sauvegarder dans un emplacement adapté l'état courant du processeur et placer dans l'état du processeur l'état qu'avait une autre tâche...

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

TEST DE VALIDATION ET CERTIFICATION CerT.I. :

Cet article vous permet de préparer une certification CerT.I.

Le test de validation des connaissances pour obtenir cette certification de Techniques de l’Ingénieur est disponible dans le module CerT.I.

Obtenez CerT.I., la certification
de Techniques de l’Ingénieur !
Acheter le module

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Tour d'horizon des types d'OS employés en embarqué
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - BERRY (G.) -   L'informatique embarquée,  -  discours prononcé lors de la séance solennelle de réception des nouveaux membres à l'académie des sciences, (2003).

  • (2) - PÉTROT (F.) et WAJSBÜRT (F.) -   Circuits Intégrés,  -  Encyclopædia Universalis, (1998).

  • (3) - PATTERSON (D. A.) et HENNESSY John (L.) -   Computer Organization and Design : The Hardware/Software Interface,  -  quatrième édition, Morgan Kauffman, (2008).

  • (4) - ROMAN (D.) -   By the Numbers : 44 % of current projects use two or more processors,  -  Electronic Engineering Times (EETimes), p.–29, (2006).

  • (5) - ITRS -   System Drivers,  -  International Technology Roadmap for Semiconductor, edition (2007).

  • (6) - YAGHMOUR Karim MASTERS Jon, BEN-YOSSEF (G.), GERUM (P.) -   Building...

1 Outils logiciels

Google. Android http://developer.android.com/index.html

DSpace, Inc. dSpace. http://www.dspaceinc.com.

The Mathworks. Real-Time Workshop. http://www.mathworks.com/products/rtw/

eCos Centric Limited. The eCos Operating System. http://ecos.sourceware.org/

QNX Software System. The QNX Operating System. http://www.qnx.com

WindRiver. The VxWorks Operating System. http://www.windriver.com

Microsoft. The Windows CE Operating System. http://www.microsoft.com/windowsembedded

Xenomai. The Xenomai Hard-RT Kernel Extension. http://www.xenomai.org.

uClinux. The Embedded Linux Microcontroller Project. http://www.uclinux.org/

STMicroelectronics. Linux distribution for ST embedded processors. http://www.stlinux.com

Symbian. Operating system for smart phones. http://www.symbian.org/

HAUT DE PAGE

...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Sommaire

QUIZ ET TEST DE VALIDATION PRÉSENTS DANS CET ARTICLE

1/ Quiz d'entraînement

Entraînez vous autant que vous le voulez avec les quiz d'entraînement.

2/ Test de validation

Lorsque vous êtes prêt, vous passez le test de validation. Vous avez deux passages possibles dans un laps de temps de 30 jours.

Entre les deux essais, vous pouvez consulter l’article et réutiliser les quiz d'entraînement pour progresser. L’attestation vous est délivrée pour un score minimum de 70 %.


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS