31
2014-12-04 1 Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King Systèmes d’exploitation Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King Plan Introduction aux systèmes d'exploitation embarqués comparaison avec les systèmes d'exploitation de bureau caractéristiques des systèmes d'exploitation embarqués Introduction aux SE en temps réel exigences pour un SE d'être en temps réel Classification des SETR (RTOS) Introduction à MQX, SYS/BIOS et exemples de code

Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

1

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Systèmes d’exploitation 

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Plan

• Introduction aux systèmes d'exploitation embarqués

– comparaison avec les systèmes d'exploitation de bureau

– caractéristiques des systèmes d'exploitation embarqués

• Introduction aux SE en temps réel

– exigences pour un SE d'être en temps réel 

– Classification des SETR (RTOS) 

• Introduction à MQX, SYS/BIOS et exemples de code

Page 2: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

2

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Système d’exploitation• Ensemble de logiciels pour gérer les ressources matérielles d’un système ordiné

• Forme une interface entre les                          applications et le matériel

– Pilotes des périphériques

– Fonctions de service pour les applications 

• Consiste en un noyau entouré                             de modules optionnels– Les versions de bureautique incluent minimalement des fonctions de gestion du clavier, de l’écran et d’un système de fichiers sur disque

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Composants d’un SE

on distingue principalement : • Le noyau (kernel) représentant les fonctions fondamentales du 

SE telles la gestion de la mémoire, des processus, des fichiers, des entrées‐sorties principales, et des fonctionnalités de communication. 

• L'interpréteur de commande (shell) pour communiquer avec le noyau via un langage de commande prédéfini– Une version à ligne de commande alphanumérique coexiste souvent 

avec une version à interface graphique (GUI)

• Le système de fichiers (file system ou FS) permettant l’enregistrement de fichiers dans une arborescence.

Page 3: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

3

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Topologie générale d’un SE

• Comprend trois couches logicielles entre les applications et le matériel

Matériel

Services

Plate-formeProfessionnelle

Applications

Sémaphores

Gestion IT

Gestion Horloge

OrdonnanceurGestionMV

Pilotes

GestionTâches

Gestionmémoire

Gestionfichiers

Gestion Objets

Messagerie

BaseDonnées

BiblioProgrammes

InterfaceHM

Noyau

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Types de SE 

• Monoprocesseur, monotâche

– Le SE alloue le CPU (Central Processing Unit) à un seul programme à la fois. Tant que celui‐ci est en exécution, aucune autre application ne peut s’exécuter (MS‐DOS).

• Monoprocesseur, multitâche

– Le SE répartit le temps de CPU entre plusieurs tâches, en utilisant  un mécanisme de préemption (WINDOWS, Unix, Mac OS). 

• Multiprocesseur, multitâche

– Le SE répartit l’exécution de tâches multiples sur plusieurs CPUs et assure leur synchronisation pour le partage des ressources (SE de type UNIX ou exécutifs à temps réel)

Page 4: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

4

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Application, tâche et état

• Un programme (application) consiste en tâches qui travaillent de concert pour réaliser l’objectif visé 

• Le noyau place chaque tâche dans un de 4 états d’exécution possibles.

– Active : est en cours d’exécution (1 seule à la fois)

– Prête : en attente de temps CPU (il peut y avoir plusieurs)

– Suspendue : en attente d’un évènement pour passer à l’état prêt (il peut y en avoir plusieurs)

– Inactive: ne participe plus à l’activité du système (il peut y en avoir plusieurs)

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Dynamique des états

active

inactive attente

Prêt

Condition de libération

Condition d’attente

sélectionpréemption

Terminer

Arrêtertâche

Démarrer tâche

• Évolue suivant un automate logiciel à états finis

• L’information pertinente est sauvée dans des structures de contexte logicielles

Page 5: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

5

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Contexte de tâche

• Structure comprenant les états des registres du CPU et des pointeurs de programme, données  et pile, nom, priorité,  droits d’accès, et état d’exécution courant 

• L’environnement d’exécution comprend : 

Stack pointer Registers

Other task data

Rest of stackTask Priority

Task state

Task Control Block Stack

• Une zone de programme accessible en mode lecture• Une zone de données accessible en mode lecture/écriture• Une zone de pile pour stocker les informations temporaires,

accessible en mode lecture/écriture)

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Ordonnancement des tâches• Une des fonctions majeures du noyau

• Fait par une entité logicielle qui intervient à chaque fois qu’une modification d’état doit avoir lieu 

– Alloue le CPU à une tâche parmi celles admissibles

– Gère le déblocage de tâches en attente et la commutation de tâches  actives

• Mécanismes– Préemption de la tâche active suite à un évènement

– Allocation de temps de CPU égalitaire aux tâches (round robin)

– Commutation de contexte programmée

Page 6: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

6

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Le répartiteur (dispatcher)

• Réalise l’élection de la tâche active et le changement de contexte associé

Ordonnanceur Processeur

Répartiteur

Tâche élue

File d’attente des tâches admissibles

File d’attente des tâches suspendues

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Commutation de tâche et commutation de contexte

• Commutation des tâches

– Arrêt du traitement de la tâche en cours au profit d’une autre

– Provoquée par • demande explicite de la tâche en cours (attente,..)

• décision de l’ordonnanceur (tâche plus prioritaire active)

• réponse prioritaire à un phénomène externe 

• Commutation de contexte

– Sauvegarde de l’état des registres du processus courant et restauration de l’état des registres d’un nouveau processus

– Effectuée lors d’un appel au noyau ou lors de l’occurrence d’une interruption

Page 7: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

7

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Commutation de tâche et de contexte

tâche 1

temps

Évènement préemptif

RestaurationContexte tâche 2

Sauvegarde Contexte tâche 1

Recherche de la tâche en attente de plus haute priorité

Priorité de tâche

• Modèle préemptif

tâche 2

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Commutation de tâche et de contexte

tâche 1

temps

Changement d’état de tâche 2 à prête

Recherche de la tâche en attente de plus haute priorité

Priorité de tâche

• Modèle non-préemptif

tâche 2

Commutation de contexte

Évènement non préemptif

Page 8: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

8

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Les critères de sélection

• L’ordonnanceur utilise une politique de sélection à contraintes :

– Garantie à chaque tâche d’un temps de CPU donné

– Respect de l’ordre de priorité entre tâche

– Respect d’un temps de réponse donné

– Préemption d’une tâche qui monopolise le processeur

• Généralement, l’invocation de l’ordonnanceur s’effectue sur :

– Mise en attente ou réveil d’une tâche

– Changement de priorité d’une tâche

– Réquisition du CPU au profit d’une tâche plus prioritaire

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Ordonnancement• La manière de gérer les files de processus à une grande 

incidence sur les performances d’un système.

• LIFO (pile) ou FIFO (liste, file, queue)– Les tâches actives sont organisées en files doublement chaînées par 

l’intermédiaire de leur descripteurs

Tableau pointeurvers les différentesfiles

File des processus prêts

File des processus en attente d’événements

Processus en cours Ordonnanceur

File des processus en attente sur sémaphore (mutex)

Page 9: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

9

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Système Codage Mono‐utilisateur Multi‐utilisateur Mono‐tâche Multitâche

DOS 16 bits  X X

Windows3.1 16/32 bits  Xnon préemptif

Windows95/98/Me

32 bits  X coopératif

WindowsNT/2000

32 bits X préemptif

WindowsXP 32/64 bits X préemptif

Windows7 32/64 bits X préemptif

Unix / Linux 32/64 bits X préemptif

MAC/OS X 32 bits X préemptif

VMS 32 bits X préemptif

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Système d’exploitation embarqué

• L’application de l’usager et le SE sont fusionnés en un seul logiciel 

• Caractéristiques :

– Le code du SE et celui de l’application résident dans de la mémoire non volatile

– La gestion des ressources est                                              spécifique à celles présentes

– Moins de surcharge de                                                  traitement (overhead)

Page 10: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

10

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

SE de bureau vs. SE embarqué

• SE de bureau : l’application est  compilée/assemblée séparément du SE

• SE embarqué : l’application est compilée/ assemblée et liée de concert avec le SE

– Au démarrage du système, l’application est lancée en premier; elle part le SE ensuite

– Seuls les composants du SE (services, routines, ou fonctions) requis par l’application sont ajoutés au code de l’application par l’éditeur de lien

