a. les moniteurs temps reel

publicité
VRTX
EXECUTIF
TEMPS REEL
1.44/17/2017
I. INTRODUCTION .............................................................................................................................. 1
II. PRESENTATION ............................................................................................................................. 2
A. LES MONITEURS TEMPS REEL.............................................................................................. 2
1. SYSTEME D'EXPLOITATION .................................................................................................. 2
2. MULTITACHES ......................................................................................................................... 2
3. MULTI-UTILISATEUR.............................................................................................................. 2
4. MONITEUR OU EXECUTIF ...................................................................................................... 2
5. LES APPLICATIONS TEMPS REEL ......................................................................................... 2
6. LES EXECUTIFS TEMPS REEL ............................................................................................... 3
7. UTILISER UN MONITEUR POUR SIMPLIFIER...................................................................... 3
8. CARACTERISTIQUES D'UN MONITEUR............................................................................... 4
B. VELOCITY .................................................................................................................................... 4
III. CONCEPTS DE VRTX................................................................................................................... 5
A. LES TACHES ................................................................................................................................ 5
B. LES ISR .......................................................................................................................................... 6
C. LES COMMUNICATIONS ......................................................................................................... 6
1. LA BOITE AUX LETTRES ........................................................................................................ 6
2. LA FILE ....................................................................................................................................... 7
3. LES GROUPES D'EVENEMENT .............................................................................................. 7
4. LE SEMAPHORE ....................................................................................................................... 7
D. LES RESSOURCES ...................................................................................................................... 8
1. L'ALLOCATION DYNAMIQUE DE MEMOIRE...................................................................... 8
2. L'HORLOGE ............................................................................................................................... 9
3. LES ENTREES SORTIES CARACTERES ................................................................................ 9
E. LA CONFIGURATION DE VRTX ............................................................................................. 9
IV. LES EXTENSIONS DE VRTX .................................................................................................... 11
A. IFX ................................................................................................................................................ 11
1. GESTION DE DISQUE ............................................................................................................. 11
2. GESTION DE FILES BUFFERISEES ...................................................................................... 11
3. LES FONCTIONS D'IFX .......................................................................................................... 11
4. LE BOARD SUPPORT PACKAGE .......................................................................................... 12
B. RTSCOPE .................................................................................................................................... 13
C. MPV.............................................................................................................................................. 13
D. RESEAUX .................................................................................................................................... 13
V. LA CONCEPTION ......................................................................................................................... 14
VI. LES AUTRES MONITEURS ....................................................................................................... 15
1.44/17/2017
VRTX moniteur temps réel
2
A. CESAR ......................................................................................................................................... 15
B. PSOS+........................................................................................................................................... 15
C. SCEPTRE .................................................................................................................................... 15
D. ARTK ........................................................................................................................................... 15
E. ARTX ............................................................................................................................................ 15
F. REAL TIME CRAFT .................................................................................................................. 16
G. SPECTRA .................................................................................................................................... 16
H. VX-WORKS ................................................................................................................................ 16
I. LYNX-OS ...................................................................................................................................... 16
VII. ANNEXES ..................................................................................................................................... 17
A. COMPLEMENT SUR VRTX .................................................................................................... 17
1. LICENCE DE DEVELOPPEMENT : ....................................................................................... 17
2. CARACTERISTIQUES PHYSIQUE ........................................................................................ 17
3. PERFORMANCES .................................................................................................................... 18
4. FONCTIONS ............................................................................................................................. 18
B. BIBLIOGRAPHIE ...................................................................................................................... 19
1.4 4/17/2017
I.INTRODUCTION
Parmi les exécutifs temps réel les plus utilisés, VRTX est probablement le plus connu, c'est
une des raisons pour laquelle il a été sélectionné.
Nous présenterons également les notions classiques du temps réel, VRTX en étant un bon
exemple.
1.44/17/2017
2
VRTX moniteur temps réel
II.PRESENTATION
A. LES MONITEURS TEMPS REEL
1. SYSTEME D'EXPLOITATION
Tout calculateur comporte un système d'exploitation, qui sert d'intermédiaire en l'application
et le matériel. Ainsi en adaptant le système d'exploitation, la même application peut s'exécuter
sur des matériels différents. C'est le cas de MSDOS sur les compatibles PC.
Ce système d'exploitation est mono-tâche : une seule tâche s'exécute à la fois.
2. MULTITACHES
Les applications restant le plus souvent en attente d'entrée sortie (clavier, disque, etc), on
préfère les système d'exploitation qui "rentabilisent" le cpu en faisant s'exécuter d'autres
applications pendant les temps morts de la première.
A l'intérieur même d'une application on peut concevoir un certain nombre de tâches plus ou
moins indépendantes qui pourraient se partager le temps cpu. Bien sûr, ces tâches ont alors
besoin de communiquer entre elles.
Ces systèmes d'exploitation sont dit multitâches-tâches.
3. MULTI-UTILISATEUR
Un système estmultiutilisateurs lorsque plusieurs utilisateurs peuvent utiliser le même cpu à
travers des consoles différentes.
VMS et UNIX sont des systèmes d'exploitation multitâches-tâches et multitâches-utilisateurs.
4. MONITEUR OU EXECUTIF
Le coeur du système d'exploitation est un moniteur ou noyau exécutif qui gère cet ensemble
de tâches, choisit celle qui sera exécutée suivant divers critères (partage de temps, priorité...),
et les communications entre tâches ou avec l'extérieur.
5. LES APPLICATIONS TEMPS REEL
Une application est temps réel si elle respecte les contraintes de temps et de débit (temps de
réponse à un stimulus, taux de perte d'information toléré par entrée) qui sont imposées à ses
interfaces avec son environnement.
Aucune limite n'est spécifiée.
Un système de régulation de chauffage collectif qui doit réagir dans les six heures à un
changement extérieur de température est un système temps réel.
Une application temps réel n'a pas forcément besoin d'un moniteur temps réel, tout dépend des
contraintes.
1.4 4/17/2017
VRTX moniteur temps réel
3
6. LES EXECUTIFS TEMPS REEL
Un moniteur ou noyau exécutif est temps réel si il garantit les temps de réaction à un
événement plus prioritaire que le traitement courant.
Par exemple un moniteur ou exécutif n'est pas temps réel si :
 Il bloque périodiquement tout fonctionnement pour recompacter sa zone de mémoire
dynamique,
 Il bloque tout fonctionnement lors d'une attente d'entrée sortie,
 Il n'active la tâche la plus prioritaire que lors des requêtes systèmes de la tâche en cours, ou
suivant une période constante.
7. UTILISER UN MONITEUR POUR SIMPLIFIER
Les moniteurs ont une mauvaise réputation liée à certaines expériences malheureuses. Une
conception peu éclairée a parfois produit un ensemble de tâches reliées par un réseau
inextricable de communication. Ceci a conduit certains organismes à proscrire les moniteurs
dans les logiciels critiques.
Pourtant la réalisation séquentielle de besoins parallèles a souvent conduit à des réalisations
bien pires :
 L'application est principalement constituée d'un traitement linéaire circulaire,
 Cette ligne principale est souvent truffée de tests et d'aiguillages pour traiter les différents
types de fonctionnement possibles,
 Comme il n'est pas possible de scruter les entrées-sorties à cadence suffisante, elles sont
traitées par interruption avec quelques problèmes :
 Priorité souvent cablée entre les interruptions,
 Communications avec le reste du programme que l'on est obligé d'inventer,
 Exclusion d'accès aux entrées-sorties.
Si dans ce contexte l'application reste maîtrisable, vérifiable sans des milliers d'heures de
tests, ou si certains composants logiciels peuvent être ré-utilisés on peut conclure à
l'excellence des équipes de développement.
Le moniteur permet :
 de décomposer un ensemble de travaux inextricables en un ensemble de tâches
indépendantes,
 de permettre les communications inter-tâches et les accès aux ressources sans conflit
d'accès.
 cacher les propriétés spécifiques des machines utilisées pour n'en laisser voir que les
propriétés logiques (portabilité/réutilisabilité)
Cependant pour bénéficier de ces avantages sans prendre de risques dans une application
embarquée surtout si elle est critique, certaine précautions s'imposent dont voici quelques
exemples :
 - le système doit être prévisible :
 . toute tâche doit avoir un temps maximum d'exécution connu,
 . les tâches cadencées suivant des périodes fixes ou chaînées à d'autres tâches de ce
type sont plus vérifiables.
 . les événement extérieurs provoquant l'exécution de tâches asynchrones doivent
avoir une fréquence maximale connue, ou une faible priorité si on accepte les pertes
d'événement
 - les traitements ne supportant pas de gite doivent être plus prioritaires ou traitée en
interruption.
VRTX moniteur temps réel
4
En conclusion, il est toujours possible de trouver une architecture dynamique plus sûre avec
un moniteur que sans moniteur.
8. CARACTERISTIQUES D'UN MONITEUR
Les qualités recherchées pour un exécutif temps réel sont :
 - le déterminisme : Les performances temps d'un moniteur peuvent être :
 . aléatoires : Le temps dépend de l'ordonnancement des tables internes, il suit alors
une loi statistique fonction du nombre de composants (taches, etc) gérés. Seule cette
loi peut être donnée pour calculer un temps maximum.
 . fixe : Les algorithmes utilisés sont déterministes, ils ne dépendent pas de la
configuration.
 - Temps de masquage (latency time) le plus faible possible : ce temps est le temps
maximum pendant lequel une interruption ne peut être servie.
 - Temps de changement de contexte le plus faible possible : Temps nécessaire pour
changer de tâche active

 - Blocage du séquencement : Une tâche peut interdire tout changement de contexte sur une
portion de son traitement, même au profit d'une tâche plus prioritaire. (LOCK, UNLOCK)
 - Séquencement : Tous ces moniteurs exécutent la tache activable la plus prioritaire du
moment. Mais à égalité de priorité :
 . Circulaire : Les taches activables de même priorité sont gérés en liste circulaire. A
chaque activation de ce niveau, une tache différente est choisie.
 . Time slicing : Une tranche de temps est attribuée à chaque tache.
B. VELOCITY
VRTX est un moniteur déjà ancien qui existait pour processeur Z80 puis Z8002, 8088, 8086,
80286, 68000, 68008, 68020, 32000.
VRTX32 en est la nouvelle génération pour processeur 16/32 bits 8088, 8086, 80386, 68000,
68010, 68020, 32000.
Il existe également VRTX1750 pour les processeurs militaires MIL-STD-1750 A.
VRTX offre le minimum vital pour un moniteur :
 - un seul processeur,
 - très peu d'entrées-sorties.
VELOCITY est une famille de produits Ready System dont le noyau est le moniteur temps
réel VRTX, et qui comporte des couches additionnelle qui permettent d'étendre ses services :
 - MPV multitâches-processeurs,
 - IFX entrées sorties,
 - TNX communication réseau,
 - RTSCOPE débugger,
 - RTL bibliothèque standard C appelant VRTX,
 - RTC compilateurs Intel,
 - ARTX moniteur pour ADA,
 - VMSLink téléchargement VAX
 - Hyperlink téléchargement SUN
1.4 4/17/2017
5
VRTX moniteur temps réel
III.CONCEPTS DE VRTX
Versatile Real Time Executive
A. LES TACHES
Une tâche est un agent actif responsable de l'exécution séquentielle d'un programme.
Une tâche comporte un certain nombre d'attributs pouvant être mémorisés dans un bloc de
contrôle (TCB) :
 - identification : 1..255 numéro d'identification unique par lequel la tâche peut être
référencée1,
 - son état :
 * dormante : la tâche est inactive et ne peut s'exécuter, elle est inconnue de VRTX,
 * active : la tâche est prête à s'exécuter si les conditions sont remplies, elle peut
alors être :
 . suspendue : la tâche est en attente d'un événement,
 . exécutable (ready) : la tâche n'attend rien et est exécutable,
 . en exécution (exécuting) : parmi toutes les tâches exécutable, une seule
tâche est en exécution à un instant donné, suivant des critères qui seront
précisés ensuite.
 - sa priorité : 0..255 (0=niveau le plus prioritaire). Parmi toutes les tâches exécutable,
l'exécutif choisit la plus prioritaire comme tâche exécutée, à égalité de niveau,
 - le contexte d'exécution : l'ensemble des valeurs des registres du processeur.2 Lorsqu'une
tâche quitte l'état d'exécution, ce contexte est mémorisé, il lui sera restitué lors du retour à
l'état d'exécution,
 - la pile : chaque tâche utilise une pile utilisateur3 personnelle
Par défaut, à égalité de niveau de priorité, l'exécutif choisit la tâche exécutable la plus
ancienne dans la liste des tâches exécutables. Il est possible de sélectionner (SC_TSLICE) une
rotation avec partage de temps entre les tâches de même priorité. Un tâche peut interdire toute
alternance sur une portion de son code (SC_LOCK et SC_UNLOCK)
Plusieurs tâches peuvent exécuter le même code, il suffit qu'elles travaillent sur des contextes
différents.
Une tâche peut être dynamiquement
 - crée (SC_TCREATE),
 - détruite (SC_TDELETE),
 - suspendue (SC_TSUSPEND) sans condition de relance,
 - relancée (SC_TRESUME) si elle était suspendue,
 - changée de priorité (SC_TPRIORITY),
 - consultée sur son état (SC_TINQUIRY)
1 0 = numéro partageable par plusieurs tâches, cependant de telles tâches ne peuvent
communiquer avec l'extérieur.
2 D0..D5, A0..A3 SSP,USP et registres d'état dans le TCB, les autres dans la pile utilisateur
3 le 680XX comporte une pile système utilisée par les ISR et VRTX et une pile utilisateur.
Chaque pile à son propre pointeur dans le CPU, sélectionné automatiquement suivant l'état
superviseur ou utilisateur du processeur
VRTX moniteur temps réel
6
B. LES ISR
Les tâches sont sous le contrôle total de l'exécutif et ne peuvent déceler directement un
événement extérieur matériel asynchrone.
Les ISR4 sont des routines d'interruption directement reliées à un vecteur d'interruption.
L'apparition de l'interruption matérielle provoque leur exécution sans intervention du
moniteur.
Leur priorité dépend uniquement du contrôleur d'interruption utilisé (ex 68901).
Une ISR doit uniquement acquérir ou émettre des informations sans les traiter. Elle doit les
communiquer avec une tâche en serveur qui les traitera. Elle doit ensuite signaler
l'interruption au moniteur (UI_EXIT)afin qu' il puisse éventuellement changer de tâche en
exécution.
C. LES COMMUNICATIONS
Ces communications ont lieu entre tâches ou entre ISR et tâches. Elles peuvent servir
plusieurs objectif :
 - échange de données,
 - synchronisation :
 . unilatérale : T2 doit attendre que T1 est atteind un certain point,
 . bilatérale : T1 et T2 doivent mutuellement s'attendre en un point de leur
traitement,
 . conjonctive : T est en attente d'un ensemble d'événements,
 . disjonctive : T est en attente du premier événement parmi un ensemble,
 - exclusion mutuelle d'accès à une ressource.
1. LA BOITE AUX LETTRES
La boite aux lettres ou mailbox permet un échange d'informations. Une boite aux lettres ne
peut accepter qu'un seul message à la fois.
VRTX n'autorise qu'un message d'un mot de 32 bits non nul. Ce mot servira donc le plus
souvent de pointeur vers le véritable message.
Physiquement une mailbox est un mot mémoire réservé par l'utilisateur, nul si la mailbox est
vide. Toutes les requêtes s'effectuent donc en donnant l'adresse de ce mot.
Une tâche ou une ISR peut envoyer un message vers la boite aux lettres (SC_POST). Si celleci n'est pas vide un code d'erreur est renvoyé.
Une autre tâche ou ISR peut recevoir le message par une demande de lecture sans attente
(SC_ACCEPT), avec attente (SC_PEND seulement pour les tâches) avec ou sans time-out.
Si plusieurs tâches sont en attente de la même boite aux lettres, la plus prioritaire recevra le
premier message.
Les boites aux lettres servent donc surtout à des transmissions d'information lorsque le
récepteur est capable de les traiter à la cadence de l'émetteur.
4 Interrupt Service Routines, elles sont nommées tâches immédiates dans sceptre
1.4 4/17/2017
VRTX moniteur temps réel
7
2. LA FILE
La file (queue) permet de mémoriser plusieurs messages entre les émetteurs et le récepteur.
Une file doit être créée en faisant une demande auprès de VRTX
(SC_QCREATE/SC_QECREATE) spécifiant un numéro d'identification et le nombre
maximum de messages acceptés par la file à un instant donné.
Là encore le message échangé est un mot de 32 bits. Une file à une seule position est
équivalente à une boite aux lettres.
Une tâche ou une ISR peut envoyer un message vers la file (SC_QPOST FIFO). Si celle-ci est
pleine un code d'erreur est renvoyé.
Une autre tâche ou ISR peut lire un message (en principe le premier envoyé FIFO) par une
demande de lecture sans attente (SC_QACCEPT), avec attente (SC_QPEND seulement pour
les tâches) avec ou sans time-out.
Un message urgent peut être placé en tête de liste (SC_QJAM LIFO). Même si la file est
pleine, VRTX autorise encore un message de type urgent, mais un seul.
Il est possible de connaître le nombre de messages dans la file et le contenu du premier sans le
dépiler (SC_QINQUIRY)
Lorsque plusieurs tâches attendent, la première arrivée ou la plus prioritaire sera servie la
première suivant une option à la création de la file.
Une file sert donc surtout à réguler les transmissions d'information lorsque le récepteur n'est
capable de les traiter à la cadence de l'émetteur qu'en moyenne.
3. LES GROUPES D'EVENEMENT
Un événement (event flag) est un signal binaire.
VRTX gère des groupes de 32 événements codés sur un mot de 32 bits.
Un groupe d'événement est créé sur demande à VRTX (SC_FCREATE) qui retourne un
numéro d'identification, et peut être détruit (SC_FDELETE).
Une tâche ou une ISR peut positionner (SC_FPOST) ou effacer (SC_FCLEAR)un sousensemble du groupe.
Une tâche peut se mettre en attente d'un sous-ensemble du groupe d'événement (SC_FPEND)
sur une disjonction (OU) ou une conjonction (ET) des événements, avec ou sans time out Un
test plus fin peut ensuite être réalisé par une lecture du groupe (SC_FINQUIRY).
L'événement est le mécanisme tout désigné pour un déclenchement sans information d'une
tâche ou l'attente d'un ensemble de conditions.
4. LE SEMAPHORE
Le sémaphore un mécanisme d'exclusion mutuelle pour l'accès à une ressource. C'est
probablement le premier utilisé par les systèmes d'exploitation.
VRTX moniteur temps réel
8
VRTX crée un sémaphore sur demande (SC_SCREATE) et retourne un numéro
d'identification. Il peut également le détruire par (SC_SDELETE).
Lorsqu'une tâche veut accéder à la ressource protégée, elle le demande (SC_SPEND). Si la
ressource est déjà occupée, la tâche est mise en attente (avec ou sans time out), sinon elle
continue à s'exécuter, la ressource lui est alors réservée. Lorsque son travail est terminé, elle
doit le libérer (SC_SPOST).
Certaines ressources peuvent supporter plusieurs utilisations simultanés. Le nombre
d'utilisateurs simultanés acceptés doit être indiqué à la création.
Le sémaphore est en fait un compteur initialisé avec le nombre d'utilisateurs admis,
décrémenté lors des réservations, incrémenté lors des libérations, et dont la valeur nulle
indique un blocage de l'accès à la ressource.
Enfin, l'état d'un sémaphore peut être testé (SC_SINQUIRY).
Il est préférable d'utiliser une tâche ou une ISR accessible par une boite aux lettre ou une file
pour gérer une ressource. Le sémaphore doit rester réserver dans les cas de CONTRAINTES
temporelles qui exigent de limiter les transitions entre tâches.
D. LES RESSOURCES
VRTX comporte quelques ressources complémentaires :
1. L'ALLOCATION DYNAMIQUE DE MEMOIRE
Pour ses besoins personnels VRTX utilise des tables de dimension fixe.
Lorsqu'on utilise une file, le mot de 32 bits mémorisé est bien sûr insuffisant. Il ne peut
contenir que l'adresse du bloc de données constituant réellement le message.
Pour ce type de besoin, VRTX fournit des fonctions d'allocation dynamique de mémoire. La
tâche émettrice réserve un bloc de mémoire qu'elle initialise avec les information à
transmettre, qu'elle envoie dans la file. La tâche réceptrice peut libérer cette mémoire lorsque
elle a finit de la traiter.
L'allocation et la libération de zones variables met en oeuvre des algorithmes parfois
incompatibles avec le temps réel. exemple les algorithmes de compactage des "trous" qui
bloquent un système quelques secondes lorsque des suites de réservation-libération ont
transformé la mémoire en un vaste gruyère.
VRTX propose des ressources de partitions mémoire dont chacune contient un ensemble de
blocs de taille identique.
L'utilisateur crée la ressource en donnant un numéro d'identification, l'adresse de début de la
zone contiguë, la taille de la partition, la taille d'un bloc (SC_PCREATE). La partition peut
être étendue (SC_PEXTEND) avec d'autres zones contiguës.
Un bloc peut ensuite être réservé (SC_GBLOCK) par une tâche ou une ISR, puis libérée
(SC_RBLOCK).
1.4 4/17/2017
VRTX moniteur temps réel
9
2. L'HORLOGE
VRTX peut offrir un service d'horloge. Pour cela, le matériel doit pouvoir déclencher une ISR
périodique qui avertit qu'une nouvelle période de temps est écoulée (UI_TIMER).
Cette période s'appelle le "tick". VRTX gère un compteur du nombre de "ticks" écoulés depuis
le démarrage de l'application.
Tous les temps spécifiés à VRTX (ex : SC_TSLICE, période de temps alloué à chaque
application) s'exprime dans cette unité.
Il est possible de lire (SC_GTIME) ou d'initialiser (SC_STIME) ce compteur.
Une tâche peut se suspendre pendant un nombre de "ticks" spécifié. (SC_TDELAY)
3. LES ENTREES SORTIES CARACTERES
Malgré l'absence de son complément d'entrée sortie IFX, VRTX peut gérer une entrée et une
sortie caractère.
L'application doit fournir deux ISR qui s'occupent de détecter la fin d'émission d'un octet ou
de recevoir un octet et préviennent VRTX (UI_TXRDY & UI_RXCHR). Elle doit également
fournir un sous-programme TXRDY qui transmet un caractère.
Les tâches peut écrire (SC_PUTC) ou lire (SC_GETC) un caractère, attendre un caractère
spécifique (SC_WAITC)
VRTX gère des buffers tournant de 64 caractères en tampon entre les tâches et les ISR.
Ces fonctions sont généralement utilisées pour relier l'application à un clavier et à un écran.
E. LA CONFIGURATION DE VRTX
VRTX est un composant logiciel dont le code est entièrement relogeable (adressage relatif au
PC).
Les appels systèmes se font à travers une interruption logiciel (TRAP) choisie par l'utilisateur.
Des bibliothèques d'interface en C sont fournies.
Une table de configuration permet d'indiquer au moniteur ses paramètres de travail :
 - position et taille de la zone des données de travail de VRTX,
 - la taille de la pile système et de la pile ISR,
 - la taille de la pile d'une tâche,
 - le nombre maximum de groupes d'événements et de sémaphores,
 - le niveau de masquage des interruptions à positionner en mode système VRTX,
 - le nombre maximum de tâches,
 - l'adresse de TXRDY (si elle existe),
 - les adresse d'extensions optionnelles (routine utilisateur pour des traitements
complémentaires lors de la création, la destruction ou le changement de tâches)
 - la table des composants additionnels de VRTX, (ex : IFX).
