présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M....

52
TEMPS REEL LE TEMPS REEL & VRTX 17/06/2022

Transcript of présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M....

Page 1: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

TEMPS REEL

LE TEMPS REEL& VRTX

11/09/2023

Page 2: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

TEMPS REEL 1

I. INTRODUCTION ..........................................................................................................................

II. LES SYSTEMES D'EXPLOITATION (OS) ...............................................................................

A. LE SYSTEME D'EXPLOITATION........................................................................................B. LES INTERRUPTIONS...........................................................................................................C. LES OS MULTITACHES........................................................................................................

1. AVANTAGES.........................................................................................................................2. LES PROCESSUS..................................................................................................................3. LE KERNEL...........................................................................................................................4. LE SCHEDULEUR/ORDONANCEUR...................................................................................5. LE SEMAPHORE...................................................................................................................6. LE PIPE..................................................................................................................................7. EVENEMENT / SIGNAL........................................................................................................

D. MULTI-UTILISATEUR...........................................................................................................E. MONITEUR OU EXECUTIF..................................................................................................

III. LE TEMPS REEL .......................................................................................................................

A. DEFINITION DU TEMPS REEL............................................................................................B. OBJECTIFS DU TEMPS REEL..............................................................................................C. CARACTERISTIQUES DU TEMPS REEL...........................................................................D. CARACTERISTIQUES D'UN MONITEUR...........................................................................

1. PREEMPTIF...........................................................................................................................2. DETERMINISME...................................................................................................................3. LATENCY TIME....................................................................................................................4. TEMPS DE CHANGEMENT DE CONTEXTE.......................................................................5. BLOCAGE DU SEQUENCEMENT........................................................................................6. SEQUENCEMENT.................................................................................................................

IV. LES SYSTEMES TEMPS REELS .............................................................................................

A. LES OS TEMPS REELS..........................................................................................................1. UNIX......................................................................................................................................2. CHORUS................................................................................................................................3. LYNXOS................................................................................................................................4. VXWORKS.............................................................................................................................5. OS/9........................................................................................................................................

B. LES MONITEURS TEMPS REEL..........................................................................................1. PSOS+....................................................................................................................................2. SCEPTRE...............................................................................................................................3. ARTK.....................................................................................................................................4. REAL TIME CRAFT..............................................................................................................5. SPECTRA...............................................................................................................................

C. VELOCITY...............................................................................................................................

V. VRTX ............................................................................................................................................

11/09/2023

Page 3: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

VRTX moniteur temps réel

A. PREMIERS CONCEPTS DU NOYAU....................................................................................1. LES TACHES.........................................................................................................................2. LES ISR..................................................................................................................................3. L'HORLOGE...........................................................................................................................4. LES ENTREES SORTIES CARACTERES.............................................................................

B. DEVELOPPER SOUS VRTX..................................................................................................1. DEVELOPPER SUR CIBLE...................................................................................................2. LA CONFIGURATION DE VRTX.........................................................................................3. DEVELOPPER SUR P.C........................................................................................................4. CONTEXTE DES EXERCICES..............................................................................................

C. AUTRES CONCEPTS DU NOYAU........................................................................................1. LA BOITE AUX LETTRES....................................................................................................2. LA FILE..................................................................................................................................3. LES GROUPES D'EVENEMENT...........................................................................................4. LE SEMAPHORE...................................................................................................................5. L'ALLOCATION DYNAMIQUE DE MEMOIRE...................................................................

VI. LES EXTENSIONS DE VRTX ...................................................................................................

A. IFX............................................................................................................................................1. GESTION DE DISQUE...........................................................................................................2. GESTION DE FILES BUFFERISEES.....................................................................................3. LES FONCTIONS D'IFX........................................................................................................4. LE BOARD SUPPORT PACKAGE........................................................................................

B. RTSCOPE.................................................................................................................................C. MPV..........................................................................................................................................D. RESEAUX.................................................................................................................................E. WIX...........................................................................................................................................

VII. LA CONCEPTION ....................................................................................................................

VIII. LES AUTRES MONITEURS ..................................................................................................

IX. ANNEXES ...................................................................................................................................

A. PROTOTYPE DES FONCTIONS VRTX...............................................................................B. COMPLEMENT SUR VRTX...................................................................................................

1. LICENCE DE DEVELOPPEMENT :......................................................................................2. CARACTERISTIQUES PHYSIQUE.......................................................................................3. PERFORMANCES.................................................................................................................4. FONCTIONS..........................................................................................................................

C. BIBLIOGRAPHIE....................................................................................................................

11/09/2023

2

Page 4: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

I. INTRODUCTION

