46
Systèmes d'exploitation Temps Réel

Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

Systèmes d'exploitation Temps Réel

Page 2: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 2

Plan du cours● fonctionnalités d'un système d'exploitation● fonctionnalités d'un système d'exploitation temps réel● exemples

Page 3: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 3

système d'exploitation

● un programme qui permet à un utilisateur « ordinaire » d'accéder à toutes les fonctionnalités du processeur :

➢ à la CPU➢ à la mémoire➢ aux fichiers➢ aux périphériques ➢ au réseau➢ etc...

● cache la complexité des opérations● permet d'accéder à des ressources privilégiées sans avoir

besoin de droits spéciaux (et dangereux...)

Page 4: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 4

système d'exploitation

● suivant le contexte de leur utilisation, on trouve➢ les OS simple utilisateur

✔ par opposition aux OS multi-utilisateurs➢ les OS mono-tâches

✔ par opposition aux OS multi-tâches✘ préemptif✘ ou coopératifs

➢ les OS distribués✔ gérant les ressources de plusieurs machines reliées par un

réseau➢ les OS embarqués➢ les OS temps réels

● ils peuvent être➢ généralistes

✔ fonctionnant souvent en temps partagé➢ spécialisés

✔ développés pour un domaine restreint d'applications

Page 5: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 5

exemples de systèmes d'exploitation

● OS généralistes➢ Windows➢ Linux (Fedora, Debian, Ubuntu, etc...)

● OS embarqués➢ uClinux➢ Windows CE

● OS temps réels➢ VxWorks➢ Linux + patch PREEMPT-RT➢ Xenomai

● OS spécialisés➢ Android➢ BlackberryOS➢ iOS➢ OSEK/VDX (automobile)

Page 6: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 6

systèmes d'exploitation temps réels

● un système d'exploitation avec des propriétés particulières liées à la nature des applications qu'il contribue à mettre en œuvre

➢ mécanismes « standards » pour la gestion des ressources (CPU , mémoire, etc...)

➢ mécanismes et outils spécifiques pour assurer✔ la prédictibilité du comportement ✔ le respect des échéances

✘ ordonnancement✘ gestion du temps avec une précision compatible avec l'échelle

de temps de l'application

Page 7: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 7

services attendus d’un RTOS

● gestion des activités (threads)➢ création➢ suspension➢ destruction

● gestion du temps➢ horloges➢ timers

● communication et synchronisation➢ files de messages➢ mémoire partagée➢ sémaphores, mutexes, variables conditionnelles

Page 8: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 8

services attendus d’un RTOS

● notifications asynchrones➢ signaux, événements

● gestion de la mémoire➢ mémoire virtuelle➢ verrouillage de la mémoire➢ protection de la mémoire

● entrées-sorties➢ open➢ read➢ write

directs ou asynchrones● gestion du réseau

Page 9: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 9

la norme POSIX

● les services sont fournis par des fonctions spécifiques du système d'exploitation

● la norme POSIX propose une interface assurant la portabilité des applications

➢ Portable Operating System Interface➢ dans un environnement à la UNIX➢ développée par l'IEEE

● pour le temps réel ➢ POSIX1.b

✔ ordonnancement✔ signaux✔ timers, horloges✔ communication

➢ POSIX1.c✔ threads

Page 10: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 10

architecture d'un RTOS

● dans la plupart des cas ➢ un noyau ou micro-noyau fournissant les fonctions de base➢ des couches logicielles fournissant les fonctions plus

élaborées

Matériel

gestion des tâches, IPC, temps, interrupts, etc...

interruptionsextérieures

appelssystèmes

exceptionshw/sw

interruptionshorloge

Espace utilisateur

Espace noyau

Page 11: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 11

prise de contrôle par le noyauInterruptionsextérieures

exceptionshw/sw

appelssystèmes

interruptionsde l'horloge

Immediateinterruptservice

appel àl'ordonnanceur

Trap

switch

create_threadsuspend_threaddestroy_thread...create_timertimer_sleeptimer_notify...openread...etc...