VRTX moniteur temps réel
10
Au démarrage, après ses propres initialisation, l'application appelle VRTX_INIT puis réalise
les créations de tâches ou de ressources jugées nécessaires dès le début puis VRTX_GO.
VRTX comporte également une table (CVT) contenant les adresses des composants
additionnels.
1.4 4/17/2017
VRTX moniteur temps réel
11
IV.LES EXTENSIONS DE VRTX
VRTX comporte un certain nombre de couches additionnelles :
A. IFX
IFX (Input/output and File eXecutive) offre des services d'entrée sortie classiques mais en
garantissant toutes les caractéristiques temps réel de VRTX.
Les requêtes sont analysées par un dispatcher qui les oriente suivant la catégorie :
1. GESTION DE DISQUE
Cette gestion est compatible MSDOS jusqu'à la version 4.0.
Plusieurs modèles de drivers sont disponibles pour disque dur, disque souple et RAM disque.
2. GESTION DE FILES BUFFERISEES
Ces files permettent de gérer des périphériques octets, avec gestion de buffer tournant et
d'édition de ligne.
On dispose des mêmes fonctions de base que pour la gestion de disque à l'exclusion de celle
spécifiques des disques (disque, fichier, volume, etc)
Plusieurs modèles de drivers sont disponibles pour liaison série, terminaux sur liaison série
(écho, backspace/erase, line erase, tab conversion...), pipe (tampon tournant unix),
périphérique nul, gestion d'horloge.
Il est également possible de gérer des imprimantes, des périphériques en accès par blocs avec
des drivers qu'il faut écrire ou se procurer auprès d'autres fournisseurs.
Ces files sont utilisable comme des fichiers, simplement le nom du périphérique est donné à la
place du nom de fichier
3. LES FONCTIONS D'IFX
Pour chaque volume, ligne asynchrone, ou terminal, IFX peut créer des tâches ordinaires
VRTX en serveur.
Il existe plusieurs niveaux d'accès à un périphérique sélectionné par un nom donné en
argument :
 - nom du fichier : gestion logique de fichiers (style disque),
 - nom du cache : gestion binaire à travers une mémoire cache (ssi disque), donner le
 - nom de périphérique physique : accès direct au driver,