Ce cours présente : Les notions de temps réels et d'exécutif temps réel. Les produits du marché. L'exécutif temps réel VRTX utilisé pour les T.P. et le mini-projet.

11/09/2023

1

Page 5: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

II. LES SYSTEMES D'EXPLOITATION (OS)

A. LE 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.

INTERFACEIMPRIMANTE

INTERFACESOURIS

INTERFACEVIDEO

INTERFACECLAVIER

INTERFACESDISQUES

Basic Input Ouput System

SYSTEME D'EXPLOITATIONCOMMANDES CHARGEMENT

PROGRAMMESMANIPULATIONSDONNEES

INTERPRETEURDE COMMANDES

PROGRAMME

DEMANDES

Ce système d'exploitation apporte : Transparence vis à vis du matériel : Un même programme peut s'exécuter sur des

matériels différents.

B. LES INTERRUPTIONS

événementINTERRUPTION

PROGRAMME

Lorsque survient un événement matériel (appuie d'une touche, réception de caractère modem...), le matériel est capable de générer un interruption.Le programme en cours est dérouté, le traitement d'interruption doit absoluement sauvegarder les registres qu'il utilise. A la fin de l'interruption, le traitement du programme reprend.Mais :

11/09/2023

2

Page 6: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

Les priorités des interruptions sont souvent cablées. Elles ont lieu quelque soit l'urgence du programme.

C. LES OS MULTITACHES

1. AVANTAGES

INTERFACEIMPRIMANTE

INTERFACESOURIS

INTERFACEVIDEO

INTERFACECLAVIER

INTERFACESDISQUES

Basic Input Ouput System

SYSTEME D'EXPLOITATIONCOMMANDES CHARGEMENT

PROGRAMMESMANIPULATIONSDONNEES

INTERPRETEURDE COMMANDES

TACHE 1

DEMANDES

TACHE 1TACHE 1

Le multi-tâches permet : De rentabiliser l'usage du CPU. Il peut être alloué à une tâche moins urgente si la

tâche de plus haute priorité est bloquée par des entrées sorties. Simplifier la conception. Chaque fonction dispose de sa tâche de traitement,

comme si elle disposait du processeur à elle seule.MONOTACHE MULTITACHES

2. LES PROCESSUS

On utilise plutôt le terme de processus.

11/09/2023

3

Page 7: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

Chaque processus possède : Sa mémoire. Ses données. Ne peut communiquer qu'à travers l'OS

3. LE KERNEL

Le coeur d'un système d'exploitation multitâche est le "kernel". Il comporte essentiellement l'enchaîneur de tâche s'appelle un ordonanceur (schéduler).

KERNELSCHEDULEUR

DRIVERS

AUTRE

4. LE SCHEDULEUR/ORDONANCEUR

Attenteentrée sortie

processus+ prioritaire

processus- prioritaire

entrée sortieterminée

SCHEDULER

Le scheduleur choisit à un instant donné le processus (ou thread) actif. Avec un processeur il n'y a toujours qu'un processus (ou thread) actif, le plus prioritaire des activables. Le contexte de chaque processus est conservé et restauré lorsqu'il devient actif.

La politique d'ordonnancement est variable : Par ordre de priorité. Par partage de temps. Par rotation aléatoire. Pour répartir les utilisations.

11/09/2023

4

Page 8: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

5. LE SEMAPHORE

TACHE B

TACHE A

Le sémaphore permet d'arbitrer l'utilisation d'une ressource exclusive. La première tâche positionne le sémaphore qu'elle trouve libre, utilise l'imprimante, puis libère le sémaphore. Tout autre tâche trouvant le sémaphore positionné dans l'intervalle reste bloquée jusqu'à libération.

6. LE PIPE

TACHE BTACHE A

Le pipe est une file d'octets permettant une transmission entre tâches.7. EVENEMENT / SIGNAL

TACHE BTACHE A1 1

0

Le signal est un événement booléen positionné. La tâche en attente d'une valeur doit dépositionner le booléen, pour permettre une nouvelle utilisation.

D. MULTI-UTILISATEUR

Un système est multiutilisateurs 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.

11/09/2023

5

Page 9: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

E. MONITEUR OU EXECUTIF

Les moniteurs ou exécutifs sont des versions réduites (quelques ko au lieu de quelques centaines de ko) des systèmes d'exploitation sans interpréteur de commande. Toutefois certains proposent en option des produits additionnels qui les hissent au niveau des gros systèmes d'exploitation. Le coeur du système d'exploitation est un moniteur ou noyau exécutif (kernel) 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.

11/09/2023

6

Page 10: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

III. LE TEMPS REEL

A. DEFINITION DU TEMPS REEL

Un système est temps réel s'il 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.

ENVIRONNEMENT

SYSTEMEstimulisaction "rapide"

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.

Celles-ci dépendent souvent du domaine :

Gestion : 1 h à 1 jour. Prévision météo : quelques heures. Humain : 0,1 à 1 secondes. Avion : 10 à 100 ms. Conduite de missile : 1 à 100 ms. Traitement du signal : 10 s.

B. OBJECTIFS DU TEMPS REEL

Parallelisme : pouvoir traiter parallèlement plusieurs fonctions indépendantes. Temps de réponse court : Capacité à traiter des demandes dans un délai garantit

après l'apparition de l'événement. Grande sécurité : Eviter tout problème de conflit d'accès à une ressource. Matériel diversifié : Pouvoir s'adapter aux différents matériels.

C. CARACTERISTIQUES DU 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,

11/09/2023

7

Page 11: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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.

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.

En conclusion, il est toujours possible de trouver une architecture dynamique plus sûre avec un moniteur que sans moniteur.

D. CARACTERISTIQUES D'UN MONITEUR

Les qualités recherchées pour un exécutif temps réel sont :

1. PREEMPTIF

A tout instant la tâche active est la tâche activable de plus forte priorité dès l'apparition de l'événement la rendant activable.

Dans les systèmes non préemptifs, le changement ne peut intervenir que lors du prochain appel système de la tâche en cours (ex windows 3.X).

2. DETERMINISME

Un système est déterministe si son comportement dans le temps est prédictible. Un exécutif temps réel doit garantir des temps d'exécution constant de ses primitives.

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.

11/09/2023

8

Page 12: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

3. LATENCY TIME

Temps de masquage (latency time) le plus faible possible : ce temps est le temps maximum pendant lequel une interruption ne peut être servie.

événementINTERRUPTION

TACHE4. TEMPS DE CHANGEMENT DE CONTEXTE

TACHE 1

TACHE 2

Le temps de changement de contexte doit être le plus faible possible : Temps nécessaire pour changer de tâche active

5. BLOCAGE DU SEQUENCEMENT

TACHE 1

TACHE 2

unlocklock

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)

