1 GEN1633 – Systèmes en temps réel Chapitre III – Les processus

1
GEN1633 – Systèmes en temps réel
Chapitre III – Les processus et les processus légers (Threads)
3.1 Rappels (Pour information uniquement)
3.1.1 Les différentes couches d’un système informatique
Ä Couche physique (niveau 0): circuits logiques qui représentent le fondement matériel de
l'ordinateur.
Ä Couche microprogrammée (niveau 1): l'architecture de la couche microprogrammée
constitue l'architecture de base de la machine (micro-architecture ou micromachine). La
programmation au niveau 1 est souvent complexe (contraintes temporelles, particularités des
composants logiques, synchronisation, décomposition d'instructions machine en
microinstructions, etc...), souvent le microprogramme est écrit en ROM.
Ä Couche machine conventionnelle ou traditionnelle (niveau 2): souvent c'est l'architecture
du microprocesseur (registres internes, modes d'adressage, types d'instructions, etc...), ça évite au
programmeur d'aller toucher à la couche microprogrammée.
Ä Couche système d'exploitation (niveau 3): de la même façon qu'un interpréteur tournant au
niveau 1 exécute des programmes de niveau 2, un interpréteur tournant au niveau 2 peut exécuter
des programmes écrits en langage de niveau 3. Cet interpréteur est appelé systèmes d'exploitation
ce qui a conduit à appeler "couche système d'exploitation" le niveau 3.
Ä Couche langage d'assemblage (niveau 4): contrairement aux couche 1, 2 et 3 cette couche
est réalisée par traduction et non par interprétation (traduire un programme en langage source
vers un programme en langage cible, ou programme objet). Le traducteur peut être soit un
assembleur soit un compilateur.
Ä Couche des langages d'application (niveau 5) : des applications souvent écrites en langages
évolués.
2
3.1.2 Structures des systèmes d'exploitation temps réel (RTOS)
Ä Les systèmes temps réel englobent les deux parties matérielle et logiciel qui donneront le
caractère "temps réel" au système.
Ä Au niveau du logiciel le système doit contenir une couche système d'exploitation capable de
gérer efficacement la notion de temps et la répartition des tâches sur un microprocesseur ou un
microcontrôleur.
Ä En plus les programmes écrits pour ce système, doivent l'être dans un langage orienté temps
réel.
Ä Les systèmes temps réel sont caractérisés par le fait qu'une mauvaise gestion du temps peut
provoquer des conséquences catastrophiques (penser à une instrumentation embarquée dans un
avion).
Ä Une application temps réel multitâche est une application où la gestion critique du temps doit
être réalisée simultanément sur plusieurs tâches.
Ä Le noyau temps réel multitâche (appelé RTOS) est le programme qui doit s'assurer de la
meilleure gestion des temps critiques.
3
Ä L'utilisation d'un RTOS souvent simplifie la conception du système temps réel, en subdivisant
les applications en multiples éléments indépendants appelés tâches.
Ä Il existe actuellement une centaine de RTOS, fonctionnant sur des microprocesseurs et
microcontrôleurs 8, 16 et 32.
Remarque:
"Un système est dit Temps Réel lorsque l'information après acquisition et traitement est encore
pertinente". Cela veut dire que dans le cas d'une information arrivant de façon périodique, le
temps d'acquisition/traitement doit être inférieur à la période de rafraîchissement de cette
information. Pour cela, un RTOS doit être déterministe et préemptif pour donner la main durant
le prochain traitement à la tâche de plus forte priorité prête.
Exemple d'un RTOS: Le
μ
C/OS II
Ä
Caractéristiques de MicroC/OS-II
` Ouvert, code source disponible
` Portable
` ROMable donc encapsulable dans un produit
` Aux fonctionnalités ajustables
` Multitâches et préemptif
` Interruptible
` Déterministe
` Fiable et robuste
Hardware
Operating
System
User Programs
Configuration typique d’un OS
Hardware
Including Operating
System Components
User Program
Configuration typique embarquée
4
Ä
Structure de MicroC/OS-II
- MicroC/OS-II est une bibliothèque qui est liée avec l’application à développer
- Les services de MicroC/OS-II sont appelés depuis l’application comme des fonctions
- Code source divisé en 2 sections
- indépendant du processeur
- dépendant du processeur
Remarque : dans le noyau µC/OS, l'utilisateur dispose de 64 tâches (56 réellement disponibles)
où chaque degré de priorité correspond à une tâche, c’est-à-dire que 2 tâches ne peuvent pas avoir
le même degré de priorité (pas de "round-robin" ou "méthode du tourniquet").
Les caractéristiques essentielles du noyau temps réel µC/OS sont les suivantes :
Ä Création et gestion de 63 tâches maximum.
Ä Création et gestion de sémaphores binaires et comptés.
Ä Fonction d'attente de tâche.
Ä Changement de priorité des tâches.
Ä Effacement de tâches.
Ä Suspension et continuation de tâches.
Ä Envoi de messages depuis une routine d'interruption (ISR) ou d'une tâche vers une autre tâche.
Les tâches peuvent ainsi communiquer avec d’autres tâches (grâce aux sémaphores, boîtes aux
lettres, files d’attentes…) ou bien avec des périphériques grâce aux ISR (Routine de Service
d’Interruption)
Ä
Notion de temps réel
La notion de temps réel correspond à la façon dont les tâches sont exécutées dans le temps : le
temps d'exécution des tâches étant déterminant pour la commutation des tâches, le noyau temps
réel exécute en premier les tâches dont le temps d'exécution est critique.
Le fonctionnement du noyau préemptif est illustré à la figure suivante :
5
Illustration d’un noyau préemptif
Une tâche de faible priorité est exécutée en (1) alors qu’une interruption asynchrone intervient en (2).
Le microprocesseur exécute alors une tâche prête de degré plus important que la tâche précédente (3).
À la fin de la routine d'interruption, l'ISR invoque un service du noyau (4) qui décide de retourner à la
tâche de plus haute priorité et non à la tâche précédente de plus basse priorité.
La tâche de plus haut degré s'exécute dans (5) de manière normale à moins qu'une nouvelle
interruption n'arrive.
À la fin de la tâche de haute priorité, le noyau reprend l'exécution de la tâche de plus faible priorité
qui est prête depuis son interruption (6).
Le noyau garantit que les tâches dont le temps d'exécution est critique sont effectuées en premier
(noyau préemptif).
Remarque : Un noyau temps réel assure principalement deux fonctions, l'ordonnancement et le
changement de contexte. L'ordonnancement permet de déterminer quelle tâche prête a le plus haut
degré de priorité.
Quand une tâche de plus haute priorité doit être exécutée, le noyau doit sauvegarder toutes les
informations nécessaires de la tâche en cours d'exécution afin de permettre une éventuelle
continuation. Les informations sauvegardées (appelées contexte de la tâche) sont généralement les
registres, la pile et le pointeur de pile de la tâche qui va être suspendue.
Lors de l'exécution d'une nouvelle tâche à un plus haut degré de priorité, le contexte de la nouvelle
tâche est chargé puis l'exécution reprend là où elle s'était interrompue.
1 / 36 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !