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