6. SEQUENCEMENT

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.

11/09/2023

9

Page 13: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

IV. LES SYSTEMES TEMPS REELS

A. LES OS TEMPS REELS

1. UNIX

Traditionnellement, UNIX n'est pas un OS temps réel. Son objectif étant de répartir le plus équitablement possible le CPU sur l'ensemble des tâches, il a tendance à faire varier les priorités des processus afin de favoriser les moins activés.

Parallèlement à ce système coopératif, les nouvelles générations d'UNIX ont ajouté un système de priorité temps réel. C'est le cas de SVR4 (Système V Release 4) et donc de SOLARIS 2 son implémentation sur SUN.

Parallèlement aux processus, les threads permettent des changements de contexte.

2. CHORUS

Chorus est un UNIX temps réel réputé depuis longtemps.

3. LYNXOS

LynxOS est un nouveau venu UNIX-like assez porté sur la compatibilité POSIX.

4. VXWORKS

VXWORKS était à l'origine un simple noyau auquel ont été ajoutés tous les services habituels sous UNIX. Il n'est plus vendu en tant que noyau seul, c'est pourquoi il est placé dans la catégorie OS temps réel. C'est l'OS temps réel probablement leader dans le domaine embarqué. Cet historique le rend plus étranger à UNIX que ses concurents plus récents qui sont de vrais UNIX.

Exécutif temps réel UNIX like carte VME 147 & 167, SPARC, MIPS R3000 Intel 80960Version documentation 5.0Version au 04/94 5.1Version annoncée 5.2

Caractéristiques temps réel : temps de changement de contexte 3us->17 us1 (68040 30 MHz) 256 priorités À égalité de priorité, allocation sur file circulaire

Source compatible UNIX.

Moniteur modulaire promable (taille minimale = 18 ko) à micro kernel Wind 8 ko.

Communications propriétaires, POSIX 1004, POSIX 1004a (version 5.2). : sémaphores binaires, à compteurs, à héritage de priorité

1suspension + réactivation de tâche active

11/09/2023

10

Page 14: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

message queues (fifo de messages à longueur variable) pipe

Disques SCSI compatibles MS-DOS 4.0 ou RT11

Réseau : socket BSD 4.3 raw IP, UDP/IP, stream TCP/IP protocols réseaux de haut niveau rpc, rsh, ftp, nfs (client seulement ?), telnet, rlogin

Outils : shell (interpréteur de commande) propriétaire remote debugger VxGDB compilateur croisé depuis SUN, HP, etc GNU compilateur croisé depuis MSDOS/WINDOWS GreenHills compatible ADA Verdix VADS option windX (XWindow) option stethoscope : moniteur/debugger graphique option winview : moniteur intégré à WIND (surcharge temps +3%)