retour d'exception

Services liésau temps et

ordonnanceur

Noyau

Page 12: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 12

appels systèmes

● fonctions exécutées par le noyau au nom d'une tâche utilisateur

➢ permettent d'accéder de façon « sûre » à des ressources privilégiées

● implique un changement de contexte d'exécution➢ sauvegarde du contexte d'exécution de la tâche➢ passage de la CPU en mode privilégié (« noyau »)

● une fois la fonction terminée➢ le noyau exécute un « retour d'exception »➢ la CPU repasse en mode « normal »➢ l'ordonnanceur est appelé et la tâche de plus haute priorité

prend la CPU● dans beaucoup de processeurs embarqués

➢ pas de mode privilégié➢ l'appel système est traité comme une procédure ordinaire

Page 13: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 13

services liés au temps

● l'ordonnancement des activités est au cœur du travail du noyau

➢ mis en œuvre périodiquement et dès qu'une tâche se termine

● l'activation périodique de l'ordonnanceur est provoquée par une horloge dédiée (pas celle de la CPU)

➢ génère une interruption à chaque tick (~ milliseconde)● à chaque interruption, le noyau

➢ gère tous les timers, en déclenchant éventuellement les actions liées aux timers qui viennent d'expirer

➢ gère les budgets de temps d'exécution des tâches ➢ met à jour la liste des tâches prêtes et invoque

l'ordonnanceur

Page 14: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 14

interruptions extérieures

● le plus souvent dues à l'interaction avec du matériel➢ occurrences d'événements externes liés à des activités

sporadiques dues à des entrées/sorties✔ capteurs, interfaces réseaux, périphériques (disques)

➢ temps de réponse très variables● prise en charge par la CPU en passant par un mode

spécial « interruption »➢ niveaux de priorités dépendant de l'origine de l'interruption➢ désactivation de la prise en compte des interruptions➢ sauvegarde du contexte d'exécution et branchement à un

point spécial de l'OS➢ réactivation des interruptions et exécution d'une routine

dédiée (ISR)➢ reprise du cours normal d'exécution

Page 15: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 15

interruptions extérieures

● si une interruption de priorité supérieure se produit pendant l'exécution de l'ISR, elle est prise en charge immédiatement par le système

➢ sinon, on attend la fin du traitement de l'interruption en courssystem shutdown priority

power down priorityclock interrupt priority

highest interrupt priority

lowest interrupt prioritydispatcher/scheduler priority

highest thread priority

lowest thread priority

other interrupt priorities

other interrupt priorities

Page 16: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 16

interruptions extérieures

● en cas de partage de la même ligne d'interruptions (fréquent sur les systèmes embarqués)

➢ polling des dispositifs qui partagent la ligne✔ le dispositif responsable de l'interruption se signale à l'OS

➢ ou bien utilisation d'un vecteur d'interruption✔ le dispositif responsable passe à l'OS un « vecteur »

contenant l'adresse spécifique à laquelle se brancher

● le plus souvent l'ISR ne traite pas complètement l'interruption

➢ temps le plus court possible dans le mode interruption➢ réveil d'une tâche dédiée

✔ dans l'espace noyau ou utilisateur✔ ordonnancée

Page 17: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 17

services liés au temps

● au moins une horloge présente dans les RTOS➢ à ne pas confondre avec l'horloge de la CPU➢ dans les systèmes POSIX : CLOCK_REALTIME

● pour chaque horloge➢ compteur➢ liste de timers➢ traitant d'interruption (handler) pour incrémenter le compteur

et voir quels timers ont expiré● résolution

➢ liée à la capacité à traiter les interruptions➢ de 10 ms à quelques centaines de µs➢ peut être très améliorée dans certaines architectures en

utilisant l'horloge de la CPU (Time Stamp Counter)● POSIX1.b : chaque thread/process peut avoir ses propres

horloges et timers, basés sur des temps absolus ou relatifs, synchrones ou asynchrones

