Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande...

67
Systèmes d’exploitation temps réel Prof: A.JBARI ENSET-RABAT Spécialité: Génie Electrique et Informatique Industrielle Prof A.JBARI 1 RTOS

Transcript of Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande...

Page 1: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Systèmes d’exploitation temps réel

Prof: A.JBARIENSET-RABAT

Spécialité: Génie Electrique et Informatique Industrielle

Prof A.JBARI 1RTOS

Page 2: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Plan

1. Définition d’un système temps réel

2. Exemples de systèmes temps réel

3. Contraintes d’un système temps réel

4. Les composants d’un système temps réel4. Les composants d’un système temps réel

5. Le système d’exploitation temps réel (RTOS)

6. Exemples de systèmes RTOS

7. Le système RTLinux

8. Travaux pratiques

Prof A.JBARI 2RTOS

Page 3: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Système de contrôle-commandeReprésentation schématique d’un système de contrôle-commande Capteurs (sensors)

1. Définition d’un système temps réel

« Un système de contrôle-commande reçoit des informations sur l’état du procédé externe, traite ces données et, en fonction du résultat, évalue une décision qui agit sur cet environnement extérieur afin d’assurer un état stable ».

Actionneurs (actuators)

Prof A.JBARI 3RTOS

Page 4: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Définition d’un système temps réel

Définition du IEEE : "Un système temps réel (RTS= Real Time System )

est un système dont le temps de réponse est aussi important que la

qualité de fonctionnement."

1. Définition d’un système temps réel

« un système de contrôle-commande dans lequel l’exactitude des applications ne dépend pas seulement du résultat mais aussi du temps auquel ce résultat est produit. Si les contraintes temporelles de l’application ne sont pas respectées, on parle de défaillance du système ».

D’autres définitions:

Prof A.JBARI 4RTOS

Page 5: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Définition d’un système temps réel

« Un système temps réel est un système qui répond dans un temps prévisible à chacun des stimuli extérieurs qui lui parviennent »

D’autres définitions:

1. Définition d’un système temps réel

prévisible à chacun des stimuli extérieurs qui lui parviennent »

« Un système temps réel est une association logiciel/matériel où le

logiciel permet, entre autre, une gestion adéquate des ressources

matérielles en vue de remplir certaines tâches ou fonctions dans des

limites temporelles bien précises ».

Prof A.JBARI 5RTOS

Page 6: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Système temps réel• Peut être qualifiée de "temps-réel" (ou "temps contraint", ou

encore "réactif") toute application mettant en œuvre unsystème dont le fonctionnement est assujetti à l'évolutiondynamique de l'environnement qui lui est connecté et dont ildoit contrôler le comportement.

1. Définition d’un système temps réel

rythme de l'interaction

6RTOSProf A.JBARI

Système

Environnement(ex : une chaîne de production, une réaction chimique!)

données

mesures

événements

commandestemps de réponse imposé par la dynamique de l'environnement

Page 7: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Domaines d’application�Produits de grande consommation

� Cafetière, machines à laver, fours à micro-onde

�Electronique grand public

�Caméras numériques, appareils photo numérique

�Multimédia, téléphonie : décodeurs vidéo,

�téléphones portables, PDA, consoles de jeu

2. Exemples de systèmes temps réel

Prof A.JBARI RTOS 7

�Automobile

�Systèmes anti-blocage de freins,

�contrôle moteur, informatique de confort

� Contrôle de procédés industriels

�Avionique, spatial, production d’énergie (nucléaire)

� Périphériques informatique : FAX, imprimantes

� Grande diversité des besoins (rapidité, puissance, fiabilité, criticité,…)

Page 8: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Application N°1

Conception d’un système embarqué pour la gestion routière

2. Exemples de systèmes temps réel

8RTOSProf A.JBARI

Page 9: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Application N°2: Mesure du niveau de carburant

Utilisation de

2. Exemples de systèmes temps réel

Utilisation de capteurs capacitifs

Comment calculer le niveau du

carburant à partir de la

variation des capacités des

condensateurs immergés dans

les réservoirs ?

9RTOSProf A.JBARI

Page 10: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Typologie des STR

Type caractéristiques exemples

Système temps réel mou :

soft real-time system:

système à contraintes

temporelles relatives ou lâchesles fautes temporelles

