Un système d'exploitation -...

19
Microware 0S-9 1 Un système d'exploitation Un système d'exploitation, (en anglais operating system, abrégé OS), est l'ensemble de programmes central d'un appareil informatique qui effectue les opérations de manipulation du matériel. Il sert à coordonner, optimiser et uniformiser l'utilisation du matériel informatique par les logiciels applicatifs. Intermédiaire entre les logiciels applicatifs et le matériel, le système d'exploitation effectue de nombreuses opérations au service des logiciels applicatifs et offre ainsi une manière unifiée d'exploiter les périphériques de l'ordinateur par l'intermédiaire d'interfaces de programmation banalisées. Un système d'exploitation sert à coordonner l'utilisation du ou des processeur(s), et accorder un certain temps pour l'exécution de chaque processus ; à réserver de l'espace dans les mémoires pour les besoins des programmes et à organiser le contenu des disque durs ou d'autres mémoires de masse en fichiers et répertoires. Les systèmes d'exploitation sont présents dans tous les types d'appareil informatique : ordinateur, assistant personnel, ainsi que console de jeu, téléphone portable ou GPS. Un système d'exploitation est conçu pour fonctionner avec une gamme particulière de machines (type de processeur, constructeur, architecture). Si un système d'exploitation est disponible pour plusieurs gammes machines différentes, alors le même code source est compilé et adapté à chaque gamme de machines. La liste exacte des machines sur lesquelles il peut être utilisé dépend aussi de la palette des pilotes inclus dans le système d'exploitation. Selon sa construction, un système d'exploitation peut être multi-tâches ou alors mono-tâche, multi-utilisateurs ou alors mono-utilisateur, il peut aussi être multiprocesseurs et/ou en temps réel. Un OS est dit multi-tâches quand il permet l'exécution simultanée de plusieurs programmes. Les premiers systèmes d'exploitation multi-tâches sont apparus dans les années 1960, et tous les systèmes d'exploitation contemporains sont multi-tâches. Il est dit multi-utilisateurs quand il est conçu pour être utilisé simultanément par plusieurs usagers, souvent à travers un réseau informatique. De tels systèmes d'exploitation sont typiquement utilisés pour des serveurs ainsi que des mainframes ou des superordinateurs. Ils sont multi-tâches et en général sécurisés, c'est-à-dire qu'il vont refuser d'exécuter toute opération pour laquelle l'usager n'a pas préalablement reçu une permission. Il est dit multi-processeurs quand il est conçu pour exploiter un ordinateur équipé de plusieurs processeurs. Dans de tels systèmes d'exploitation, plusieurs programmes sont exécutés simultanément par les différents processeurs.

Transcript of Un système d'exploitation -...

Page 1: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

1

Un système d'exploitation

Un système d'exploitation, (en anglais operating system, abrégé OS), est l'ensemble de

programmes central d'un appareil informatique qui effectue les opérations de manipulation du

matériel. Il sert à coordonner, optimiser et uniformiser l'utilisation du matériel informatique

par les logiciels applicatifs.

Intermédiaire entre les logiciels applicatifs et le matériel, le système d'exploitation effectue de

nombreuses opérations au service des logiciels applicatifs et offre ainsi une manière unifiée

d'exploiter les périphériques de l'ordinateur par l'intermédiaire d'interfaces de programmation

banalisées.

Un système d'exploitation sert à coordonner l'utilisation du ou des processeur(s), et accorder

un certain temps pour l'exécution de chaque processus ; à réserver de l'espace dans les

mémoires pour les besoins des programmes et à organiser le contenu des disque durs ou

d'autres mémoires de masse en fichiers et répertoires.

Les systèmes d'exploitation sont présents dans tous les types d'appareil informatique :

ordinateur, assistant personnel, ainsi que console de jeu, téléphone portable ou GPS.

Un système d'exploitation est conçu pour fonctionner avec une gamme particulière de

machines (type de processeur, constructeur, architecture). Si un système d'exploitation est

disponible pour plusieurs gammes machines différentes, alors le même code source est

compilé et adapté à chaque gamme de machines. La liste exacte des machines sur lesquelles il

peut être utilisé dépend aussi de la palette des pilotes inclus dans le système d'exploitation.

Selon sa construction, un système d'exploitation peut être multi-tâches ou alors mono-tâche,

multi-utilisateurs ou alors mono-utilisateur, il peut aussi être multiprocesseurs et/ou en temps

réel.

Un OS est dit multi-tâches quand il permet l'exécution simultanée de plusieurs

programmes. Les premiers systèmes d'exploitation multi-tâches sont apparus dans les