Page 18: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 18

services liés à l'ordonnancement

● implémentation d'algorithmes d'ordonnancement➢ algorithmes à priorités fixes

✔ SCHED_FIFO✔ SCHED_RR

➢ algorithme à priorités variables✔ EDF

➢ blocage de la préemption✔ le plus souvent par inhibition de l'ordonnanceur✔ pendant un temps le plus court possible

➢ gestion des serveurs de tâches apériodiques

Page 19: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 19

communication et synchronisation

● fonctionnalités essentielles pour l'activité des tâches➢ communication

✔ échange d'informations de contrôle✔ échange d'informations de données

➢ synchronisation ✔ définir le moment et les conditions où ces échanges peuvent

avoir lieu

Page 20: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 20

communication et synchronisation

● communication par files de messages➢ simple et efficace➢ possibilité de communiquer dans un environnement

distribué➢ possibilité de synchronisation par des mécanismes

d'écriture et de lecture bloquants➢ possibilité de notification asynchrone d'écriture dans une file

vide➢ possibilité de définir des niveaux de priorité des messages➢ possibilité d'implémenter un protocole d'héritage de priorité

● communication par mémoire partagée➢ très rapide➢ nécessite des moyens de synchronisation➢ possible de communiquer dans un environnement distribué

(projection de fichiers sur un disque)➢ complexe et très risqué !...

Page 21: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 21

communication et synchronisation

● mécanismes de synchronisation➢ essentiels dans un environnement multithreadé

● plusieurs mécanismes➢ sémaphores➢ mutexes➢ variables conditionnelles➢ verrous lecteurs/écrivain

● peuvent permettre la mise en place des protocoles d'héritage de priorité ou de priorité plafonnée pour prendre en compte les problèmes d'inversion de priorité ou de deadlock

Page 22: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 22

notification par événement

● nécessaire de notifier de façon asynchrone l'occurrence de faits importants

➢ expiration d'un timer➢ réception d'un message➢ terminaison d'une entrée-sortie asynchrone➢ etc...

● le plus souvent (POSIX) par le mécanisme de signaux➢ Asynchronous Procedure Calls sous Windows

● notification par un mécanisme analogue à celui des interruptions

➢ quand le thread est notifié par un signal ✔ il interrompt le cours de son exécution✔ le processeur passe en mode interruption✔ un traitant (handler) exécuté✔ le processeur repasse en mode normal et invoque

l'ordonnanceur

Page 23: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 23

notification par événement

● la notification peut aussi s'effectuer de façon synchrone➢ le thread qui attend l'événement se bloque jusqu'à

l'occurrence du signal● limitations des signaux

➢ pas nombreux➢ pas de mise en queue➢ pas de déterminisme dans l'ordre de prise en compte➢ ne transportent pas d'information

● en partie résolu par les signaux temps réels de POSIX

Page 24: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 24

les RTOS du marché

● il existe de nombreux systèmes d'exploitation ayant des propriétés conformes à la liste des fonctionnalités que nous venons de voir

● deux grandes catégories➢ OS généralistes

✔ VxWorks✔ Xenomai (Linux)✔ QNX✔ LynxOS

➢ OS spécialisés, développés dans le cadre d'un secteur d'activité déterminé (télécommunications, avionique, automobile, défense...)

✔ OSEK/VDX✔ iOS✔ Android

● ils peuvent être ouverts ou propriétaires

Page 25: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 25

les RTOS du marché

● motivations pour des systèmes généralistes➢ la plupart des applications ont besoin de services

"généraux"✔ accès à des fichiers✔ accès au réseau

➢ souci de minimiser les phases de développement✔ minimiser les coûts✔ réutilisation de composants

➢ souci de portabilité des applications, indépendance vis-à-vis de la plate-forme d'exécution

Page 26: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 26

les RTOS du marché

● motivations pour des systèmes spécialisés➢ performances

✔ adéquation au matériel utilisé➢ utilisations très spécifiques➢ marché captif