jeux vidéo, applications multimédia, téléphonie mobile…

Selon les contraintes temporelles, on distingue les types suivants:

2. Exemples de systèmes temps réel

les fautes temporelles sont tolérables

Système temps réel dur :

hard real-time system

contraintes temporelles

strictes ou dures.Les fautes temporelles ne sont pas tolérables

avionique, véhicules spatiaux,automobile, transport ferroviaire…

Prof A.JBARI 10RTOS

Page 11: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Contraintes d’un STR

Les systèmes à contraintes dures doivent répondre à trois critères fondamentaux :

�Le déterminisme logique : les mêmes entrées appliquées au système doivent produire les mêmes effets.

�Le déterminisme temporel : un tâche donnée doit obligatoirement

3. Contraintes

�Le déterminisme temporel : un tâche donnée doit obligatoirement être exécutée dans les délais impartis, on parle d'échéance.

�La fiabilité : le système doit être fiable. Cette contrainte est indépendante de la notion de temps réel mais la fiabilité du système sera d'autant plus mise à l'épreuve dans le cas de contraintes dures.

Prof A.JBARI 11RTOS

Page 12: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Contraintes temporelles

Le respect des contraintes temporelles d’un STR dépend de la dynamique du

procédé.

3. Contraintes

Prof A.JBARI 12RTOS

« Real-time is not real-fast »: il faut juste agir à temps.

Page 13: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Caractéristiques d’un STR

�Durée d’exécution d’une activité :

correspond à la somme des durées d’éxecution de toutes les activités

élémentaires (acquisition, traitement, commande, affichage…)

�Cadence de répétition ou périodicité d’une activité :

3. Contraintes

�Cadence de répétition ou périodicité d’une activité :

l’acquisition d’une donnée ou la commande d’un actionneur peuvent

nécessiter une régularité liée par exemple à la fréquence

d’échantillonnage.

Prof A.JBARI 13RTOS

Page 14: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Caractéristiques d’un STR

�Date au plus tôt ou date de réveil :

dans certains cas, un traitement doit être déclenché à une date précise

relative par rapport au début de l’exécution de l’application ou absolue

(plus rarement).

�Date d’activation :

3. Contraintes

�Date d’activation :

cet instant correspond au début l’exécution effective de l’activité.

� Date au plus tard ou échéance:

le traitement ou la commande d’un actionneur doivent être terminés à un instant fixé par rapport au début de l’exécution de l’application.

Prof A.JBARI 14RTOS

Page 15: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Contraintes temporelles

�Échéance de terminaison au plus

tôt ou au plus tard (deadline)

�Cohérence entre instants de

3. Contraintes

Prof A.JBARI RTOS 15

�Cadence de production des sorties

Ex : régularité de présentation des

images dans une vidéo

�Cohérence entre instants de

production des résultats

Ex : synchronisation son–image

Page 16: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Contraintes temporelles

temps

temps

Idéal

Système non

Exemple: exécution d'une tâche périodique

3. Contraintes

temps

temps

Système non

temps réel

Système temps

réel

Prof A.JBARI 16RTOS

Page 17: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Contraintes de conception

�Coût

� Coût (temps) de conception (time-to-market).

� Coût d’achat : surface de silicium

� Ressources limitées (mémoire)

� Energie limitée (coût des batteries)

3. Contraintes

Prof A.JBARI RTOS 17

� Energie limitée (coût des batteries)

� Processeurs moins élaborés (plus simples) dans l’embarqué que les processeurs généralistes (coût + prévisibilité)

� Ergonomie : contrainte de poids

� Lien entre toutes ces contraintes

�Ex : besoin en performance vs temps-réel et consommation

� Exploration multi-critères pour les choix matériel - logiciel

Page 18: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Terminologie des STR

�STR embarqué ( embedded real-time system) : pas d’intervention humaine directe (pas de modification du programme ou des paramètres du programme) ;

� STR dédié ( dedicated real-time system ) : les architectures matérielles ou logicielles sont spécifiques à l’application (noyau, processeur…) ;

3. Contraintes

processeur…) ;

� STR réparti ou distribué ( distributed real-time system ) :

l’architecture matérielle est constituée de plusieurs processeurs reliés entre eux par un bus ou un réseau.

Exemple: une application pour un véhicule automobile est un STR dédié,