La gestion compatible MSDOS de IFX comprend :
 - l'installation d'un périphérique
 . association nom logique, nom physique (ifx_install),
 . montage de volume avec gestion de cache (ifx_mount ) et formatage possible.
VRTX moniteur temps réel






12
 . la desinstallation (ifx_remove) ou la mise hors ligne (ifx_offline),
 . l'installation/la desinstall de driver (ifx_driver/ ifx_rmdriver)
- un périphérique système commun à toutes les tâches (ifx_ssystem, ifx_gsystem),
- un périphérique par défaut par tâche utilisatrice (ifx_sdefault, ifx_gdefault),
- gestion de catalogue (ifx_mkdir, ifx_rmdir, ifx_rename),
- catalogue par défaut (ifx_swkdir, ifx_gwkdir),
- gestion fichier (ifx_create, ifx_delete, ifx_gpath, ifx_rename, ifx_open, ifx_close,
ifx_devnam, ifx_gaccmode, ifx_dup, ifx_close, ifx_closed),
- lecture/écriture avec attente (mode synchrone)
 . mode normal (ifx_read, ifx_write),
 . par secteur (ifx_reads, ifx_writes),
 . avec positionnement (ifx_readp, ifxwritep)
 . opérations diverses (ifx_ioctl, ifx_devctl)
 . sans attente en scrutation ou réception d'événement (mode asynchrone : ifx_open,