Prix : Configuration de développement : 146 kf Run time : 5800 frs

5. OS/9

OS/9 offre depuis longtemps des caractéristiques évoluées d'OS lourd, en restant plus souple et temps réel. Il est très apprécié dans les pilotages d'automates, de processus de fabrication, robots, etc.

B. LES MONITEURS TEMPS REEL

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

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

11/09/2023

11

Page 15: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

SCEPTRE2 est une proposition du BNI3 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.

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

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

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

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

2 Standardisation du Coeur des Exécutifs des Produits Temps Réel Européens (1980)3 Bureau d'orientation de la Normalisation en Informatique

11/09/2023

12

Page 16: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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

11/09/2023

13

Page 17: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

V. VRTX

A. PREMIERS CONCEPTS DU NOYAU

Versatile Real Time Executive

1. LES TACHES

Une tâche est un agent actif responsable de l'exécution séquentielle d'un programme.

ENEXECUTION PRETE

ENATTENTE

DORMANTE

SEQUENCEUR

SEQUENCEURattentemailboxqueue...sc_tsuspend

receptionsc_tresume

sc_tdelete

sc_tcreate

sc_tprioritysc_tinquiry

Une tâche comporte un certain nombre d'attributs pouvant être mémorisés dans un bloc de contrôle (TCB) :

IDENTIFICATION 1..255

ETAT

PRIORITE 0..255

REGISTRES

PILE

PCSP

PROCESSEUR

PCSPREGISTRES

TCB

CHANGEMENTDE CONTEXTE

11/09/2023

14

Page 18: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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)

Une tâche de niveau inférieur peut bloquer le schéduling (sc_lock) puis le débloquer après la section critique (sc_unlock).

extern void sc_tcreate(void (*)task(), int tid, int pri, int *err);extern void sc_tdelete(int tid_pri, int code, int *err);extern struct TCB *sc_tinquiry( int*info, int tid, int *err);extern void sc_tpriority(int tid, int pri, int *err);extern void sc_tresume(int tid_pri, int code, int *err); /* code =0 tid / code = 'A' priorité */extern void sc_tsuspend(int tid_pri, int code, int *err);

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 utilisateur3 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

11/09/2023

15

Page 19: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

extern void sc_lock(void);extern void sc_unlock(void);

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

ISR

TABLE DESVECTEURS

VECTEUR IT

TACHEA

TACHEB

SAVE AXUI_ENTER

UI_EXIT

VRTX

TCB A TCB B

message

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.

Comme une ISR sauve le registre AX sans le restaurer, les fonctions interruptions du C ne peuvent être utilisées. Une ISR est donc obligatoirement en assembleur. Cependant l'isr en assembleur peut appeller une fonction C. La fonction assembleur est la suivante :

PROLOG BORLAND.386p

include vrtxvisi.incifndef ??version

?debugmacroendm

publicdll macro namepublic nameendm

$comm macro name,dist,size,countcomm dist name:BYTE:count*sizeendmelse

4 Interrupt Service Routines, elles sont nommées tâches immédiates dans sceptre

11/09/2023

16

Page 20: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

$comm macro name,dist,size,countcomm dist name[size]:BYTE:countendmendif?debugV 301h?debugS "isr.asm"

ISR_TEXT segment byte public use16 'CODE'ISR_TEXT ends

assumecs:ISR_TEXT,ds:ISR_DATAISR_DATA segment word public use16 'FAR_DATA'd@ label byted@w label wordb@ label byteb@w label wordISR_DATA endsISR_TEXT segment byte public use16 'CODE' ; ; void interrupt tst() ;

assumecs:ISR_TEXT,ds:ISR_DATA

PARTIE ACTIVEfontionasm proc far push ax mov ax,UIFENTER int VRTX

push bxpush cxpush dxpush espush dspush sipush dipush bpcall far ptr fonctioncpop bppop dipop sipop dspop espop dxpop cxpop bxmov ax,UIFEXIT

int VRTXfonctionasm endp

extrn fonctionc

11/09/2023

17

Page 21: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

SUITE BORLAND; ?debugC E9; ?debugC FA00000000ISR_TEXT endsISR_DATA segment word public use16 'FAR_DATA's@ label byteISR_DATA endsISR_TEXT segment byte public use16 'CODE'ISR_TEXT ends_s@ equ s@extrn _isrc_appel_interne:far extrn _isrc_appel_externe:far

public _isr_passe_etage public _isr_appel_interne public _isr_appel_externe

end

3. 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).

ISRTIMER

VECTEURIT

UI_TIMER