distribué et à contraintes temporelles strictes.

Prof A.JBARI 18RTOS

Page 19: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Composants matériels

Exemple d’une application

automobile

4. Les composants d’un STR

Prof A.JBARI 19RTOS

Page 20: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Architecture de VON NEUMANN

Le mathématicien John Von Neumann a proposé un modèle de machine universelle de traitement programmé de l’information (1946). Cette architecture sert de base à la plupart des systèmes à microprocesseur actuel. Elle est composé des éléments suivants :

�une unité centrale

�une mémoire principale

�des interfaces d’entrées/sorties

4. Les composants d’un STR

20

Les différents organes du système sont reliés par des voies de communication appelées bus.

RTOSProf A.JBARI

Page 21: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Architecture de Harvard

L’architecture de type Harvard est une conception de microprocesseurs qui sépare physiquement la mémoire de données et la mémoire programme. L’accès à chacune des deux mémoires s’effectue via deux bus distincts.

�Deux bus à utilisation simultanée: bus de données et bus

4. Les composants d’un STR

21

�Deux bus à utilisation simultanée: bus de données et bus des instructions à exécuter.�Ce modèle est plus rapide que celui de Von Neumann. �Le gain en performance est obtenu au détriment de la complexité interne de la structure

RTOSProf A.JBARI

Page 22: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Architecture SuperHarvard

�Deux mémoires: mémoires de données, mémoire de programme�Mémoire cache

�Contrôleur d’entrées/Sorties

4. Les composants d’un STR

22RTOSProf A.JBARI

Page 23: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Interruptions

Microprocesseur 8086:

NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.INTA : Interrupt Acknowledge (sortie), indique que le microprocesseur accepte l’interruption.

Traitement d’une interruption

Fonction: signal électrique externe indiquant un événement d’un traitement prioritaire.- Si l’interruption se déclenche, le processeur bloque le programme en cours d’exécution et se branche vers le sous programme de traitement de l’interruption.- Le vecteur d’interruption est une case mémoire contenant les adresses des SPGM de traitement d’interruption.

4. Les composants d’un STR

23

l’interruption.

Microprocesseur

8086

NMI

INTR

INTA

Traitement d’une interruption

�Empilage de IP�Charger IP par l’adresse du SPGM de traitement de l’interruption�Exécution du SPGM �Dépilage de IP�Retour vers le programme appelant

���� Le vecteur d’interruption contient l’adresse du

sous programme d’interruption.

RTOSProf A.JBARI

Page 24: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Exécution par scrutationBoucle de scrutation en cas de contrainte de temps faible

4. Les composants d’un STR

Prof A.JBARI 24RTOS

Page 25: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Architecture logicielle d’un STR

4. Les composants d’un STR

Prof A.JBARI 25RTOS

Page 26: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Architecture schématique des taches

4. Les composants d’un STR

Prof A.JBARI 26RTOS

Page 27: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Tâches: terminologie

�Programme

� Entité constituée des instructions à dérouler pour effectuer un calcul

(statique)

�Processus, tâche, thread

� Entité dynamique composée de :

� Programme (composante statique)

4. Les composants d’un STR

Prof A.JBARI RTOS 27

� Programme (composante statique)

� Données, pile d’exécution, contexte (composante dynamique)

� Descripteur : structure de donnée regroupant les informations sur une tâche à un instant donné (nom, contexte d’exécution, …)

� Thread vs tâche/processus : pas d’espace d’adressage séparé pour les threads

� Exemple : lecture périodique d’un capteur de température

� Un programme (exécutable)

� Une tâche relancée périodiquement

Page 28: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Tâches: terminologie

4. Les composants d’un STR

Prof A.JBARI RTOS 28

Page 29: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Exécutif ou noyau temps réel� Terminologie:

Système d’exploitation temps réel =RTOS (Real Time Operating

System) = exécutif = noyau temps réel: environnement d’exécution

de petite taille dédié aux applications de contrôle-commande.

�Caractéristiques d’un RTOS:

�Déterminisme temporel

5. Les RTOS

�Déterminisme temporel

�Efficacité de l’algorithme d’ordonnancement avec une complexité

limitée.

�Prédictibilité (répétitivité des exécutions dans des contextes identiques)

� Capacité à supporter les surcharges ;