ifx_astart, ifx_afstart, ifx_inquiry, ifx_await, ifx_acancel, ifx_close)
 - attributs de fichiers (ifx_gfalloc, ifx_sfalloc, ifx_gfattr, ifx_sfattr, ifx_gftime, ifx_sftime,
ifx_gflength, ifx_sflength, ifx_gfreserved, ifx_sfreserved, ifxgfextent, ifxlockf,
ifx_unlockf)
4. LE BOARD SUPPORT PACKAGE
L'utilisateur doit fournir un "board support package" comprenant :
 - initialisation,
 - tables de configuration,
 - les drivers.
Ce board support package est réutilisable par toute application utilisant le même matériel.
Un driver travail en association avec un descripteur (IFXDCB). Il peut utiliser les mécanismes
standards de VRTX plus une implantation plus rapide des sémaphores (ifxvisi.h)
Le driver doit être composé :
 - d'une fonction qui reçoit les ordre d'IFX,
 - d'ISR qui peuvent réaliser les traitements sous interruption complémentaires.
La fonction doit traiter les fonctions :
 - installation / désinstallation de driver / périphérique,
 - opérations de contrôle,
 - arrêt d'opération asynchrone,
 - fonctions spécifiques disques :
 . lecture écritures de secteurs,
 . opérations de contrôle,
 . formatage de piste,
 . nettoyage de tampon,
 . vidage de tampon,
 . arrêt d'opération asynchrone,
 - fonctions spécifiques lignes séries :
 . installation de périphérique,
 . opérations de contrôle,
 . arrêt d'opérations asynchrone,
 - fonctions spécifiques horloge :
 . lecture écriture de l'heure,
 - fonctions spécifiques catalogue (en option):
 . création de fichier/catalogue,
 . destruction de fichier/catalogue,
 . renommer, catalogue courant, marquage de secteur erroné, ouverture (obligatoire)