VRTX

SC_TSLICESC_STIMESC_TDELAYSC_STIMESC_GTIME

cpt 32bits

UI_EXIT

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)

Déclarations extern long sc_gtime(void);extern void sc_stime(long tick);extern void sc_delay(long tick);

11/09/2023

18

Page 22: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

extern void sc_tslice(unsigned int ticks);

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

ISRRECEPTIONCARACTERE

ISREMISSION

CARACTERE

TXRDYDRIVER

ITRECEPTION

ITEMISSION

TAMPON 64 CAR.

TAMPON 64 CAR.

UI_RXCHR

UI_TXRDY

TACHE

SC_GETC

SC_WAITC

SC_PUTC

CONF

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.

Déclarations extern int sc_getc(void);extern void sc_putc(int chr);extern void sc_waitc(int chr, int *err);

11/09/2023

19

Page 23: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

B. DEVELOPPER SOUS VRTX

1. DEVELOPPER SUR CIBLE

VRTX MPVIFX

TNX RTSCOPE CIBLE

RTSCOPE

RTL

APPLI

Hyperlink

RTC STATION

~

VELOCITY

Sur cible, le schéma de développement peut être le suivant : Développer sur une station avec un compilateur croisé (rtc, microtec) en utilisant la

bibliothèque standard C RTL. Transférer le code dans la cible soit via ligne série, soit par réseau tcp/ip (hyper

link).L'application peut utiliser :

Le noyau VRTX. L'extension d'entrée sortie IFX Le debugger RTSCOPE La couche réseau (nécessaire pour le téléchargement réseau) L'extension MPV pour le multi-processing.

2. 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).

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.

11/09/2023

20

Page 24: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

VRTX_INIT

CREATION TACHES...

VRTX_GO

INIT HARD

RESET

VRTX comporte également une table (CVT) contenant les adresses des composants additionnels.

3. DEVELOPPER SUR P.C.

APPLICATION = TACHES + ISR + DRIVERS IFX

RTLBibliothèque C

IFXEntrées/Sortiesdisque/stream

WIXFenêtres

PCX

BIOS

RTSCOPEDebug

~

driver IFX

VRTX

driver VRTXAppel Bios

Autour du noyau VRTX, les composants additionnels sont : IFX : Entrées sorties évoluées disques et stream WIX : Système d'affichage multi-fenêtrés caractère. RTSCOPE : Outil de débug.

Chaque composant additionnels comporte des tâches et/ou des isr qui vont cohabitér avec les tâches de l'application.La bibliothèque RTL permet à une application d'accéder aux entrées-sorties par des appels en C standards. A l'exception de WIX tous ces composants sont standards.

PCX constitue l'adaptation de tous les composants VRTX au matériel P.C. C'est le board support package :

Drivers IFX Accès au DOS

11/09/2023

21

Page 25: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

Drivers VRTX

Ainsi une application peut utiliser en fonction de la portabilité souhaitée : Tout système : La bibliothèque C RTL. Accès disque multi-tâches sous IFX : IFX P.C. + VRTX : WIX Noyau réduit VRTX : drivers VRTX

4. CONTEXTE DES EXERCICES

a) ARCHITECTURE

L'objectif de ce module étant de maîtriser les bases du temps réel, le noyau est suffisant pour celles-ci. Nous nous limiterons donc à une utilisation minimum :

APPLICATION = TACHES + ISR

RTLBibliothèque C

WIXFenêtres

RTSCOPEDebugVRTX

MATERIEL SPECIFIQUE

b) ECRAN

On utilisera le composant WIX afin de découper l'écran du P.C. en au moins deux zones :

VRTX

RTSCOPE

Les entrées sorties se feront dans la fenêtre VRTX lors de l'appel des fonctions standards C.La fenêtre RTSCOPE sera réservée à la mise au point du programme.

Les exercices ou projets s'exécuteront dans le sous-répertoire projet de VRTX.

c) INITIALISATION

PCX qui exécute la séquence de lancement vue plus haut subdivise celle-ci en quatre appel de fonction que doit fournir l'application :

user_init1 : initialisation de matériel spécifique user_init2 : ouverture des fenêtres VRTX et RTSCOPE user_init3 : création objets/tâches vrtx

11/09/2023

22

Page 26: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

user_init4 : P.C. IFX PCX driversLe dernier appel est utilisé lors de la sorte de programme

user_end : restauration du matériel avant retour sous DOS.

L'application doit aussi définir une fonction user_main appellée par la tâche principale et recevant les arguments d'appel comme la fonciton classique main.