années 1960, et tous les systèmes d'exploitation contemporains sont multi-tâches.

Il est dit multi-utilisateurs quand il est conçu pour être utilisé simultanément par

plusieurs usagers, souvent à travers un réseau informatique. De tels systèmes

d'exploitation sont typiquement utilisés pour des serveurs ainsi que des mainframes ou

des superordinateurs. Ils sont multi-tâches et en général sécurisés, c'est-à-dire qu'il

vont refuser d'exécuter toute opération pour laquelle l'usager n'a pas préalablement

reçu une permission.

Il est dit multi-processeurs quand il est conçu pour exploiter un ordinateur équipé de

plusieurs processeurs. Dans de tels systèmes d'exploitation, plusieurs programmes sont

exécutés simultanément par les différents processeurs.

Page 2: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

2

Il est dit temps réel quand il garantit que les opérations seront effectuées en respectant

des délais très stricts, et ce quelles que soient les conditions d'utilisation. De tels

systèmes d'exploitation sont utilisés dans l'industrie, l'aéronautique ou l'électronique

grand public pour créer des systèmes temps réel.

Les systèmes embarqués sont des systèmes d'exploitation prévus pour fonctionner sur

des machines de petite taille, possédant une autonomie réduite. Ainsi, une

caractéristique essentielle des systèmes embarqués est leur gestion avancée de

l'énergie et leur capacité à fonctionner avec des ressources limitées.

Un système d'exploitation temps réel

Un système d'exploitation temps réel (RTOS) est un système d'exploitation multitâche destiné

aux applications temps réel. Ces applications comprennent les systèmes embarqués

Un RTOS facilite la création d'un système temps réel, mais ne garantit pas que le résultat final

respecte les contraintes temps réel, ce qui exige le développement correct du logiciel. Un

RTOS n'a pas nécessairement pour but d'être performant et rapide, mais un RTOS fournit des

services et des primitives qui, si elles sont utilisées correctement, peuvent garantir les délais

souhaités. Un RTOS utilise des ordonnanceurs spécialisées afin de fournir aux développeurs

des systèmes temps réel les outils et les primitives nécessaires pour produire un comportement

temps réel souhaité dans le système final.

Temps réel strict/souple

On distingue deux types de temps réel suivant l'importance accordée aux contraintes

temporelles:

le temps réel strict ou dur (hard real-time) : ne tolère aucun dépassement de ces

contraintes, ce qui est souvent le cas lorsque de tels dépassements peuvent conduire à

des situations critiques, voire catastrophiques. Donc un système temps réel strict doit

respecter des limites temporelles données même dans la pire des situations d'exécution

possibles (pilote automatique d'avion, système de surveillance de centrale nucléaire,

matériel médical, etc).

et le temps réel souple ou mou (soft real-time) : s'accommode de dépassements des

contraintes temporelles dans certaines limites au-delà desquelles le système devient

inutilisable. Donc un système temps réel souple doit respecter ses limites pour une

moyenne de ses exécutions. On tolère un dépassement exceptionnel, qui sera peut-être

rattrapé à l'exécution suivante (visioconférence, jeux en réseau, etc).

Page 3: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

3

Introduction aux systèmes embarqués

Les systèmes embarqués recouvrent une multitude d'applications, allant de microcontrôleurs

simples aux plus sophistiqués des systèmes d'imagerie médicale et des applications

industrielles complexes (sondes spatiales, robot, PDA, ordinateur de bord de véhicule, etc.).

Au cœur de toutes ces différentes applications, un système d'exploitation (OS) est le socle

logiciel qui fournit un ensemble de services aidant les développeurs de logiciels pour livrer

leurs produits sur le marché plus rapidement et avec des performances optimales.

Macroware OS-9

OS-9 est un système d'exploitation multitâches, multi-utilisateurs similaire à Unix (Unix-like).

Pourtant à la différence de ce dernier, OS-9 est un système temps réel, compact et modulaire.

OS-9 est de part sa modularité et sa compacité un système d'exploitation embarqué. C'est à

dire qu'il est possible d'intégrer ce système d'exploitation dans un ensemble autonome sans

mémoire de masse.

Le système d'exploitation Microware OS-9 (de RadiSys) : la haute performance et haute

disponibilité en temps réel; est déployé et éprouvé dans des milliers de produits dans le monde

et représente des centaines d'applications embarquées dans les domaines d’automatisation et

contrôle industriels, d’automobile et de l'instrumentation médicale.

NB : Ne pas confondre avec Mac OS 9.

Origine de OS-9