� Possibilité de certification pour les applications de certains domaines

comme l’avionique, l’automobile…

Prof A.JBARI 29RTOS

Page 30: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Rôle d’un exécutif temps-réel�Objectif : masquer à l’application les particularités du matériel, interface entre l’application et le matériel.

� Machine virtuelle plus ou moins complexe

�Appels systèmes (primitives)

Ex : gestion de tâches (création, arrêt)

5. Les RTOS

Prof A.JBARI RTOS 30

Ex : gestion de tâches (création, arrêt)Ex : gestion du temps (attente d’un délai)

�Gestion du matériel

Ex : sauvegarde de registres pour préemptionEx : écriture registre timer pour délai

⇒⇒⇒⇒ Plus besoin de manipulations du matériel

Page 31: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Exécutif ou noyau temps réel

Une application temps réel étant par définition un système multitâche, le

rôle essentiel du noyau temps réel est donc de gérer l’enchaînement et la

concurrence des tâches en optimisant l’occupation de l’unité centrale du

système informatique. Les principales fonctions d’un noyau temps réel

peuvent être scindées en trois groupes :

5. Les RTOS

1. gestion des entrées/sorties (gestion des interruptions, gestion des

interfaces d’entrées/sorties, gestion des réseaux de communications…) ;

2. ordonnancement des tâches (orchestration du fonctionnement normal,

surveillance, changements de mode, traitement des surcharges…) ;

3. relations entre les tâches (synchronisation, communication, accès à une

ressource critique en exclusion mutuelle, gestion du temps…).

Prof A.JBARI 31RTOS

Page 32: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Interaction entre les taches et le noyau

�Les tâches sont les unités actives du système ;� Une tâche activée peut appeler le noyau temps réel par une requête.

� Les différentes requêtes sont servies par des modules du noyau

temps réel appelées primitives.

�Ensuite le noyau temps réel réactive une tâche de l’application selon l’algorithme d’ordonnancement utilisé.

5. Les RTOS

Prof A.JBARI 32RTOS

selon l’algorithme d’ordonnancement utilisé.

Page 33: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Interaction entre les taches et le noyau

La tâche activée occupe le processeur jusqu’à la fin de son exécution sous le respect des conditions suivantes :

1) Elle ne réalise pas d’opérations d’entrées-sorties.

5. Les RTOS

Prof A.JBARI 33RTOS

1) Elle ne réalise pas d’opérations d’entrées-sorties.

2) Les ressources utilisées sont disponibles.

3) Aucun événement extérieur ne revendique le

déroulement d’une tâche plus prioritaire.

Page 34: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Taches et noyau temps réel

5. Les RTOS

Prof A.JBARI 34RTOS

Page 35: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Temps partagé

�La gestion du temps est l'un des problèmes majeurs des systèmes d'exploitation.

�Les système d'exploitation modernes sont tous multitâches.

�Un seul processeur et plusieurs taches

�Partager le temps du processeur entre les différentes tâches. � Gestion du passage d'une tâche à l'autre:

5. Les RTOS

� Gestion du passage d'une tâche à l'autre:

�La gestion du passage d’une tache à l’autre est effectuée par un programme appelé ordonnanceur (scheduler).

�l'ordonnanceur a pour but principal , le partage équitable du temps entre les différentes tâches du système selon une référence temporelle appelée : quantum (ou tick).

�Exemples d’OS à temps partagé: windows, unix,…

Prof A.JBARI 35RTOS

Page 36: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Organisation d’un système d’exploitation

Gestion des périphériques (entrées/sorties)

Gestion des fichiers

Application (Logiciel, p.ex. Microsoft Word)

Modèles en couchesModèles en couches

5. Les RTOS

Noyau du Système d’exploitation

Matériel

Gestion de la mémoire

Gestion des processus

PilotePilotePilote

Prof A.JBARI 36RTOS

Page 37: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Exécutif temps réel - Structure

5. Les RTOS

Prof A.JBARI 37RTOS

Page 38: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Espace utilisateur / noyau

�Les processeurs offrent différents modes d’exécution

�Mode utilisateur

�Permet l’exécution de plusieurs processus en assurant leur protection.

�Pas d’accès aux instructions privilégiées.

�Avec l’aide de la MMU (Memory Management Unit), le gestionnaire mémoire peut différencier les espaces d’adressage.