ex user_init2void user_init2(){ int err;

/* open VRTX and RTscope windows */dsp_vrtx_window = wiopen(2, 3, 19, 70, (char *)0, 0, WOVRTX, &err); if (err != 0) dsp_C_init_error("Wix VRTX-window open error ", err) ;dsp_rts_window = wiopen(8, 0, 24, 79, (char *)0, 0, WODB, &err); if (err != 0) dsp_C_init_error("Wix RTscope-window open error ", err) ;} /* end of user_init2() */

void user_init4(){int err;

#if (VRTX_screen == WIX_screen) /* select VRTX window */ wiselect(dsp_vrtx_window, WRSECUR, &err); if (err != 0) dsp_C_init_error("Wix VRTX-window select error ", err) ;#else #if (RTSC_screen == WIX_screen) /* select RTscope window */ wiselect(dsp_rts_window, WRSECUR, &err); if (err != 0) dsp_C_init_error("Wix RTscope-window select error ", err) ;#endif}

user_end(err)int err;{

/* INSERT REQUIRED OPERATIONS HERE */ flush_buffs(); /* flush DOS disk buffers, see ifxsprt.asm */ return err;}

11/09/2023

23

Page 27: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

d) CONFIGURATION

Il faut renseigner dans \vrtx\tool.def :

# TOOLDIR defines the path were TURBO tools can be found. TOOLDIR = d:\bc4

ASMDIR = c:\vrtx\tasm

et dans \vrtx\project\makefile :OBJS1 = $(STARTUP) $(STARTUP1) $(PROG)

OBJS2 = autres sources

L'utilitaire CONFIG appli permet la configuration d'une application contenant au moins le fichier appli.c avec la fonction user_main plus le fichier userinit.c.Il permet de paramétrer (fonciton 1 à 12) la configuration de VRTX.Conserver les sélection de IFX, clibnofp.lib (pas de calcul sur des réels), RTSCOPE, WIX.

En fonction 8 Component and DOS configuration : VRTX : Vérifier que les valeurs maximales sont cohérentes avec l'application. IFX et RTSCOPE : laisser les paramètres WIX : Priorité de wix ? DOS : accès concurents ou non ?

En Task Id assignement, conserver les numéros des tâches rtscopes...En IO conserver les sélections screen.Conserver la sélection pas de co-processeur.En sortie de configuration, (15), CONFIG lance la génération des fichiers assembleurs liés à celle-ci et génère l'application sur le fichier makefile.

e) BORLAND IDE

On peut aussi travailler en environnement intégré borland en intégrant dans le projet les éléments suivants :

\vrtx\project\startup.obj : Objet résultat de l'assemblage de startup.asm généré par config.

userinit.c et autres sources. \vrtx\lib\vrtxosc.lib : bibliothèque \vrtx\lib\vrtxlib.lib : bibliothèque générée par config \vrtx\lib\clibnofp : bibliothèque rtl sans flottant borland...\lib\ch.lib : bibliothèque borland

Le projet doit utiliser le modèle HUGE, ne pas incorporer les bibliothèques par défaut (remplacement du démarrage par startup), ne pas introduire de code de vérification de pile.

En cas d'utilisation du makefile, il doit comporter les sélections des outils borland compilateur et assembleur.

11/09/2023

24

Page 28: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

C. AUTRES CONCEPTS DU NOYAU

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

ISR TASK

MAILBOX

SC_PEND

SC_ACCEPT

SC_ACCEPT

SC_POST

32 bits <>0

SC_POST

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 celle-ci 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.

Déclarations :

extern char *sc_accept(char ** mbox, int *err);extern char *sc_pend(char ** mbox, long timeout, int *err);extern void sc_post(char ** mbox, char *msg, int *err);

11/09/2023

25

Page 29: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

2. LA FILE

La file (queue) permet de mémoriser plusieurs messages entre les émetteurs et le récepteur.

ISR TASK

QUEUE (n+1)*32 bits

SC_QPEND

SC_QACCEPT

SC_ACCEPT

SC_QPOST

SC_QJAM

SC_QJAM

SC_QPOST

SC_QCREATE(ID,N)SC_QDELETE(ID)SC_QINQUIRY(ID)

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.

Déclarations :extern void sc_qcreate(int qid, int qsize, int *err); /* priorité */extern void sc_qecreate(int qid, int qsize, int opt, int *err); /* 0=priorité 1=fifo */extern char *sc_qaccept(int qid, int *err);extern char *sc_qinquiry(int qid, int *count, int *err);extern void sc_qjam(int qid, char *msg, int *err);extern char *sc_qpend(int qid, long timeout, int *err);extern void sc_qpost(int qid, char *msg, int *err);

11/09/2023

26

Page 30: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

3. LES GROUPES D'EVENEMENT

Un événement (event flag) est un signal binaire.