(Dr Jimmy To, EIE, POLYU)

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Caractéristiques des SE embarqués

• Configurabilité nécessaire 

– Pas de SE pour tous, configurabilité nécessaire pour éviter les surcharges dues à du code non utilisé

• Techniques pour implémenter la configurabilité

– Forme triviale : ne pas inclure les fonctions non utilisées (fait par l’éditeur de liens)

– Compilation/assemblage conditionnel       (directives  #if et #ifdef)

– Évaluation et optimisation au moment                       de la compilation/assemblage

Page 11: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

11

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

• Les pilotes de périphériques sont typiquement  non inclus dans le noyau et laissés au développeur– Les systèmes embarqués étant souvent dédiés à des applications spécifiques   les pilotes sont sous la responsabilité du développeur

• Dans le cas des SE du bureau, des dispositifs standards  sont supposes toujours présents (disques, Ethernet, audio, etc.)                les pilotes font partie de la dernière couche basse du SE

Embedded OS Standard OS

kernel

Caractéristiques des SE embarqués

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

• Protection pas toujours obligatoire 

– Dû aux applications dédiées, les programmes non testés sont rares et le logiciel est considéré fiable

– Donc, pas besoin d’accès privilégiés aux d’E/S et les tâches s’en occupent

Par exemple, l’accès à une adresse d’e/s switch est fait par l’instruction 

mov register,switch

au lieu d’utiliser un appel au SE

Caractéristiques des SE embarqués

Page 12: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

12

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

• Les interruptions ne sont pas restreintes au seul SE

– Les programmes embarqués sont supposés être testés  pas besoin de protection contre les mauvais usages

– De plus, le contrôle efficace des ressources est requis  on peut démarrer et arrêter des tâches par interruptions  commutation de tâches plus efficace que des appels de service au SE

• Dans les SE standard,  serait une source de non‐fiabilité

Caractéristiques des SE embarqués

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

• Fonctionnement en temps réel typique

– Plusieurs systèmes embarqués opèrent en temps réel ‐> Le SE permet des temps de réponse déterministes (SETR ou RTOS)

• Caractéristiques générales d’un SETR:

– Gestion de l’exécution de tâches multiples

– Ordonnancement de tâches priorisé

– Synchronisation des accès au matériel 

– Déterminisme temporel

– Gestion des interruptions

Caractéristiques des SE embarqués

Page 13: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

13

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Plan

• Introduction aux systèmes d'exploitation embarqués

– comparaison avec les systèmes d'exploitation de bureau

– caractéristiques des systèmes d'exploitation embarqués

• Introduction aux SE en temps réel (RTOS)

– exigences pour un SE d'être en temps réel 

– Classification des RTOS 

• Introduction à MQX et exemple de code

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Système à temps réel

• Système ordiné comprenant des tâches avec des contraintes temporelles.

• Garantit des réponses avec des échéances fixées (contraintes strictes) ou des temps de réponse bornés (contraintes relatives) 

• Exemples▪ Systèmes de contrôle de procédé : usines, centrales  électriques;▪ Systèmes aéronautiques : guidage missiles, avions, satellites;

▪ Équipements  industriels : machines/outils, robots de production ;

▪ Systèmes multimédia mobiles : webcam, réalité virtuelle

Page 14: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

14

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Exécution déterministe 

• Comportement du SE prévisible et borné dans le temps

• Limite supérieure pour le temps d’exécution des services offerts

• Périodes de blocage des interruptions courtes (pour garantir le traitement à temps d’évènement critiques)

• Fourniture de services de durée prédéterminée et synchronisable

• Important si la synchronisation doit être maintenue avec une horloge externe

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Pour garantir le respect de limites temporelles: 

• les différents traitements ne dépassent pas leurs limites temporelles  vérifié à l'aide d’un test d'acceptabilité

• Une tâche est généralement caractérisée par un temps de calcul Ci, et par une période d’exécution Ti. 

• Pour tout système de n tâches :  

• Une valeur > 1 signifie un temps d'exécution > à ce que le uPpeut fournir.

Page 15: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

15

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Modèle de système en temps réel

Modèle de tâches périodiques

Les paramètres sont connus à priori

Page 16: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

16

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Modèle temporelle plus utilisé

Efficace

Plus d’espace temporel

ex. exécution cyclique

Modèle par prioritéPriorité dynamique

ex. “earliest deadline first” 

Priorité statique

ex. “rate monotonic”

0 3 6

0 3 6

Modèle en temps réel (suite)

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta KingMonjy Rabemanantsoa 32

Page 17: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

17

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

I/O Perils

Task 1

Task 2

“Hi There”

“Howdy”

Terminal

“HHio wTdhyere”

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Fonctions du noyau RTOS

• Gestion de :

– CPU

– Mémoire

– Horloges de temporisation

– Exécution des tâches (lancement, suspension, arrêt, reprise, etc.)

– Communication et synchronisation inter tâches

Resources

Page 18: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

18

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Pourquoi utiliser un RTOS?

• Concentration sur l’application, et non sur l’exécution de tâches 

– Gestion automatique du temps de CPU entre unités d’exécution (threads), suivant un critère de sélection prédéfini (priorité ou autre)

– Synchronisation de l’accès aux ressources

• Ajout/retrait de modules fonctionnels sans modifier l’application existante

• Services aux périphériques quand disponibles, incluant des protocoles de communication: 

– TCP/IP, USB, serveurs Web, WI‐FI, communication CAN, etc.

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Classification des RTOS• RTOS à noyau RT

– Généralement conçu pour la rapidité de réponse.

– Peut être inadapté aux systèmes complexes, car priorisation de la rapidité sur la prédictibilité

– En général propriétaire : QNX, PDOS, VCOS, VTRX32, VxWORKS

• SE standard à noyau non‐RT modifié– Extension RT gère l’exécution des tâches et considère le noyau standard comme l’une d’elles pour les réponses en temps réel

• Interface de programmation d’applications (API) standard versus dédiés– p. ex. POSIX extension‐RT d’Unix, ITRON, OSEK

Page 19: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

19

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Ex.: RT‐Linux

• RT‐tasksne peuvent pas utiliser d’appels SE 

standard (www.fsmlabs.com)

Hardware

RT-Task RT-Task

RT-Linux RT-Scheduler

Linux-Kernel

driver

scheduler

Init Bash Mozilla

interrupts

interrupts

interrupts

I/O

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Ex.: Posix RT‐extensions à Linux

• Le céduleur POSIX remplace le céduleur standard pour implémenter des priorités d’exécution en temps réel

Hardware

Linux-Kernel

driver

POSIX 1.b scheduler

Init Bash Mozilla

I/O, interrupts

RT-Task RT-Task

Appels au SE temps réel et standard disponibles

Programmation facile, mais sans garantie de respect absolu des délais

Page 20: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

20

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

39

Plan

• Introduction aux systèmes d'exploitation embarqués

– comparaison avec les systèmes d'exploitation de bureau

– caractéristiques des systèmes d'exploitation embarqués

• Introduction aux SE en temps réel

– exigences pour un SE d'être en temps réel 

– Classification des SETR (RTOS) 

• Introduction à MQX, SYS/BIOS et exemples de code

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

MQX• RTOS à temps réel de Freescale

• Gestion d’unités d’exécution multiples (threads)organisées par priorité  

– Ordonnancement des tâches et gestion des états

– Gestion des interruptions

– Synchronisation des tâches par mutex, sémaphores, évènements, messages

– Gestion de la mémoire

– Services d’e/s

– Journal des activités

Page 21: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

21

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Facilités offerte par MQX 

Requis

Optionnel

Les différent composants forment un ensemble de fichiers en c qui forment une librairie liée à l’application de l’usager et compilée dans le même espace mémoire.Seules les fonctions utilisées sont incluses dans le code exécutable

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Mutex « mutual exclusion »

Acquire_mutex;Access_device;Release_mutex;

• Concept d’éviter que deux tâches concurrentes utilisent les ressources du système simultanément  

• Mise en oeuvre par directive

• Peut mener à la c’reation de goulots d’etranglement et de blocages de tâches si mal utilisé

Page 22: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

22

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Sémaphores

AtoD_Read (uint16 *result)

{

start ADC conversion

wait for semaphore

Read A/D

return result

}

ADC_ISR (void)

{

release semaphore

clear interrupt

}

• Permettent la synchronisation de tâches

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Files de messages

ISR Rx

Port sérielTâche Rx

File de messages

Page 23: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

23

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Tâches dans MQX 

• Les applications sont organisées en tâches qui tournent à tout de rôle, avec une seule active (exécutée par le CPU) à tout moment

– MQX gère les commutations de contexte qui partagent le temps de CPU entre les tâches

• Contexte de tâche

– Structure logicielle définie pour chaque tâche et mémorisant ses registres, pointeur de pile, état et ressources propres lorsque la tâche n’est pas active

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Création de tâches

void main (void)

{

OSInit(); /* Kernel initialization */

OSTaskCreate(...); /* Task creation */

OSTaskCreate(...);

OSStart(); /* Start multitasking */

}

Syntaxe de micrim

Page 24: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

24

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Hello World#include <mqx.h>#include <bsp.h> #include <fio.h>

/* Task IDs */#define HELLO_TASK 5

extern void hello_task(uint_32);

const TASK_TEMPLATE_STRUCT MQX_template_list[] = {/* Task Index, Function, Stack, Priority, Name, Attributes, Parameters,

Time Slice */{ HELLO_TASK, hello_task, 1500, 8, "hello",

MQX_AUTO_START_TASK, 0, 0 },{ 0 }

};

void hello_task(uint_32 initial_data){printf("Hello World\n"); _task_block();

}

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Hello World 2 (1/2)

#include <mqx.h>#include <bsp.h> #include <fio.h>

/* Task IDs */#define HELLO_TASK 5#define WORLD_TASK 6

extern void hello_task(uint_32);extern void world_task(uint_32);

const TASK_TEMPLATE_STRUCT MQX_template_list[] = {/* Task Index, Function, Stack, Priority, Name, Attributes, Parameters,

Time Slice */{WORLD_TASK, world_task, 1000, 9, "world",

MQX_AUTO_START_TASK, 0, 0},{HELLO_TASK, hello_task, 1000, 8, "hello", 0,0,0},{ 0 }

};

Page 25: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

25

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Hello World 2 on MQX(2/2)

/* world_task: create hello_task & print " World " */

void world_task(uint_32 initial_data) {

_task_id hello_task_id;

hello_task_id = _task_create(0, HELLO_TASK, 0);

if (hello_task_id == MQX_NULL_TASK_ID) {printf ("\n Could not create hello_task\n");

} else {printf(" World \n");

}_task_block();

}

void hello_task(uint_32 initial_data) {printf("\n Hello\n");_task_block();

}

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

SYS/BIOS

• Exécutif de Texas Instruments (TI) pour les  applications nécessitant un ordonnancement et synchronisation de tâches en temps‐réel

• Noyau échelonnable permettant la gestion d’unités d’exécution multiples avec commutation  préemptive

• Abstraction du matériel

• Suivi de l’exécution en temps réel

Page 26: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

26

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

TI‐RTOS Kernel (ou SYS/BIOS) :  librairie de services de TI que l’usager peut ajouter à son applicationpour gérer l’executionde tâches multiples en temps réel

SYS‐BIOS

Gestion de la mémoire (stack, heap, cache)

Analyse en temps réel (logs, graphes, charges)

Ordonnancement (différent types de threads)

Synchronization (ex. sémaphores, évènements)

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Le noyau TI‐RTOS

Ordonnancement préemptif avec possibilité de changement dynamiques de priorités de tâches 

Opération pilotée par évènements : toute source d’interruption  peut invoquer l’ordonnanceur.

Les méthodes du noyau sont orienté‐objet pour un couplage faible et une cohésion élevée.

L’orientation objet permet à la plupart des appels au noyau d’être déterministes quant au temps de réponse. 

Fonctions d’analyse en temps réel (ex. Logs) petites et rapides – permettant de les garder dans le code final

Page 27: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

27

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Mode d’exécution avec TI ‐SYS/BIOS

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

TI MCU

Exemple d’application

Audio(100KHz)

KeyPad(10 Hz)

Une application comprend deux tâches indépendantes à exécuter

Existe‐il des conflits possibles ?

Comment ordonnancer les deux tâches?

Existe‐il une priorité d’exécution?

Page 28: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

28

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Solution 1 : super boucle

main(){while(1){

}}

Audio

KeyPad

On met les deux tâches à l’intérieur d’une boucle infinie dans main()

Qu’en est‐il des deux contraintes de temps différentes ?

Utiliser un temporisateur pour déclencher chaque tâche par interruption!

Que se passe‐il si une des tâches “affame” l’autre ou retarde sa réponse? 

• Audio – 100kHz (10μs)

• KeyPad – 10Hz (100ms)

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Solution 2 – InterruptionsChaque tâche est déclenché par un temporisteur dédié

Comment prévenir cela?

Period Compute Usage

Audio 10μS 5μS 50%

Keypad 100ms 1ms 1%

51%

Une interruption peut bloquer l’autre!

Interruption ratéemain()

{while(1);

}

TimerA_ISR(){read sample;

}Audio

TimerB_ISR(){read keypad;

}KeyPad

Page 29: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

29

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Solution 3 – IRQs emboitablesPermettre des interruptions emboitables(nested) pour la préemption

Les périphériques ont généralement des priorités préétablies, à moins d’utiliser un contrôleur spécialisé

Les routine d’IRQ de basse priorité doivent céder la place dans le code  – difficile à suivre pour le débogage ou la validation

L’emboitage des irq est motivé par l’exécution des tâches dans les routines de service

A

B

main(){while(1);

}

TimerA_ISR(){read sample;

}Audio

TimerB_ISR(){read keypad;

}KeyPad

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Solution 4 ? – Processus et ISR séparés Même avec l’emboitage des IRQ, on peut

toujours rater des irq quand la tâche de plus haute priorité est executée

This is what the BIOS Scheduler is all about…

C/S

Nest?C/R

HardRealTime

(Read)

Process Data

Global ints disabled

On peut mitiger le problème est séparant la partie utile de la routine de service du reste

C/S

Nest?C/R

HardRealTime

(Read)

PostSwi

Process Data

(in Software Interrupt)

Global ints disabled rather than all this time

main(){while(1);

}

TimerA_ISR(){read sample;

}Audio

TimerB_ISR(){read keypad;

}KeyPad

Page 30: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

30

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Solution 4 – Ordonnancement par SYS/BIOS

main(){init_stuff;while(1);BIOS_start();

}

Audio_ISR(){read sample;post_Audio;}

Keypad_ISR(){read keypad;post_KeyPad;}

Hwi – Hardware INT

• Context save/restore (done by BIOS)

• Hard real‐time “read”

• Post Swi for follow‐up

Swi – Software INT

• Posted by software

• PROCESS data

• User can select priority

Idle – Background

• Runs multiple fxns insideof a while(1) loop

Si on découple le traitement du déclencheur (Hwi):

La routine de service devient très courte (plus besoin d’emboitement) 

La priorité des tâches est fixée par logiciel 

On peut lancer autant de tâches que l’on veut 

Le code de chaque tâche demeure indépendant des autres

HI

LO

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Création de tâche dans SYS/BIOS Users can create threads (BIOS resources or “objects”):

• Statically (via the GUI or .cfg script)• Dynamically (via C code) – more details in the “memory mgmt” chapter

• BIOS doesn’t care – but you might…

var Swi = xdc.useModule('ti.sysbios.knl.Swi');var swi0Params = new Swi.Params();swi0Params.instance.name = "MyNewSwi";swi0Params.priority = 2;Program.global.MyNewSwi = Swi.create("&ledToggle", swi0Params);

app.cfg

Static (GUI or Script)

Dynamic (C Code)#include <ti/sysbios/knl/Swi.h> Swi_Params swiParams;Swi_Params_init(&swiParams);swiParams.priority = 2;Swi_create(ledToggle, &swiParams, NULL);

app.c

Page 31: Systèmes d’exploitation - UQAMboukadoum_m/MIC3215/ppt/12 - RTOS.pdf · Caractéristiques des SE embarqués Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes

2014-12-04

31

Traduit et/ou adapté de matériel recueilli sur Internet, dont les notes de Chung-Ta King

Communications entre les tâches