5. Les RTOS

mémoire peut différencier les espaces d’adressage.

�C’est le mode dans lequel les applications vont s’exécuter.

�Mode superviseur

�Accès à toutes les instructions, y compris aux instructions privilégiées (instructions I/O, accès mémoire physique, etc.).

�Plus de protection garantie.

�Accès à toute la mémoire physique

Prof A.JBARI 38RTOS

Page 39: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Taches�Partage du processeur par plusieurs tâches

o Notions de tâche prête et tâche active� Primitives de synchronisation : blocage des tâches (⇒ état bloquée)� Diagramme de transition entre états

5. Les RTOS

Prof A.JBARI RTOS 39

Terminer, Arrêter, Démarrer : primitives (⇒⇒⇒⇒ appelées par les tâches) de gestion de tâches

Bloquer, Débloquer : primitives de synchronisation

Sélection, Préemption : décisions internes de l’ordonnanceur

Page 40: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

L’ordonnancement

� Définition: Ensemble des règles définissant l’ordre d’exécution des calculs sur le processeur

� Pourquoi ordonnancer ? Parce que ça a un impact sur le respect des contraintes de temps

� Exemple :

�Tâche T1 : arrivée en 0, temps d’exécution 4, échéance 7

5. Les RTOS

Prof A.JBARI RTOS 40

�Tâche T1 : arrivée en 0, temps d’exécution 4, échéance 7

� Tâche T2 : arrivée en 2, temps d’exécution 2, échéance 5

� Ordonnancement O1: premier arrivé, premier servi, non préemptif

� Ordonnancement O2: préemptif à priorité, T2 plus prioritaire que T1

� Échéance des tâches respectées avec O2, pas avec O1

Page 41: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

L’ordonnancement

� Ordonnancement O1 : T2 rate son échéance

5. Les RTOS

Prof A.JBARI RTOS 41

� Ordonnancement O2 : toutes

les échéances sont respectées

À l’instant t=2 : préemption de T1au profit de T2.

Page 42: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

L’ordonnancement « hors-ligne » - « en ligne »

�Hors-ligne

�La séquence d’ordonnancement est pré-calculée avant l’exécution effective (on dit aussi « time-driven » scheduling)� A l’exécution, l’ordonnanceur est un simple séquenceur (« cyclic scheduler ») : pas besoin d’exécutif multitâche

5. Les RTOS

Prof A.JBARI RTOS 42

�Evaluation

� Intérêts�Mise en œuvre simple

�Facile de détecter les dépassements d’échéances (surcharge)

� Limitations : rigidité (pas toujours applicable)

Page 43: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

L’ordonnancement « hors-ligne » - « en ligne »

�Ordonnancements « en-ligne »

� Les décisions d’ordonnancement sont prise au cours de l’exécution

� A l’exécution, l’ordonnanceur implante un algorithme d’ordonnancement permettant de savoir à tout instant quel tâche exécuter : besoin d’un exécutif multitâche

� Généralement, ordonnancements conduits par la priorité

5. Les RTOS

Prof A.JBARI RTOS 43

� Généralement, ordonnancements conduits par la priorité

� Evaluation

�Intérêts : flexibilité

� Inconvénients :

�surcoûts de mise en œuvre

�plus difficile de détecter les surcharges

Page 44: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Ordonnancement non préemptif / préeemptif

� Non préemptif (coopératif)

�On n’interrompt jamais l’exécution d’une tâche en cours au profit d’une autre tâche

�Préemptif

La tâche en cours peut perdre involontairement le processeur au profit d’une autre tâche (jugée plus urgente)

5. Les RTOS

Prof A.JBARI RTOS 44

profit d’une autre tâche (jugée plus urgente)

� Préemptif ⇒ besoin d’un exécutif multitâche

� Remarques : orthogonal par rapport à la classification en-ligne /

hors-ligne

� Un ordonnancement hors-ligne peut être préemptif

� Un ordonnancement en-ligne peut être non préemptif

Page 45: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Ordonnancement - classification

� Ordonnancement conduits par la priorité

� Ordonnancements préemptifs

� C’est la tâche de plus haute priorité qui s’exécute à tout instant

� Priorités fixes (statiques) / priorités dynamiques

� Fixes : indépendants du temps, fixées à priori