Microware OS-9 est né en 1980 et a été conçu à l'origine pour le processeur Motorola 6809.

OS-9 s'exécute maintenant sur une multitude de plates-formes allant du processeur Motorola

68k au processeur PowerPC en passant par la gamme des processeurs Intel.

Processeur Motorola 6809

Page 4: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

4

Microware Systems Corporation est la société ayant produit le système d'exploitation OS-9.

Microware Systems Corporation a existé de 1977 jusqu'en septembre 2001, moment où la

société fut rachetée par RadiSys Corporation et devint une division de cette compagnie.

Caractéristiques principales d'OS-9

Temps réel strict (Hard Real-Time)

Contrairement à Windows et quelques Linux basiques (se règle à la compilation), Microware OS-9 a

été conçu dès le départ pour répondre aux exigences de hautes performances et à la fiabilité du temps-

critique des applications embarquées, en respectant des limites temporelles données même dans les

pires situations d'exécution possibles.

Économe en ressources

OS-9 offre un excellent rendement même dans les environnements les plus restreintes. OS-9 et les

applications utilisateurs peuvent s’exécuter complètement en dehors de la mémoire (ROM / Flash),

laissant la RAM dédiée aux systèmes d'exploitation (ou aux autres programmes).

Les modules sont réentrants. Il faut comprendre par là, que les modules peuvent être partagés

par plusieurs processus. Ce qui permet une grande compacité car le code exécutable du

module n'est présent qu'une seule fois en mémoire, en plus de cela les processus partageant le