1.4 4/17/2017
VRTX moniteur temps réel
13
B. RTSCOPE
RTscope est un debugger temps réel associé avec VRTX.
Caractéristiques principales :
 - opère en parallèle avec le système multitâche,
 - affichage en clair des structures de données VRTX,
 - positionnement de points d'arrêt sur les appels VRTX,
 - appel interactif des primitives de VRTX (test),
 - pilotage d'un calculateur, à travers le terminal de commande de RTSCOPE,
 - syntaxe et affichage configurable,
 - affichage et modification des registres (680XX, 6888X),
 - désassemblage,
 - assemblage ligne,
 - 16 points d'arrêt,
 - pas à pas,
 - téléchargement de binaire,
 - console RTSCOPE et console VRTX communes ou indépendantes,
 - interruption possible de l'application,
 - définition de symboles,
 - installation sans VRTX possible,
C. MPV
MPV est un complément mulprocesseurs de VRTX, avec 25 primitives nouvelles :
 - passage de message et synchronisation,
 - noms globaux d'objets,
 - mémoire globale et gestion de ressource,
 - appel de procédures sur d'autres processeurs,
 - transferts de données,
 - gestion de mémoire commune.
La communication est indépendante de la liaison disponible :
 - la mémoire globale,
 - liaison RS232,