� Dynamiques : évoluent avec le temps, au prix d’un surcoût à l’exécution

5. Les RTOS

RTOSProf A.JBARI 45

� Dynamiques : évoluent avec le temps, au prix d’un surcoût à l’exécution

�Exemple d’exécution d’un ordonnancement conduit par la priorité

� prio(T3) > prio(T2) > prio(T1) (ici, priorités fixes)

� T1, T2 et T3 arrivent respectivement aux dates 1, 2, et 3

Page 46: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Notations

�Date d’arrivée Ai

�Temps de calcul maximum sans préemption Ci

� Echéance (deadline) : relative ou absolue Di

� Date de début (start time) Si

5. Les RTOS

Prof A.JBARI RTOS 46

� Date de fin (finish time) Fi

�Retard (lateness) Li = (Fi – Di)

Page 47: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Notations

� Arrivées des tâches

� Périodiques : arrivée à intervalles réguliers (Pi)

�Date d’activation initiale, offset Oi

� Si pour tout i,j Oi=Oj, tâches synchrones

� Si Di = Pi, tâche à échéance sur requête

5. Les RTOS

Prof A.JBARI RTOS 47

� Si Di = Pi, tâche à échéance sur requête

� Sporadiques : on connaît une borne minimale sur l’intervalle entre deux arrivées

� Apériodiques : le rythme d’arrivé des événements est inconnu.

� Synchronisations (donc blocages potentiels)

�Ressources partagées

� Précédences

Page 48: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Quelques ordonnancements

� Ordonnancements non préemptifs

�Selon l’ordre d’arrivée : premier arrivé – premier servi (FCFS : First Come First Served)

� Selon la durée de calcul : plus court d’abord (SJF=Shortest Job First)

5. Les RTOS

Prof A.JBARI RTOS 48

First)

�Ordonnancements préemptifs

�Sans notion de priorité : temps partagé avec politique du tourniquet (round-robin)

�Selon priorité (statiques ou dynamiques) : c’est la tâche la plus prioritaire qui s’exécute à tout instant

Page 49: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Rate Monotonic

�Ordonnanceur préemptif à priorité fixe

�Pour tâches périodiques

� Définition : La priorité d’une tâche est inversement proportionnelle à sa période d’activation

5. Les RTOS

Prof A.JBARI RTOS 49

proportionnelle à sa période d’activation

� Propriété

Optimal dans la classe des algorithmes à priorités fixes pour des tâches périodiques indépendantes à échéance sur requête (Di=Pi).

Page 50: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Rate Monotonic

Prio(T2) > Prio(T3) > Prio(T1)

Exécution cyclique

5. Les RTOS

Prof A.JBARI RTOS 50

Exécution cyclique

(PPCM des périodes)

Page 51: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Faisabilité pour taches périodiques

�Taux d’occupation processeur (ou charge) par tâche : Ui = Ci / Pi

5. Les RTOS

Prof A.JBARI RTOS 51

� Taux d’occupation processeur (ou charge) pour l’ensemble des tâches : U = Σ Ci/Pi

� Remarque : Pour que le toutes les échéances soient respectées, ilest nécessaire (mais pas suffisant) que U ≤ 1.

� Exercice : calculer les charges (par tâche, globale) pour l’ensemble de tâches donné en exemple

Page 52: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Deadline Monotonic

�Ordonnanceur préemptif à priorité fixe

�Pour tâches périodiques

� Définition : La priorité d’une tâche est inversement proportionnelle à son échéance relative.

5. Les RTOS

Prof A.JBARI RTOS 52

proportionnelle à son échéance relative.

� Propriété

Optimal dans la classe des algorithmes à priorités fixes pour des tâches périodiques indépendantes à échéance ≤période.

�Remarque: RM est un cas particulier de DM

Page 53: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Deadline Monotonic

�Exemple : ordonnancement DM pour un jeu de tâches synchrone

prio(T2) > prio(T1) > prio(T3)

5. Les RTOS

Prof A.JBARI RTOS 53

� prio(T2) > prio(T1) > prio(T3)

Page 54: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Earliest Deadline First EDF

�Ordonnanceur préemptif à priorité dynamique

�Pour tâches périodiques et non périodiques