code requièrent seulement des exemplaires d’espace de données (la pile, les descripteurs de processus,

et d'autres structures du système).

Architecture modulaire scalable

L'architecture modulaire (c'est à dire qu'il est architecturé en modules mémoire) de OS-9, lui

permet la configuration dynamique des changements et lui offre des améliorations afin de répondre

aux nouvelles exigences du système (sans redémarrage).

Les applications de OS-9 sont écrites comme des modules autonomes, et ne sont pas liés dans une

seule base de code monolithique avec le noyau.

Virtuellement, n'importe quel module de l’OS-9 peut être ajouté, supprimé ou mis à jour soit au

démarrage du système ou lorsque le système est en marche. Cela signifie que de nouvelles

fonctionnalités peuvent être ajoutées facilement, en temps réel, et même après le déploiement sur le

terrain.

Fiabilité et sécurité

L’esprit de la conception de OS-9 a été : la fiabilité, la sécurité et la sûreté. Contrairement aux

Page 5: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

5

architectures monolithiques, l'architecture modulaire avancée de OS-9 offre un niveau de sécurité

optimal, ce qui est privilégié pour les environnements en réseau d'aujourd'hui.

Multi-coeurs et virtualisation

Couplé à “Microware Hypervisor virtualization technology“, l'OS-9 offre une flexibilité architecturale

jamais égalée. En effet, la plate-forme de virtualisation supporte un nombre illimité de processeurs /

hyper-threads, ce qui en fait de lui (OS-9) le choix approprié pour les architectures multi-processeurs.

Pour les clients qui cherchent à :

*réduire les coûts de propriété, de la réutilisation des applications et des outils de développement,

*consolider leurs OSs à temps réel, et leurs applications sur la même plateforme virtuelle,

*optimiser les performances et améliorer la fiabilité du système,

OS-9 est la meilleure solution.

Des services étendus et des intergiciels

L’architecture étendue de OS-9 pour les I/O, prend en charge un large éventail de dispositifs et leur

mise sous réseau (avec des gestionnaires de fichiers et pilotes de périphériques), procurant un lot de

services laissant aux clients plus de temps pour innover et à différencier leurs produits.

Compatibilité avec Unix

OS-9 est un système compatible avec Unix, au niveau du code. C'est à dire qu'un programme

écrit en langage C, pourra être compilé sur l'un ou l'autre de ces systèmes. Il est par contre

indispensable dans ce cas, d'accéder aux ressources par l'intermédiaire du système

d'exploitation et de se limiter à l'emploi des bibliothèques de fonctions standardisées.

Ce qui fait sa force

En plus de ces caractéristiques (citées ci-dessus) :

L’ordonnanceur est très sensible aux interruptions et aux événements extérieurs et assure la

réaction du système en temps réel.

La tolérance aux pannes avec la gestion des exceptions.

L’architecture basique d’un processus peut être vue comme un ensemble illimité de threads

fils.

Les IPCS communications inter-processus: signaux, événements, sémaphores, pipes et les

modules de données (boite aux lettres, file de messages…).

Préemptif, basé sur les priorités dynamiques

Les tâches sont réparties en classes, chaque classe regroupe les processus de même priorité.

La priorité d’une tâche peut être changée dynamiquement.

POSIX threads permet la portabilité de l’environnement OS-9.

Allocation dynamique de ressources aux processus privilégiés

Bibliothèques partagées, système de fichiers hiérarchique

Peut travailler sans mémoire de masse, le module système restant alors dans la RAM

Pas d'accès direct au matériel

Page 6: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

6

Le noyau du système ainsi que tous les modules d'entrée-sortie sont écrits en langage

assembleur, gage de rapidité.

De plus l'intégrité des modules est vérifié, à l'aide de CRC conférant à OS-9 une

grande sécurité.

Enfin, du fait de sa modularité, OS-9 est un système évolutif, pouvant s'adapter à une

multitude de processeur et d'architecture.

L’ordonnancement des tâches :

Le multitâche permet à plusieurs programmes indépendants, appelés processus ou tâches de

s'exécuter "simultanément".

Cela est rendu possible par le partage de la ressource processeur dans le temps. OS-9 organise

cette répartition en utilisant une file d'attente des tâches actives, organisée suivant un niveau

de priorité.

Priorités dynamiques

En passant du temps dans la file d'attente active, l’“Age“ (vieillissement) augmente

artificiellement la priorité effective des threads. Les niveaux de priorité peuvent être divisés

en classes prenant en compte l’ “âge“ des processus et leurs priorités utilisant

l’ordonnancement strict des priorités.

La priorité d'un processus à un instant donné répond à l'équation suivante :

Priorité = Priorité Initiale + Age

La préemption

Le processeur est interrompu régulièrement par une horloge temps réel et détermine s'il faut

commuter les tâches ou non.

Si le processus en cours a une priorité inférieure au processus qui arrive en début de la file

d'attente, il y a commutation de tâches. Le processus interrompu est réintégrer dans la file

d'attente avec sa priorité initiale.

Si le processus en cours a une priorité supérieure ou égale au processus qui arrive en début de

la file d'attente, la priorité des tâches de la file est incrémentée, et le processus continue son

exécution.

Ce principe de file de tâches pose pourtant quelques problèmes :

Tout d'abord, ce mécanisme est antagoniste au temps réel, en effet, le temps de réponse à un

événement dépend de la place du processus qui l'a déclenché qu'occupe dans la file d'attente.

Page 7: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

7

Ce qui amène à se poser la question suivante : Comment gérer les événements asynchrones,

comme les interruptions ?

Le temps réel

Pour gérer les événements asynchrones prioritaires, les exceptions, OS-9 utilisent le

mécanisme de préemption.

Chaque processus peut accéder à n'importe quelle ressource du système par l'émission de la

requête “demande de service“ appropriée à l'OS-9.

C'est à dire que : à chaque point de scheduling (d’ordonnancement), le système définit un

seuil de priorité au-dessus duquel la tâche devient préemptive. En désignant par Pe la priorité

de l'événement, S le seuil de préemption et Pt la priorité du processus en cours.

On a l'algorithme suivant :

Principe de l’ordonnancement (avec préemption)

L'ordonnancement Round Robin permet de répartir le temps processeur entre les processus

préemptifs. Chacun de ces processus se voit allouer le même quantum temps à tour de rôle.

Exemple : Pour fixer les idées, le temps de commutation est de 55 µs auquel on ajoute 1,5 µs

par processus présent dans la file d'attente, le temps de préemption est de 11 µs, pour un

système à base de processeur 68020 cadencé à 20MHz.

Les états d’un processus

Durant la durée d’exécution d’un processus (à partir du moment où il demande la ressource

processeur jusqu’à sa fin d’exécution effective), il peut se retrouver dans l’un de ces

états (dans des files d’attente) suivants:

Page 8: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

8

Les états d’un processus

Communication entre tâches

Le multitâche permet donc de répartir le temps processeur entre plusieurs processus. Mais ce

multitâche ne sert à rien si il n'est pas possible de faire communiquer ces différents processus

entre eux. Pour ce faire OS-9 utilise suivant les besoins du programmeur :

Les modules de données.

Les signaux.

Les pipes.

Les disques magnétiques ou virtuels.

Les modules de données sont des blocs de mémoire partageables entre plusieurs processus. Ils

permettent un accès très rapide aux données, il doit être géré par le programmeur à l'aide de

variables événements. Les modules de données permettent l’exécution et la communication en

temps réel.

Les signaux permettent une transmission rapide d'une faible quantité d'information (un mot

maximum). Leur gestion est assurée par OS-9.

Les pipes sont des zones de mémoires gérées par OS-9 sous formes de structures FIFO (First

In First Out) où l'on stocke les informations à transmettre.

Les disques, quant à eux permettent de transmettre une grande quantité d'information. Les

disques virtuels sont des zones de mémoire vive gérées de la même façon qu'un disque

magnétique. Ce qui permet de transmettre une grande quantité d'information en améliorant la

vitesse. Les disques magnétiques permettent de plus de pérenniser les informations.

Page 9: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

9

Architecture des modules mémoires

OS-9 tourne plus vite par rapport aux systèmes d'exploitation micro-noyau, et offre un niveau

accru de sécurité, par rapport à des architectures monolithiques.

OS-9 utilise une structure modulaire avancée de logiciels qui crée un équilibre optimal entre

la vitesse et la protection des systèmes embarqués et des applications.

Tous les modules et composants qui constituent l’OS-9 (y compris le noyau, les gestionnaires

de fichiers, les pilotes et applications), sont stockés sous forme de modules mémoires

logiques, chacun est un programme autonome composé de la tête du module, le corps du

module, et un contrôle de redondance cyclique (CRC) de valeurs. Ces composants logiciels

logiques sont faciles à créer et à gérer, tout en assurant une haute disponibilité de la plate-

forme de OS-9.

Les modules mémoire de OS-9

Les modules sont réentrants. Il faut comprendre par là, que les modules peuvent être partagés

par plusieurs processus. Ce qui permet une grande compacité car le code exécutable du

module n'est présent qu'une seule fois en mémoire.

Page 10: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

10

Gestion de l’accès aux ressources

Le noyau temps réel de l’OS-9 permet l’exécution simultanée de plusieurs applications

indépendantes afin de s’échanger les tâches et ressources, à travers les moyens de

communication inter-processus (IPCs).

Les processus partagent la mémoire, bus E / S et d'autres ressources, et pour éviter des

incohérences et des problèmes qui peuvent être survenir du fait de cette utilisation partagée ;

Microware OS-9 prend en charge trois stratégies d’accès aux ressources:

1. Utilisateur/Etat du système: des restrictions imposées, laissent le système d'exploitation

demander dans les limites du processeur.

2. Les limites du processus: chaque processus accède aux ressources avec l’autorisation du

système d'exploitation.

OS-9 empêche les processus «sans autorisation appropriée» d’accéder aux ressources des

autres processus.

Si le système dispose d’une unité de gestion mémoire (MMU), il la laisse faire appliquer les

règles d'accès mémoire. S'il n'ya pas de MMU, OS-9 apporte applique lui-même ses règles de

protection de la mémoire.

3. / User groupe de protection: chaque processus, chaque module, et (pour la plupart des

fichiers systèmes) chaque fichier a un propriétaire associé. OS-9 utilise la notion de propriété

et des autorisations pour gérer les accès aux ressources.

Les niveaux des stratégies appliquées

pour la gestion des accès aux ressources

Page 11: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

11

Architecture logicielle d'OS-9

L'architecture d'OS-9 est organisée en plusieurs niveaux. Comme le montre la figure suivante,

elle peut se décomposer en 4 niveaux, constitué chacun d'un ou de plusieurs modules

mémoire.

Architecture logicielle du système OS-9

Au niveau 1, on trouve le noyau exécutif (kernel), chargé d'exécuter les fonctions propres au

système, comme la commutation de tâches ou l'allocation mémoire.

On y trouve aussi, le module clock spécifique au circuit horloge temps réel utilisé, chargé de

découper le temps en tranches (ticks) afin de cadencer la commutation de tâches.

Enfin, on trouve le module de donnée Init qui est une table de paramètres sollicitée par le

noyau durant le démarrage.

A ces trois modules indispensables, peuvent s'ajouter des modules de fonctions nécessaires à

une application spécifique. Ces modules de fonctions, ou librairies, sont très optimisés

puisqu'ils font partie du système, et permettent de répondre à une multitudes de besoins. Par

exemple, on pourra intégrer à ce niveau une librairie chargée de piloter un coprocesseur

mathématique effectuant les calculs sur les nombres en virgule flottante.

Au niveau 2, on trouve les gestionnaires de fichiers (files manager), chargés de traiter un type

particulier de transfert. On trouve par exemple un gestionnaire de fichiers orienté vers le

transfert de caractères (eg. Sequential Character File manager) et un autre orienté vers le

transfert de blocs de caractères (eg. Random Block File manager).

Au niveau 3, on trouve les gestionnaires de circuits (device manager), spécifiques à un type

de circuits intégrés donné (eg. Acia 6850). Comme tout les autres modules exécutables, ces

Page 12: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

12

gestionnaires sont réentrants, ainsi, pour un type de circuit donné, un seul de ces gestionnaires

est présent en mémoire, quelque soit le nombre de circuits physiquement présents.

Niveau 4, Les descripteurs des périphériques, petites tables de paramètres associés à chaque

port du système. Il y a autant de descripteurs qu'il y a de circuits présents physiquement.

Cette architecture peut paraître lourde et complexe, mais elle permet au programmeur et plus

généralement à l'utilisateur de s'affranchir de la configuration matérielle du système.

Quelques outils associés à Microware OS-9

OS-9 intègre des modules et des fonctionnalités pour le développement embarqué et pour les

environnements temps réel.

Microware OS-9 Board Level solution (BLS) : est une collection logicielle complète pour

créer, compiler (Ultra compilateur C/C++), déboguer (débogueur au niveau source C/C++) et

déployer des applications embarquées ; et comprend une vaste bibliothèque de solutions pour

l’optimisation de l’OS sur toutes les architectures.

Software Framework : le logiciel fournit une haute optimisation pour le compilateur C/C++,

un environnement de développement entièrement personnalisable, CodeWright éditeur de

fenêtres, des outils de débogage graphique, gestionnaire de projets, et les bibliothèques

d’intergiciels et de solutions.

Multimedia Application User Interface : l'OS-9 MAUI, est une suite multimédia (avec

MFM gestionnaire de fichiers), facilitant l'intégration de contrôle multimédia de vidéo, audio,