ISR

0 1 0

SC_FPOST

TASK

EVENT FLAGET

OU

SC_FPEND

SC_FPOST

ID = SC_FCREATESC_FDELETE(ID)SC_FINQUIRY(ID)

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 sous-ensemble 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.

Déclarations :extern int sc_fcreate(int *err);extern void sc_fdelete(int group_id, int force, int *err); /* force : 0 si vide, 1 delete task pending */extern long sc_finquiry(int group_id, int *err);extern long sc_fpend(int group_id, long timeout, long mask, int opt, int*err); /* 0=or 1=and */extern void sc_fpost(int group_id, long mask, int *err);extern long sc_fclear(int group_id, long, int *err);

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.

11/09/2023

27

Page 31: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

TACHE A

TACHE B

RESSOURCE

1

0SC_SPEND

SC_SPENDSC_SPOST

ID = SC_SCREATESC_SDELETE(ID)SC_SINQUIRY

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éclarations :extern int sc_screate(int sem_init, int opt, int *err); /* opt 0=priorité 1= fifo */extern void sc_sdelete(int sem_id, int opt, int *err); /* opt 0=ssi vide 1=task pending */extern int sc_sinquiry(int sem_id, int *err);extern void sc_spend(int sem_id, long timeout, int *err);extern void sc_spost(int sem_id, int *err);

11/09/2023

28

Page 32: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

5. L'ALLOCATION DYNAMIQUE DE MEMOIRE

SC_PCREATE

SC_PEXTEND

TACHEA

TACHEB

SC_GBLOCK SC_RBLOCK

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

Déclarations :extern void sc_pcreate(int pid, char *paddr, long psize, long bsize, int *err);extern void sc_pextend(int pid, char *paddr, long psize, int * err);extern char *sc_gblock(int pid, int * err);extern void sc_rblock(int pid, char *block, int * err);

11/09/2023

29

Page 33: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

VI. 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 :

DISQUES

FILES BUFFERISEES1. 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.

NOMFICHIER

CACHE

NOMCACHE

NOMPHYSIQUE

SERIE

DRIVER PHYSIQUE

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.

11/09/2023

30

Page 34: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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

11/09/2023

31

Page 35: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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)

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.

11/09/2023

32

Page 36: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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,

E. WIX

Ce composant ne sert que sur P.C. Il consiste en une tâche VRTX qui gère un ensemble de fenêtres alphanumériques se partageant l'écran du P.C. Il est surtout utilisé en interne par VRTX pour l'entrée sortie console et par RTSCOPE pour ses multiples fenêtres de travail.

Dans le cadre du mini-projet, on pourra utiliser les fonctions : ouverture de fenêtre : fenetre_id = wiopen(int ligdeb, int coldeb, int ligfin, colfin, (char

*)titre, int option=0, int flag=WOVRTX, int *err); affichage de chaîne : extern void wiput(int fenetre_id ,char *chaine,int ligne,int

colonne,int couleur=0 , int opt=WPCPOS,int* err);

11/09/2023

33

Page 37: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

VII. 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 inter-

tâ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. Un outil de conception CARDTOOLS 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.

11/09/2023

34

Page 38: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

VIII. LES AUTRES MONITEURS

11/09/2023

35

Page 39: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

IX. ANNEXES

A. PROTOTYPE DES FONCTIONS VRTX

#ifndef TCBB#include "vrtxvisi.h"#endif

TACHESextern void sc_tcreate(void (*)task(), int tid, int pri, int *err);extern void sc_tdelete(int tid_pri, int code, int *err);extern struct TCB *sc_tinquiry( int*info, int tid, int *err);extern void sc_tpriority(int tid, int pri, int *err);extern void sc_tresume(int tid_pri, int code, int *err); /* code =0 tid / code = 'A' priorité */extern void sc_tsuspend(int tid_pri, int code, int *err);extern void sc_lock(void);extern void sc_unlock(void); MAILBOXextern char *sc_accept(char ** mbox, int *err);extern char *sc_pend(char ** mbox, long timeout, int *err);extern void sc_post(char ** mbox, char *msg, int *err); FILEextern void sc_qcreate(int qid, int qsize, int *err); /* priorité */extern void sc_qecreate(int qid, int qsize, int opt, int *err); /* 0=priorité 1=fifo */extern char *sc_qaccept(int qid, int *err);extern char *sc_qinquiry(int qid, int *count, int *err);extern void sc_qjam(int qid, char *msg, int *err);extern char *sc_qpend(int qid, long timeout, int *err);extern void sc_qpost(int qid, char *msg, int *err); EVENT FLAGextern int sc_fcreate(int *err);extern void sc_fdelete(int group_id, int force, int *err); /* force : 0 si vide, 1 delete task pending */extern long sc_finquiry(int group_id, int *err);extern long sc_fpend(int group_id, long timeout, long mask, int opt, int*err); /* 0=or 1=and */extern void sc_fpost(int group_id, long mask, int *err);extern long sc_fclear(int group_id, long, int *err); SEMAPHOREextern int sc_screate(int sem_init, int opt, int *err); /* opt 0=priorité 1= fifo */extern void sc_sdelete(int sem_id, int opt, int *err); /* opt 0=ssi vide 1=task pending */extern int sc_sinquiry(int sem_id, int *err);extern void sc_spend(int sem_id, long timeout, int *err);extern void sc_spost(int sem_id, int *err); HORLOGEextern long sc_gtime(void);extern void sc_stime(long tick);