� Définition : A un instant donné, la tâche la plus prioritaire (parmi les tâches prêtes) est celle dont l’échéance absolue est la plus

5. Les RTOS

Prof A.JBARI RTOS 54

(parmi les tâches prêtes) est celle dont l’échéance absolue est la plus proche.

Propriété

Optimal dans la classe des algorithmes préemptif pour des configurations de tâches périodiques indépendantes à échéance ≤période.

Page 55: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Earliest Deadline First EDF

(2 préemptions en 5 et 15)

5. Les RTOS

Prof A.JBARI RTOS 55

Page 56: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Algorithme Earliest Deadline First EDF

Exercice:Exercice:

�Cet ensemble de tâches serait-il faisable en utilisant unordonnancement non préemptif ?� Serait-il faisable en utilisant un ordonnancement préemptif à priorités fixes (si oui, lequel ?)

5. Les RTOS

Prof A.JBARI RTOS 56

Page 57: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Correction 1/ 3

5. Les RTOS

Prof A.JBARI RTOS 57

Page 58: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Correction 2/ 3

5. Les RTOS

Prof A.JBARI RTOS 58

Page 59: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Correction 3/ 3

5. Les RTOS

Prof A.JBARI RTOS 59

Page 60: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Niveaux de parallélisme

� Parallélisme réel

� Systèmes multiprocesseurs uniquement

� Pseudo-parallélisme : le processeur exécute successivement plusieurs traitements

5. Les RTOS

Prof A.JBARI RTOS 60

�Traitements exécutés en séquence : ordonnancement non

préemptif

� Un traitement peut être interrompu par un autre traitement :

ordonnancement préemptif

Page 61: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Niveaux de parallélisme�Système multitâche monoprocesseur non préemptif

�Système multitâche monoprocesseur préemptifEntrelacement entre

5. Les RTOS

Prof A.JBARI RTOS 61

�Système multitâche multiprocesseurs

Entrelacement entreT1 et T2 dépend dutype d’ordonnancement

Page 62: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Appels système et interruptions

�Appel systèmeModule du noyau concerné

5. Les RTOS

Prof A.JBARI RTOS 62

�Gestion d’interruption

On ne retourne pas

nécessairement

dans la tâche

appelante/interrompue

Page 63: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

OS temps réel

RTOS commercials RTOS LIBRES

VxWorks http://www.windriver.com

LynxOS http://www.lynuxworks.com/rtos

Qnx http://www.qnx.com

RTAI http://www.rtai.org

XENOMAI http://www.xenomai.org

ucLinux http://www.uclinux.org

6. Exemples de RTOS

Prof A.JBARI RTOS 63

Qnx http://www.qnx.com

RTLinux http://www.fsmlabs.com/

ucLinux http://www.uclinux.org

eCos http://sources.redhat.com/ecos

MaRTE OS http://marte.unican.es

ORK: http://polaris.dit.upm.es/ork

Page 64: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Le noyau Linux : Linux Kernel

User Processes

7. Les RTOS

RTOS 64

System libraries

Device drivers Linux kernel

Hardware

I/O Hardware Interrupts

Prof A.JBARI

Page 65: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

RTLinux Kernel

System libraries

Device drivers Linux kernel

User Processes

Real Time Tasks

Linux is executed in the background

7. Les RTOS

RTOS 65

Hardware

I/O Software Interrupts

RTLinux Plug-inRT-Scheduler

I/O Hardware Interrupts

Direct h/w access

Prof A.JBARI

Page 66: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

Linux Kernel: code perspective

M1

Kern

el L

oadable

Module

s

Module M2 service (system call)

User

Process

THE controller

7. Les RTOS

RTOS 66

Linux Monolithic kernel core

M1

M2

M3

M4

Kern

el L

oadable

Module

s

RAM DISK

(system call)

M2

Prof A.JBARI

Page 67: Prof: A - High-Tech€¦ · Microprocesseur 8086: NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non Maskable Interrupt) : interruption prioritaire.

RTLinux Kernel: code perspective

RTM2

Kern

el L

oadable

Module

s

Load RT core

RT Load command

RT core

THE controller

7. Les RTOS

RTOS 67

Linux Monolithic kernel core

RTM2

RTM3

M1

M2

Kern

el L

oadable

Module

s

RAMDISK

RT-Core Module

M3

Prof A.JBARI