clavier et souris dans n'importe quelle application.

Microware Hawk : fournit un environnement de développement entièrement

personnalisable, et garantit une haute optimisation du compilateur C/C++, des outils de

débogage graphique, et des bibliothèques de intergiciels et de solutions.

HawkEye : analyseur logiciel (GUI) de visualiser le fonctionnement d’un OS-9 et des

modules d'application.

XiBaseGUI : outil graphique permettant la création de dispositifs d'affichage, d’interfaces

utilisateur et d’écrans tactiles.

IPsec : logiciel d'authentification et de cryptage pour la sécurisation des communications IP.

EtherCAT : temps réel, Ethernet haute performance à base des bus du système.

CANbus : contrôle-réseau pour les systèmes industriels et automobiles.

Page 13: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

13

Modbus : bus de communication série pour le contrôle industriel et d'automatisation.

Reliance File System : fichier de données pour la protection des missions des systèmes

embarqués critiques.

Microware hypervisor : l’hyperviseur temps réel permet plusieurs instances simultanées de

temps réel, sur des plateformes multi-core.

TECH-CHECK Diagnostic Platform :

*Outil unique pour un support client en ligne en temps réel

*Capture/envoie des cibles et fait des rapports d'informations au système hôte.

Gestion d’exception personnalisable : contient, et nettoie le système après délinquance