✔ automobile✔ avionique✔ télécoms

➢ quand le coût n'est pas un argument...

Page 27: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 27

VxWorks

● RTOS propriétaire produit par Wind River (filiale de Intel)➢ le plus utilisé dans le monde de l'embarqué➢ rendu célèbre par la mission Pathfinder sur Mars➢ équipe la plupart des missions NASA (Curiosity)➢ dernière version : VxWorks 7 (février 2014)

● peu d'informations sur l'architecture de l'OS➢ non UNIX, mais interface conforme à POSIX➢ construit autour d'un micronoyau (WIND)➢ les applications, les protocoles de communication sont

complètement séparés du noyau✔ évolution du système plus facile et sûre

➢ accent mis sur la connectivité➢ supporte les architectures multiprocesseurs, symétriques et

asymétriques, aussi bien que monoprocesseur➢ supporte les architectures avec ou sans MMU

Page 28: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 28

VxWorks

● faible empreinte mémoire➢ 20 kB pour le micronoyau➢ adaptable à la configuration utilisateur

● disponible sur de nombreuses architectures➢ ARM (9, 11)➢ Intel Pentium (2, 3, 4, M)➢ Intel XScale (IXP425, IXP465)➢ MIPS (4K, 5K, ...)➢ PowerPC ➢ SuperH (4, 4a)

Page 29: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 29

Linux

● Linux n'est pas un RTOS● points forts

➢ fiable➢ bon marché➢ performant➢ portable (conforme à POSIX)➢ ouvert aux autres systèmes

● points faibles➢ empreinte➢ opensource (licence GPL)

● il existe des solutions pour faire de Linux un RTOS :➢ adjonction d’un co-noyau temps réel➢ modifier Linux pour avoir un noyau entièrement préemptible

Page 30: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 30

Linux

● approche « noyau entièrement préemptible »➢ modifier le noyau pour que les tâches non temps réel et

dont les temps d’exécutions ne sont pas connus n’interfèrent pas avec les tâches temps réel

➢ complexe (le noyau est gros)➢ mais seuls le cœur du noyau et quelques pilotes doivent

être modifiés (travail d’experts)➢ patch PREEMPT_RT