mais une zone de mémoire commune est indispensable.
D. RESEAUX
Ces composent exigent un contrôleur Excelan 202 ou 302 Ethernet :
 - TNX est un complément permettant la communication de l'application VRTX sur un
réseau suivant le protocole TC/IP.
 - Hyperlink permet un téléchargement rapide en provenance d'une station SUN unix,
 - VMSLink permet un téléchargement rapide en provenance d'une machine VAX,
14
VRTX moniteur temps réel
V.LA CONCEPTION
La conception s'exécute en trois étapes :
 - L'architecture logique qui donne les fonctionnalités indépendement des ressources
disponibles,
 - L'architecture dynamique qui donne le découpage en tâches et les communications intertâches ou driver,
 - L'architecture physique qui donne le découpage en modules et l'interface de ces modules,
Un exécutif temps réel est concerné par la seconde architecture. On peut aussi utiliser un outil
conception CARDTOOLS qui dispose d'un symbole graphique pour chaque concept de
VRTX, avec en plus :
 - la notion de sous-système permettant à un niveau de regroupper dans un seul rectangle un
ensemble cohérent de tâches, décomposées au niveau inférieur,
 - la notion de rendez-vous ADA.
CARDTOOLS connait les temps d'exécution des primitives VRTX et est capable de calculer
le temps d'un chemin de données ou de sortir des chronogrammes pour les versions les plus
évoluées.
1.4 4/17/2017
VRTX moniteur temps réel
15
VI.LES AUTRES MONITEURS
A. CESAR
CESAR est le précédant moniteur temps réel. Ses mécanismes étaient plus originaux, et ce
moniteur était moins répandu que VRTX.
B. PSOS+
PSOS, principal concurrent de VRTX, et également utilisé sur certaines applications
garantissait des performances fonctions du nombre de tâches de l'application.
PSOS+, la génération suivante comble cependant ce défaut.
C. SCEPTRE
Les concepts manipulés par les moniteurs datent des premiers systèmes d'exploitation.
On retrouve donc presque toujours les mêmes mécanismes, avec quelques variantes et des
syntaxes différentes.
Or une application a beau utiliser le même CPU, le même langage normalisé, elle ne pourra
être porté sur un matériel utilisant un moniteur différent.
SCEPTRE5 est une proposition du BNI6 de standard d'appel de moniteur, tout comme POSIX
est une norme d'appel pour un système d'exploitation. A charge pour tous les fabricants de
moniteurs de fabriquer l'interface et l'application sera portable d'un système à l'autre.
D. ARTK
ARTK est l'exécutif temps réel de la chaîne ADA Alsys.
Certains langages (LTR) ou extensions de langages (Concurent Pascal) intègrent dans leur
syntaxe les processus de définition des tâches et de communication, c'est le cas du langage
ADA qui propose comme mécanisme élémentaire : le rendez-vous.
Le rendez-vous est un mécanisme neuf (par rapport aux autres) qui règles les communications
entre les tâches.
Déroutés par cette originalité, certains utilisateurs d'ADA préfèrent utiliser un moniteur
classique comme VRTX. Alsys commercialisait une interface entre son compilateur et VRTX.
Cette solution sera en 91 remplacée par l'intégration d'ARTX.
E. ARTX
Ready System propose aussi une solution mixte : l'exécutif ARTX, comportant à la fois les
mécanismes de rendez-vous d'ADA et ceux de VRTX.
ARTX est en effet compatible ascendant avec VRTX mais n'est pas une couche d'adaptation à
VRTX, Il est complètement ré-écrit.
5 Standardisation du Coeur des Exécutifs des Produits Temps Réel Européens (1980)
6 Bureau d'orientation de la Normalisation en Informatique
VRTX moniteur temps réel
16
Par le passé associé au compilateur TELESOFT que Ready System distribuait, ARTX est à
présent intégré et vendu par les autres fabriquants de compilateur ADA dont ALSYS et
VERDIX mais plus TELESOFT.
F. REAL TIME CRAFT
REAL TIME CRAFT est l'exécutif de GSI-TECSI distribué par MTE, réalisé par des
participants à SCEPTRE.
Son noyau XEC est semblable à VRTX, ses composants complémentaires sont les suivants :
- IOS : Entrées sorties lignes asynchrones ou synchrones,
- FMS : Gestion de fichers,
- TRC : debugger
G. SPECTRA
SPECTRA, le successeur de VRTX chez READY-SYSTEM fait partie de la nouvelle
génération d'exécutif bâti sur un micro-noyau.
Même les fonctions mailbox, sémaphore, etc ne font pas partie de ce micro-noyau et sont donc
absentes du code si elles ne sont pas utilisées.
A l'inverse, le noyau s'enrichit de couches supplémentaires qui lui apporte des fonctionnalités
allant jusqu'à UNIX.
Il y a d'autres produits dans la même catégorie qu'il faudra analyser.
H. VX-WORKS
VX-WORKS fait partie de la catégorie noyau sur-puissant comportant tout un tas de
composants additionnels. Bâtit anciennement sur VRTX et PSOS, il utilise à présent son
propre noyau.
I. LYNX-OS
Simili UNIX temp réel comparable à VX-WORKS
1.4 4/17/2017
17
VRTX moniteur temps réel
VII.ANNEXES
A. COMPLEMENT SUR VRTX
1. LICENCE DE DEVELOPPEMENT :
Cette licence est calculée en fonction du nombre de developpeurs et pour un microprocesseur.
(68000, 60020, etc)