(disfonctionnement) logiciels.

Assistant de configuration : le menu système automatise le démarrage du système

d'exploitation pour construire des plates-formes de référence prises en charge:

*GUI “Graphical User Interface“ de configuration est construit en fonction des images du

système ;

*Pointer-cliquer pour contrôler la mise en réseau, configuration du TCP / IP, les graphiques et

le débogage ;

*Création automatique d'images logicielles pour le système cible.

Le tableau suivant donne la taille mémoire occupée par les modules d'OS-9. Dans la pratique,

on peut arriver à embarquer OS-9 dans 32 Ko de mémoire

Types de modules Taille

Noyau 13,0 Ko

Gestionnaire de fichiers caractères 1,5 Ko

Gestionnaire de circuits Acia 1,3 Ko

Descripteur de périph. 0,1 Ko

Taille minimale du système. 15,9 Ko

Gestionnaire de fichiers disques 5,4 Ko

Gestionnaire de circuits disquettes 1,1 Ko

Gestionnaire de circuits disques durs 1,2 Ko

Gestionnaire de circuits pipes 1,8 Ko

Shell interpréteur 15,0 Ko

Tailles des modules d'OS-9

Page 14: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

14

Les services et extensions de OS-9

Au cœur du noyau de Microware OS-9, on y trouve une impressionnante collection de

services, d’extensions et d’APIs standard, qui supportent pratiquement toutes les catégories de

périphériques pour les systèmes embarqués.

Voici la liste des extensions prises en charge :

* I/O Série/Parallèle

* USB 1.1/2.0

* Flash microSD

* Disque dure I/O (SATA, SCSI, IDE)