11/09/2023

36

Page 40: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

extern void sc_delay(long tick);extern void sc_tslice(unsigned int ticks); MEMOIREextern void sc_pcreate(int pid, char *paddr, long psize, long bsize, int *err);extern void sc_pextend(int pid, char *paddr, long psize, int * err);extern char *sc_gblock(int pid, int * err);extern void sc_rblock(int pid, char *block, int * err); ENTREE/SORTIEextern int sc_getc(void);extern void sc_putc(int chr);extern void sc_waitc(int chr, int *err); EXTENSIONSextern void sc_call(int fcode, void * pkt,int *err);

B. 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 1applicatio

nnapplications

1micro 360kf 850kf2micros 650kf 1250kf3micros 900kf 1500kf '

IFX 1application

napplications

1micro 300kf 700kf2micros 540kf 950kf3micros 760kf 1100kf '* attention 68000 68020 = 2 micros

11/09/2023

37

Page 41: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

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 CESAR

PSOS VRTX

Multi processeur nb/option 127 max

pRISM opt.MPV

Taches nombre maximum 1023 64 ? 255Taille Noyau 12 Ko 5 Ko 8 koMultiproc. 00 Ko 10Ko 16 KoE/S 38 Ko Fichiers 16ko 26 KoPerformances fixes ? non ouicalculables ouiTemps de masquage des its en us

? 29 33

max.primitive systeme 300 299? 299chang.de contexte 200? 70 40Supp. de tache ? 233 194avec chang.de tache ? 299 225Changement priorite ? 133 238avec chang.de tache ? 200 278Réception sur file ? 102 84Emission sur file ? 132 85file non vide ? 152 133Positionn.evenement ? 83 85avec chang.de tache 504 205 219Pause depause tache 448 324 525

Les temps ont ete alignes sur cible 68000/68010 a 10 Mhz.

3. PERFORMANCES

Moniteur CESAR PSOS VRTXTime slicing possible non oui ouiSéquencement Circulaire non non ouiBlocage du Séquencement non non ouiNb d'événement dans un 1 15 31groupe combinables ? ? et/ouSémaphores non non Dijkst.Boite aux lettres non non ouiFiles FIFO oui oui ouiavec gestion priorite non oui ouiinsertion LIFO non oui ouiblocs d'e/s oui non nonGestion Mémoire Dynamique

oui oui oui

partitionnée oui possib ouiAssociable a une e/s oui non non

11/09/2023

38

Page 42: présentation vrtx - PSYLONpsylon.free.fr/formatio/doc/vrtx2.doc  · Web view.Fin Table M. INTRODUCTION. Ce cours présente : Les notions de temps réels et d'exécutif temps réel.

Le temps réel - VRTX

Gestion d'Horloge oui oui ouiCadencement oui non nonAttente de delai oui oui ouiTime out intégrés aux appels non

oui oui

4. FONCTIONS

Moniteur CESAR PSOS VRTXEntrees Nombre 255 ? 1e 1s/sorties Taille des blocs varia. ? 1Taille de la file varia. 1 64Entrees en option IOX/sorties tampons

circu.Option gestion de disque

non phile FMX

compatibilitee commandes

Unix

compatibilitee format IBM/PC MSDOS3.3taille max des disques ? 4 gigabufferisation oui ouiFonctions ana.perform. non ? ouicomplement. co processeur

oui ? oui circu.

C. BIBLIOGRAPHIE

Support de cours TEMPS REEL - READY SYSTEMS france Apside technologie

Sceptre : proposition de noyau normalisé pour les exécutifs temps réelVRTX32 user's guide READY SYSTEMSEvaluation des exécutifs multitâches-tâches temps réel et systèmes d'exploitation multitâches-tâches temps réel sur IBM PC ou compatible, LEMAIRE GérardVRTX32:680X0 Timing Reference Software Release 1 Document Number 540011001 May 1987

11/09/2023

39