- VRTX : 35 kf + 7 kf/utilisateur supplémentaire
- IFX : 26 kf + 5.2 kf/u
- RTSCOP : 15 kf + 3 kf/u
- MPV : identique à IFX
Nous possédons une licence de développements illimités pour VRTX, IFX, RTSCOPE pour
68000/68020.
Licence de recopie par unité de vrtx implantée en PROM :
Elles sont dépendantes du nombre total d'unités.
 - VRTX 2650 frs/u (1 à 24), 1990 frs/u (25 à 99), 950 frs au delà
 - IFX 1610 frs/u (1 à 24), 1135 frs/u (25 à 99), 710 frs au delà
Licence de recopies illimitées / site
VRTX
1micro
2micros
3micros
1applicatio
n
360kf
650kf
900kf
napplicatio
ns
850kf
1250kf
1500kf
'
IFX
1applicatio
n
1micro 300kf
2micros 540kf
3micros 760kf
napplicatio
ns
700kf
950kf
1100kf
'
* attention 68000 68020 = 2 micros
2 cartes CPU programmées différemment = 2 applications
Assistance maintenance 12%/an d'une licence de développement unitaire.
Nous achetons les licences VRTX IFX 1500frs / unité
2. CARACTERISTIQUES PHYSIQUE
Moniteur
Multi processeur nb/option
Taches nombre maximum
Taille Noyau
CESA
R
127
max
1023
12 Ko
PSOS
VRTX
pRISM opt.MP
V
64 ?
255
5 Ko
8 ko
18
VRTX moniteur temps réel
Moniteur
CESA PSOS
R
00 Ko 10Ko
Multiproc.
E/S
Fichiers
Performances fixes
?
calculables
Temps de masquage des its ?
en us
max.primitive systeme
300
chang.de contexte
200?
Supp. de tache
?
avec chang.de tache
?
Changement priorite
?
avec chang.de tache
?
Réception sur file
?
Emission sur file
?
file non vide
?
Positionn.evenement
?
avec chang.de tache
504
Pause depause tache
448
16ko
non
oui
29
299?
70
233
299
133
200
102
132
152
83
205
324
VRTX
16 Ko
38 Ko
26 Ko
oui
33
299
40
194
225
238
278
84
85
133
85
219
525
Les temps ont ete alignes sur cible 68000/68010 a 10 Mhz.
3. PERFORMANCES
Moniteur
Time slicing possible
Séquencement Circulaire
Blocage du Séquencement
Nb d'événement dans un
groupe combinables
Sémaphores
Boite aux lettres
Files FIFO
avec gestion priorite
insertion LIFO
blocs d'e/s
Gestion
Mémoire
Dynamique
partitionnée
Associable a une e/s
Gestion d'Horloge
Cadencement
Attente de delai
Time out intégrés aux
appels non
CESAR
non
non
non
1
?
non
non
oui
non
non
oui
oui
PSOS
oui
non
non
15
?
non
non
oui
oui
oui
non
oui
VRTX
oui
oui
oui
31
et/ou
Dijkst.
oui
oui
oui
oui
non
oui
oui
oui
oui
oui
oui
oui
possib
non
oui
non
oui
oui
oui
non
oui
non
oui
4. FONCTIONS
Moniteur
Entrees Nombre
/sorties
1.4 4/17/2017
CESAR
255
PSOS
?
VRTX
1e 1s
19
VRTX moniteur temps réel
Taille des blocs
Taille de la file
Entrees en option
/sorties
varia.
varia.
Option
gestion
de non
disque
compatibilitee
commandes
compatibilitee format
taille max des disques
bufferisation
Fonctions ana.perform. non
complement.
co oui
processeur
?
1
phile
1
64
IOX
tampons
circu.
FMX
Unix
IBM/PC
?
oui
?
?
MSDOS3.3
4 giga
oui
oui
oui circu.
B. BIBLIOGRAPHIE
Support de cours TEMPS REEL - READY SYSTEMS france Apside technologie
Sceptre : proposition de noyau normalisé pour les exécutifs temps réel
VRTX32 user's guide READY SYSTEMS
Evaluation des exécutifs multitâches-tâches temps réel et systèmes d'exploitation multitâchestâches temps réel sur IBM PC ou compatible, LEMAIRE Gérard
VRTX32:680X0 Timing Reference Software Release 1 Document Number 540011001 May
1987
Téléchargement