* PCMCIA I/O, PCI I/O, PCI Express, PCIX, Compact PCI

* TCP/UDP/IPv4/v6

* SLIP et PPP client support

* NFS Server et Client

* Exemples de pilotes et de structures

* Quelques images de démarrage finies portées pour le(s) plateforme de référence (s)

Connectivité du système avec ses outils et extensions

Page 15: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

15

Normalisation

Les versions actuelles du système d’exploitation Microware OS-9 sont compatibles avec la

norme POSIX. IEEE 1003.

Le système d’exploitation de la fameuse Microware (OS-9) est compatible Unix, du fait qu’il

est un système Unix-like.

OS-9 est-il libre, open-source, payant?

Microware OS-9 est un logiciel propriétaire (non libre ou privateur) de Microware Systems

Corporation (de 1980 à septembre 2001) puis de RadiSys Corporation depuis.

(Et de même pour la documentation technique officielle de OS-9).

Les versions de l’os-9

Le tableau suivant représente les dernières versions de OS-9 pour chaque architecture.

Product Version Paru en

OS-9 for 68K 1.3 Février 2006

OS-9 for MIPS32 3.1 Novembre 2001

OS-9 for MIPS64 4.4 Septembre 2004

OS-9 for MIPS3000 4.4.1 Octobre2004

OS-9 for PowerPC 4.8 Juin 2007

OS-9 for SH-3 4.7.2 Mai 2007

OS-9 for SH-4 4.7.1 Août 2006

OS-9 for SH-4A 4.7.1 Août 2006

OS-9 for StrongARM 4.8 Juin 2007

OS-9 for x86 4.9 Février 2008

OS-9 for XScale 4.3.1 Avril 2004

Page 16: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

16

Plates-formes matérielles et Familles de processeurs

Le système d'exploitation Microware OS-9 offre l’option “out-of-the-box“1 pour supporter une vaste

gamme de leader d’architectures et de processeurs:

Intel x86/Pentium CompactMAX CPU7.2 MEN F17 RadiSys Procelerant CE915GMA RadiSys Procelerant CE945GM2A RadiSys Procelerant CE3100 RadiSys Procelerant CEGM45 RadiSys Procelerant Z500 RadiSys Endura TP945GM Majority of single/multi-core x86 CPU-based embedded boards PowerPC AMCC 403GAEVB / 405GPEVB AMCC440EPx AMCC440GX MicroSys MPX8548 MicroSys CPU87 MicroSys MPX5200 MicroSys MPX8349 MicroSys PM520 MicroSys PM827 Emerson MVME2100 Emerson MVME2300 Emerson MVME2400 Emerson MVME2600 Emerson MVME2700 Emerson MVME3600 Emerson MVME3100 series Emerson MVME5100 series Emerson MVME5500 series Emerson MVME6100 series Freescale MPC5554 Freescale MPC5553EVB Freescale MPC555 / 565 Freescale MBX8xxx Freescale 8xxFADS Freescale RPXL850SR Kontron VMP1 Kontron VMP2 Kontron VMP3 Kontron E2Brain EB8245 N.A.T. NAMC8560 TQM85XX TQM5200 TEWS TVME8240 MVME4100

ARM/StrongARM ADS Graphics Client ADS Grahpics Master ADS Graphics Master (64MB) ADS Thin Client ARM PID7T Cirrus Logic CDB89712 Cirrus Logic EP7212 Intel Assabet / Neponset Intel SideARM / Sidekick SuperH Hitachi SH7709 Hitachi SH7709ASE Hitachi SH7750SE Hitachi SH7780SE MIPS IDT 79EB355 IDT 79S334 MIPS Atlas Toshiba JMR TX3927 Toshiba TX4927 Toshiba TX4937 XScale IXP425 RadiSys EXS-6424 PXA255 PXA270 Keith&Koep Trizeps4 Motorola MVME162 MVME167 MVME172 MVME177 Freescale ColdFire MCF5475 EVB MCF5485 EVB

1 En français: “hors-de-la-boîte“ l'expression est souvent employée dans le domaine des logiciels, et se sont

ceux qui ne nécessitent aucune installation supplémentaire, ni de plug-ins, ni d'extensions ni d’autres produits. Tout ce qui est rapidement utilisable, sans aucune interruption de longues démarches d'initialisation.

Page 17: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

17

Domaines d’utilisation

Aujourd’hui, les systèmes embarqués recouvrent une multitude d'applications, allant de

microcontrôleurs simples aux plus sophistiqués des systèmes d'imagerie médicale à des

applications complexes industrielles. Et c’est le cas de OS-9.

