Fichier Cours TR GLSR 09 Chap1 Rc1
Fichier Cours TR GLSR 09 Chap1 Rc1
Fichier Cours TR GLSR 09 Chap1 Rc1
Christophe DOIGNON
Maître de Conférences à l’ENSPS
(membre de l’IEEE Computer Society )
http://lsiit-cnrs.unistra.fr/avr/~christophe 1
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Bibliographie
2
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Plan du cours
Chapitre 1 : Généralités, concepts et terminologie
• Les systèmes temps réels : définition, terminologie et contraintes temporelles
• Modèles de tâches (états, contexte)
• Architecture logicielle des processus informatiques – mémoire virtuelle
• Exemples de quelques SETR
Chapitre 1
Généralités, Concepts
et
Terminologies
4
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
DEFINITION (tentative)
• Il se caractérise non seulement par la justesse des calculs mais aussi par temps
nécessaire pour fournir le résultat d’un ensemble de traitements.
5
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
• On parle de Temps Réel dur (Hard Real Time) quand les événements traités trop
tardivement ou perdus provoquent des conséquences catastrophiques pour la bonne
marche du système (perte d ’informations cruciales, plantage…).
• Un système d ’exploitation est dit Temps Réel dur s’il est capable de répondre à des
sollicitations ou événements (internes ou externes) dans un temps maximum connu.
• On parle de Temps Réel mou (Soft Real Time) quand les événements traités trop
tardivement ou perdus sont sans conséquence catastrophique pour la bonne marche
du système. On ne garantit qu’un pourcentage moyen d’utilisation du temps CPU.
• Les systèmes à contraintes temporelles souples ou molles (soft real time) acceptent
des variations dans le traitement des données. On parle alors de Qualité de Services.
– exemple des systèmes multimédia : si quelques images ne sont pas affichées, cela
ne met pas en péril le fonctionnement correct de l'ensemble du système.
7
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
CLASSIFICATION
• Temps réel dur (hard real-time) : le non respect des contraintes temporelles entraîne
la faute du système.
– exemple: contrôle de trafic aérien, système de conduite de missile, ...
• Temps réel souple (soft real-time) : le respect des échéances est important mais le
non respect de toutes éles chéances ne peut pas occasionner de graves conséquences.
– exemple: système d'acquisition de données pour affichage
REMARQUES
8
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
UTILISATION DU TEMPS
Au sein d'une application ou d'un système temps-réel, il faut pouvoir gérer le temps
(horloge). Le temps sera utilisé de plusieurs façons:
– Soit en définissant la date à laquelle une action doit être commencée
– Soit en définissant la date à laquelle une action doit être finie
REMARQUES
PREEMPTION
Un système d’exploitation est dit à noyau préemptif (ou aussi à réquisition -
preemptive scheduling – le processus du système d’exploitation qui contrôle tout)
lorsqu’aucune requête (appel système) est nécessaire pour effectuer l’attribution
du processeur à un processus. C’est le système d’exploitation qui interrompt ou
reprend l’exécution des processus informatiques.
Mono- Multi-
Système Codage Mono-tâche Multitâche
utilisateur utilisateur
DOS 16 bits X X
13
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
TYPE DE TACHES
15
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
16
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Un noyau temps réel (NTR) est le minimum logiciel pour pouvoir faire du
temps réel : ordonnanceur, gestion de tâches, communication inter-tâches.
17
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
18
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
DETERMINISME (temporel)
19
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
TT ou ET ?
Un système informatique peut être piloté par le temps (TT - Time Triggered) et
disposer alors d’un cadencement par horlogerie ou bien être piloté par événements
(ET - Event Triggered). L’approche TT à l’avantage d’inclure les systèmes distribués
déterministes. En effet, comme le temps physique est l’élément de synchronisation
de tous les traitements, ils peuvent être effectués sur différents calculateurs.
L’approche ET est plus simple à mettre en œuvre, généralement pour une
application spécifique dont l’exécution est sur une machine locale.
20
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
21
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Soient Te0, Te1, Te2 les contraintes de temps liées à la tâche de fond et aux
événements.
23
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
ARCHITECTURE LOGICIELLE
Un processus/tâche est tout ou partie d'un programme binaire en exécution.
L'exécution signifie que les instructions du programme sont traitées par le(s)
processeur(s) et que des requêtes à d'autres ressources communes (mémoire,
entrées/sorties) sont effectuées.
Un processus est composé de zones en mémoire (et d’un bloc de contrôle/ou
en-tête) :
- une zone pour les instructions (zone partageable),
- une zone pour les données statiques (zone partageable),
-une zone pour les données dynamiques (zone partageable privée) dont une ou
plusieurs piles (zones non partageables).
25
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
FILS D’EXECUTION
Un processus peut être décomposé en plusieurs activités ou fils d’exécution
(threads). Généralement dans les SE actuels, à une tâche correspond un fil
d’exécution.
L’ordonnanceur du SE gère les threads/tâches. La notion de processus définit
un espace d’adressage protégé dans lequel s’exécute au moins une tâche (le
main thread) qui est activé quand le processus est lancé. Le processus se
termine quand la dernière tâche qu’il contient se termine.
Comme les threads se partagent des ressources communes aux processus, il y
a lieu de protéger certains accès aux données.
ARCHITECTURE LOGICIELLE
Zones composant
un processus
27
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
/**************************************
prog0.c
**************************************/
30
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
33
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
TEMPS de LATENCE
La gestion des entrées/sorties peut générer des « temps morts » car une tâche
peut être bloquée en attente d'accès à un élément d'entrée/sortie. La gestion des
interruptions reçues par une tâche n'est pas optimisée sur tous les SETR. Le
temps de latence caractérise le temps maximum écoulé entre la réception de
l'interruption et son traitement garanti par le système. C’est une caractéristique
importante d’un SETR.
GIGUE (JITTER)
34
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
EXTENSION POSIX
La complexité des systèmes et l'interopérabilité omniprésente nécessitent une
standardisation de plus en plus grande tant au niveau des protocoles utilisés
que du code source des applications. Même si elle n'est pas obligatoire,
l'utilisation de systèmes conformes à POSIX est de plus en plus fréquente.
35
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
MEMOIRE VIRTUELLE
Possibilité d’exécuter des programmes dont la taille est bien supérieure à celle
de la mémoire physique.
Sur les ordinateurs actuels, l’espace mémoire virtuel projeté pour un processus
peut atteindre plusieurs Go (32 bits).
36
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
37
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
38
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
• RTEMS (Real-Time Executive for Multiprocessor Systems) est un SETR libre pour
les systèmes embarqués (http://www.rtems.com).
Il permet de développer des programmes dans lesquels le temps de réponse et la
réactivité sont des contraintes fortes (temps-réel dur). Il a été porté sur de
nombreux processeurs (ARM, i386, m68k, MIPS, PowerPC) et est très complet.
Caractéristiques :
- conforme à la norme POSIX 1003.1b (API)
- système multitâches incluant les multi-activités (threads),
- supporte les systèmes multiprocesseurs homogènes ou non,
- supporte le pilotage par événement,
- ordonnancement préemptif basé priorités,
- supporte l’ordonnancement RM (rate-monotonic scheduling),
- communication and synchronisation entre tâches
- héritage de priorités,
- gestion des réponses aux interruptions,
- supporte l’allocation dynamique de la mémoire
- pile TCP/IP
39
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
• VxWorks est aujourd'hui l'exécutif temps réel le plus utilisé dans l'industrie.
VxWorks est fiable, généralement utilisé dans les systèmes embarqués et porté sur
un nombre important de processeurs (PowerPC, 68K, ColdFire, MCORE, 80x86,
Pentium, i960, ARM, StrongARM, MIPS, SPARC, NECV8xx,…).
Un point fort de VxWorks a été le support réseau (sockets, NFS,...) dès son
apparition. VxWorks est également conforme à POSIX 1003.1b.
Caractéristiques :
- noyau TR multitâches préemptif avec ordonnancement round robin,
- faible temps de latence,
- mémoire protégée – permet d’isoler les applications utilisateurs du noyau,
- support des multi-processeurs,
- communication inter-tâches,
- implémente l’exclusion mutuelle par sémaphores,
- héritage de priorités,
- gestion de file de messages locales et distribuées
- système de fichiers,
- pile TCP/IP IPV6
- latence moyenne de 1.7 ms, latence max de 6.8 ms sur Pentium 200 MHz
(http://www.windriver.com)
40
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
• QNX est un SETR adapté aux applications critiques. Développé par QNX
Software Systems, sa structure est de type Unix et il est compatible POSIX.
On le retrouve entre autres dans le développement de logiciels, le contrôle de
robots industriels et les ordinateurs embarqués. Son micro-noyau Neutrino peu
gourmand en ressource confère à QNX des capacités temps-réel très
performantes avec un temps de latence très faible (0.55 µsec sur un Pentium III).
Il dispose d’une interface graphique nommée Photon (version 4.x). Le temps de
commutation de tâches est très faible (< 1 µsec)
Caractéristiques :
- supporte la norme POSIX 1003.1b.
- micro-noyau Neutrino,
- zone mémoire protégée (Runtime Memory protection),
- multi-tâches préemptif,
- micro-GUI Photon,
- supporte les processeurs x86, SMP jusqu'à 8 processeurs,
- système de fichiers.
41
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
• mC/OS-II est un exécutif temps réel destiné à des environnements de très petite
taille construits autour de microcontrôleurs de type Freescale 68HC11. Il est
maintenant disponible sur un grand nombre de processeurs et peut intégrer des
protocoles standards comme TCP/IP (µC/IP) pour assurer une connectivité IP sur
une liaison série par PPP.
Caractéristiques :
- écrit entièrement en langage C,
- support de nombreux micro-processeurs et micro-contrôleurs (Atmel, ARM, Freescale, x86,
Motorola, NEC, MicroChip, OpenRISC,…),
- bus CAN et MOD-bus,
- exécutif préemptif basé priorités,
- support de TCP/IP et USB,
- support d’un système de fichier (µC/FS),
- nécessite peu de mémoire (quelques Ko),
-il est utilisable gratuitement pour l'enseignement.
(http://micrium.com)
42
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Caractéristiques :
- Windows CE peut fonctionner en RAM ou exclusivement en ROM,
- ordonnancement préemptif à 256 niveaux de priorités fixes,
- temps de latence déterministe des interruptions,
- supporte la communication sérielle, Bluetooth, Ethernet (TCP/IP), wifi,
- gestion des fichiers (exFAT),
- système 32 bits (2 Go pour le noyau, 2Go espace virtuel/réel projeté pour un ou plusieurs
processus sur espace utilisateur),
- jusqu’à 32768 processus,
- développement d’applications avec Embedded Visual C ou WinDev Mobile
43
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Linux n’est pas un SETR dur car le noyau Linux possède de longues sections de
code où tous les événements extérieurs sont masqués (non interruptibles) et le
noyau Linux n’est pas préemptible durant toute l’exécution d’un appel système
(structure monolithique) par un processus et ne le redevient qu’en retour d’appel
système (mode utilisateur – user mode). Le noyau Linux n’est pas préemptible non
plus durant le service d’une interruption (ISR - Interrupt Software Routine). La
routine ISR acquitte l’interruption puis traite les données de façon non préemptive
immédiatement avant de retourner en mode utilisateur.
Linux n’est pas un SETR dur car en cas d’occurrence d ’une interruption durant
l’exécution d ’un appel système en mode noyau, le traitement des données
(appelé BH – Bottom Half) programmé par l’ISR et éventuellement les autres BH
des autres ISR) ne sera exécuté qu’à la fin de l’exécution complète de l’appel
système d ’où un temps de latence important et non borné.
44
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Le noyau Linux standard peut être considéré comme Temps Réel mou par
définition si un temps de latence de l ’ordre de la centaine de ms ou plus
convient.
Il existe des solutions Linux Temps Réel dur pour un temps de latence de
quelques dizaines de μs (RTLinux, RTAI, Xenomai). Entre les deux, il existe des
solutions Linux Temps Réel mou par application de patchs dits préemptifs (RT-
Fedora Cora) sur un noyau Linux standard pour une latence de quelques
centaines de μs. Ainsi deux patchs (Prempt Kernel et Low latency) ont été
implémentés dans le noyau 2.6 de Linux.
45
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
Caractéristiques :
- système préemptif, ordonnanceur à priorités fixes,
- supporte plusieurs processeurs (SMP),
- supporte les architectures x86, PPC Alpha (DEC), MIPS, StrongARM, …
- autorise la communication et synchronisation IPC (Inter Process Communication : tubes,
files de messages, sémaphores, mémoire partagée,…),
- communication entre processus utilisateurs et noyau (tâches temps réel) par FIFO,
mémoire partagée ou signaux,
- noyau Linux est alors une tâche de faible priorité (idle task).
46
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
• RTAI/ADEOS est un produit Open Source basé sur RTLinux qui intègre la gestion
des nombres à virgules flottantes. Les développeurs de RTAI ont récemment fait
un effort particulier sur une extension appelée LXRT (LinuX Real Time) permettant
de développer des tâches temps réel dans l'espace utilisateur et non plus dans
l'espace noyau.
http://www.rtai.org
47
Les Systèmes Temps Réels - Ch. DOIGNON ENSP Strasbourg (Edition 2009-2010)
48