Real Time Linux Wiki (https://rt.wiki.kernel.org/)✔ prise en compte des interruptions par des threads noyaux✔ implémentation de l'héritage de priorité✔ remplacement des spinlocks par des mutex✔ mise en place de compteurs à haute précision pour exprimer

les délais et les échéances➢ approche généralement suffisante pour le temps réel mou

ou ferme

Page 31: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 31

Linux

● approche « co-noyau »➢ solution « classique » (a existé même pour Windows : RTX)➢ impossible de faire confiance au noyau GPOS pour les

aspects temps réels ✔ délègue ceux-ci à un noyau spécialisé✔ le noyau Linux continue à servir les tâches classiques

➢ le noyau temps réel intercepte toutes les interruptions matérielles et les traite avant de les passer éventuellement au noyau Linux (PIC virtuel)

➢ Linux fonctionne avec une priorité inférieure à celle du noyau temps réel

➢ mais✔ nécessité de porter sur le noyau temps réel tous les pilotes

dont on attend une réponse temps réel✔ les appels aux fonctions de la glibc peuvent avoir des

latences importantes

Page 32: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 32

Linux

➢ plusieurs approches✔ support pour l’exécution des tâches temps réel dans l’espace

utilisateur✘ Xenomai✘ RTAI

✔ tâches temps réel uniquement dans l’espace noyau (modules)

✘ RTLinux/GPL

Page 33: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 33

Xenomai

● basé sur les spécifications ADEOS (Adaptive Domain Environment for Operating Systems) de Karim Yaghmour

● projet initialement créé pour faciliter le portage des applications temps réel vers un RTOS de type Linux (virtualisation)

Page 34: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 34

Xenomai

● abstraction des propriétés communes des RTOS traditionnels ➢ couche générique H/W (HAL) et S/W (SAL)➢ « peaux » pour émuler les RTOS traditionnels

I-PipeI-Pipe

SAL/HALSAL/HAL

couche générique temps réel(Xenomai core)

couche générique temps réel(Xenomai core)

interface appels systèmes Linuxinterface appels systèmes Linux

VxWorksVxWorks RTAIRTAI VRTXVRTX POSIXPOSIX ......

applications dans l’espace utilisateur

applications dansl’espace noyau

(pilotes)

Page 35: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 35

Xenomai

● « interrupt pipeline » pour organiser la distribution des interruptions de façon à ce que le noyau Linux ne retarde pas leur prise en compte par le RTOS

➢ implémentation de ADEOS➢ organise un ensemble de domaines connectés par le

pipeline✔ partagent le même espace d’adresses✔ implémentés sous forme de module

Interruptionset traps

Xenomai(primaire)

bouclier àinterruptions

Linux(secondaire)

Page 36: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 36

Xenomai

● deux types de threads peuvent coexister :➢ threads contrôlés par l'ordonnanceur du noyau Xenomai

(threads temps réels, ou threads Xenomai)✔ font appel à des fonctions spécifiques pour toutes les

opérations temps réel➢ threads contrôlés par Linux

● quand un thread Xenomai fait un appel système qui n'est pas pris en charge par le noyau Xenomai, il migre vers le domaine Linux, mais reste plus prioritaire que les threads non temps réels

● quand toutes les tâches temps réel ont été effectuées par Xenomai, le contrôle est redonné au noyau Linux

Page 37: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 37

OSEK/VDX

● exécutif développé dans le cadre des applications embarquées pour le contrôle automobile (automotive)

➢ http://www.osek-vdx.org● Offene Systeme und deren Schnittstellen für die

Elektronik im Kraftfahrzeug (BMW, Bosch, DaimlerChrysler, Opel, Siemens, VW et l'Université of Karlsruhe)

➢ Open Systems and the Corresponding Interfaces for Automotive Electronics

➢ Systèmes Ouverts et les Interfaces Correspondantes pour l'Electronique Automobile

● Vehicle Distributed eXecutive (Renault)

Page 38: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 38

OSEK/VDX

● Consortium européen (franco-allemand) depuis 1995● pour les configurations mono processeur● avec des contraintes temps réel strictes● pour une grande variété d'applications, pour les phases

de mise au point aussi bien que pour la production (gestion des erreurs)

● indépendant du langage de programmation (syntaxe à la ANSI-C)

● portabilité et ré-utilisation du software

Page 39: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 39

OSEK/VDX

● organisation du consortium (2011)

Comité de direction

Comité technique

Working GroupOperating System

Working Group Communication

Working GroupNetwork Manag.

Working GroupCertification

Groupe des UtilisateursGroupe des Utilisateurs

STEERING COMMITTEE, Accelerated Technology Inc.,ACTIA,AFT GmbH,Ashling,ATM Computer GmbH,Blaupunkt,Borg Instruments GmbH,C&C Electronics,Cambridge Consultants,Continental Teves,Cummins Engine Company,Delco Electronics,Denso,EDSEpsilon GmbH,

ETAS GmbH & Co KG,FIAT- Centro Ricerche,Ford (Europe),FZI, GM Europe GmbH,Greenhills,Grupo Antolin,Hella KG,Hewlett Packard France,Hitachi Micro Systems Europe Ltd.,Hitex, IBM Deutschland Entwicklung GmbH,Infineon,INRIA,Integrated Systems Inc.,

IRISA,LauterbachLucasVarity, MetrowerksMagneti Marelli,Mecel,Motorola,National Semiconductor,NEC Electronics GmbH,Noral,NRTA,Philips Car Systems,Porsche AG,Sagem Electronic Division,Softing GmbH,ST Microelectronics,

Stenkil Systems AB,Sysgo Real-Time Solutions GmbH,TECSI,Telelogic GmbH,TEMIC,Texas Instruments,Thomson-CSF Detexis,Trialog,UTA - United Technologies Automotive,Valeo Electronics,VDO Adolf Schindling GmbH,Vector Informatik,Visteon,Volvo Car Corporation,Wind River Systems,3Soft GmbH.

Adam Opel AG, BMW AG, Daimler AG, IIIT - Univ. Karlsruhe, GIE.RE. PSA, Renault, Robert Bosch GmbH, Continental Automotive GmbH, Volkswagen AG

Page 40: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 40

OSEK/VDX

● exigences spécifiques dues au contexte de développement des applications automobiles

➢ l'OS est configuré et mis à l'échelle de façon statique (spécification statique du nombre de tâches, de ressources, de services)

➢ l'OS est capable de tourner à partir de mémoires ROM➢ l'OS fournit la portabilité des tâches applicatives➢ l'OS doit se comporter de façon prédictible et documentées

et se conformer aux exigences temps réel des applications automotives

➢ l'OS doit permettre l'implémentation de paramètres de performance prédictibles

Page 41: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 41

OSEK/VDX

● architecture générale organisée autour des ECUs (Electronic Control Unit)

● 3 entités :➢ OSEK-OS (real time operating system) : environnement

d'exécution des ECUs➢ OSEK-COM (communication) : échange de données entre

et inter ECUs➢ OSEK-NM (network management) : configuration,

registration et monitoring des ECUs

Page 42: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 42

OSEK/VDX

Communication

Netw

or k Mana gem

en tApplication

Operating System

Interaction Layer (IL)

Transport Layer (TL)

Data Link Layer (DLL)

Data Link Layer (DLL)

Communication hardware

Réseau (CAN bus)

Page 43: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 43

OSEK/VDX

● 3 niveaux d'exécution➢ interrupt➢ niveau logique (fonction-nement

de l'ordonnanceur)➢ niveau tâche

● les 3 niveaux vont en ordre décroissant de priorité

● les niveaux de priorité à l'intérieur d'un niveau d'exécution sont définis de façon statique

sans OS services

avec OS services

Niveaud'interruption

Niveau logique pour l'ordonnanceur

Niveaudes tâches

préemption : non/full/mixed

43

21

Tâches

attente : oui/non

Prioritéhaute

basse

Déroulementdu contexte

Page 44: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 44

OSEK/VDX

● les services de l'OS gèrent les 3 niveaux d'exécution ainsi que

➢ l'administration des tâches➢ l'administration des événements (synchronisation des

tâches)➢ l'administration des ressources matérielles partagées➢ les compteurs et alarmes➢ la communication entre tâches par messages➢ le traitement des erreurs

Page 45: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 45

OSEK/VDX

● développements récents➢ de plus en plus de technologies "assistées"

✔ freinage✔ direction

➢ beaucoup plus exigeantes en termes de déterminisme et de contraintes temporelles

➢ émergence de réseaux sécuritaires (TTP/C, TTCAN, Flexay)

➢ OSEKtime : OS temps réel qui peut gérer, en plus des tâches "classiques" d'OSEK, des tâches "Time Triggered" (TT)

Page 46: Systèmes d'exploitation Temps Réelfrancois.touchard.perso.luminy.univmed.fr/MT/C3-RTOS.pdf · un système d'exploitation avec des propriétés particulières liées à la nature

F. Touchard Polytech Marselle Département MT Systèmes d'exploitation Temps Réel 46

Conclusions

● dans la conception des applications temps réels, la maîtrise de l'ordonnancement est primordiale

➢ partage de la CPU entre les différentes tâches constituant l'application

➢ gestion des dépendances entre les tâches (partage de ressources exclusives)

➢ gestion des situations de surcharges● en plus des fonctionnalités normales d'un système

d'exploitation classique, un système d'exploitation temps réel va permettre

➢ de mettre en place les algorithmes d'ordonnancement✔ priorités relatives des tâches

➢ de synchroniser les tâches✔ en particulier l'accès aux ressources partagées

➢ de communiquer et d'échanger des données entre les tâches