Grâce à sa haute performance, haute disponibilité en temps réel, et du fait de sa modularité,

Le système d'exploitation Microware OS-9 est un système évolutif, pouvant s'adapter à une

multitude de processeur et d'architecture matérielles 16, 32 et 64 bits (allant du processeur

Motorola 68k au processeur PowerPC en passant par la gamme des processeurs Intel).

OS-9 est déployé et éprouvé dans des milliers de produits dans le monde et représente des

centaines d'applications embarquées (automatisation industrielle, contrôle automobile et

instrumentation médicale):

* La première utilisation de Microware OS-9 était en 1980, dans le processeur Motorola 6809

auquel il est conçu.

*OS-9 est le système qui a été retenu par Sony et Philips pour gérer leur lecteur CD-I.

Le processeur Motorola 6809 Le lecteur CD-I (Philips)

*Système de la télévision DAVID (Digital Audio Video Interactive Decoder) aux Etats-Unis

et en Europe.

* Systèmes embarqués implantés dans les tableaux de bord automobiles, thermostats

programmables, contrôleurs électroménagers, téléphones cellulaires mobiles, PDAs

(Personnal Digital Assistants), pagers, set-top-boxes, communicateurs Internet (filaire et sans

fil), robots industriels, vaisseaux spatiaux, contrôleur des commandes des systèmes

industriels, et matériel de recherche scientifique, etc.

Avenir de OS-9

L’avenir de OS-9 le destine a être intégré au cœur des processeurs Motorola grâce à une

coopération technique et financière entre cette société et Microware. Mais ce n'est pas le seul

domaine d'expansion, Microware est partenaire de General Instruments pour le

développement de la télévision interactive aux États Unis, dans les domaines de la

décompression vidéo MPEG-2 et les interfaces graphiques, et autres.

Page 18: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

18

Conclusion

C’est quoi Microware OS-9?

OS-9 est un système d'exploitation :

Multi-tâches.

Multi-utilisateurs

Noyau à temps réel.

Compact et modulaire, embarqué.

Sûr et évolutif.

Pourquoi Microware OS-9?

Déterministe - Efficace - Adaptable - Démarrage rapide

Microware OS-9 est compact, il est une collection de fonctionnalités systèmes composée du

noyau OS, des services du noyau, de l'Industrie des API standards, des intergiciels, et d'un

IDE “Integrated Development Environment“ complet, permettant aux développeurs de

concevoir leurs applications et appareils en toutes précisions et performances, dans des délais

raisonnables.

Où va OS-9?

Son avenir le destine a être intégré au coeur d’un grand nombre de processeurs Motorola

grâce à une coopération technique et financière entre cette société et Microware. Mais ce n'est

pas le seul domaine d'expansion, Microware est partenaire de General Instruments pour le

développement de la télévision interactive (DAVID) aux États-Unis et en Europe, dans les

domaines de la décompression vidéo MPEG-2 et les interfaces graphiques ; et dans beaucoup

d’autres projets.

Page 19: Un système d'exploitation - stiff.univ-brest.frstiff.univ-brest.fr/boukhobza/images/stories/Documents/Teachings/... · Processeur Motorola 6809 . ... assembleur, gage de rapidité.

Microware 0S-9

19

Références

http://www.radisys.com

http://www.arm.com/

http://www.microware.com/

http://os9archive.rtsi.com/

http://membres.lycos.fr/os9/

Et voici une liste de livres disponibles traitant OS-9 (format papier, donc payants) :

OS-9 Insights (3.0 Edition)

Auteur: Peter Dibble

ISBN 0-981035-05-8

Disponible auprès de Microware Systems Corporation

OS-9 Guru 1: The Facts

Auteur: Paul S. Dayan

ISBN 0-9819228-0-7

Disponible auprès de Galactic Industrial

The OS-9 Catalog

OS-9 Primer

Auteur: Mark A. Heilpern

ISBN 0-918035-04-X

Disponible auprès de Microware Systems Corporation

Note J’ai voulu bien :

Détailler beaucoup plus dans l’étude du : noyau, tâches (création, opérations…),

routines d’interruption, gestion des ressources(avec les différentes variantes) et

gestion des communications (utilisation des IPCs…), mais les documents que j’ai

consultés sont moindres et pas bien clairs (il y a même des fois des contradictions

entre les concepts) “pour moi“.

Faire une démonstration d’un exemple d’application (code, exécution…), et expliquer

la démarche d’installation et la configuration de l’OS, mais le fait que Macroware

OS-9 (logiciel et documentation technique) est payant, j’ai pas pu me permettre.