Vous êtes sur la page 1sur 9

INSAT

Ahmed Chiheb AMMARI

Architecture des systmes temps rel


1- Systmes de type Foreground/Background Les petits systmes de complexit minimale sont gnralement conus de type Foreground/Background (premier plan/arrire plan) ou super loops. Une application de ce type consiste en une boucle infinie qui fait appel des modules (fonctions). Les fonctions dinterruptions (ISRs) traitent des vnements asynchrones (foreground). Foreground est aussi appel niveau interruption et background niveau tche. Les oprations critiques doivent tre prises en compte par les ISRs afin de permettre leur traitement temps. De ce fait, les ISR ont tendance sexcuter en plus de temps quil nen faut. En plus, une Information, rendue valable pour un Background module par un ISR nest prise en compte que lorsque le module ait son tour pour sexcuter. Cest ce quon appele le temps de rponse au niveau tche. Ce temps de rponse dpend du temps que peut prendre la boucle de background pour sexcuter.

Du moment que le temps dexcution dune partie typique de code nest pas constant, le temps de rponse de ce type de systme nest jamais dterministe. Les applications microcontrleurs de grande chelle (four micro-ondes, jeux, etc.) sont gnralement de type Foreground/Background. En plus, de point de vue consommation lectrique, il est dans certains cas prfrable darrter le processeur et deffectuer toutes les fonctions sous forme de services dinterruption (ISRs).

2- Systmes multitches. Le multitche consiste dans lordonnancement et le partage du CPU entre plusieurs tches. Cest comme le Foreground/Background avec plusieurs backgrounds. Le multitche maximise lutilisation du CPU et permet une construction modulaire des applications. Laspect le plus important du multitche, cest quil permet au programmeur de mieux apprhender la complexit inhrente aux applications temps rel. Dans ce cas, les programmes dapplications sont typiquement plus simples concevoir et maintenir. Les systmes multitches sont gnralement bass sur un noyau temps rel qui est responsable de lorganisation, du management et des communications entre les tches. Lutilisation dun noyau permet gnralement de simplifier la conception des applications. Par contre, ce noyau ajoute des frais supplmentaires au systme si lon tient compte des lments suivants : - Demande de plus de ROM pour stocker le noyau et lapplication. - Demande de plus de RAM pour les zones de pile propre chaque tche en plus des structures de donnes propres au noyau. - Utilisation dune partie du temps CPU (Typiquement 2 4%)

Un noyau temps rel permet gnralement une meilleure utilisation du CPU en mettant disposition des services indispensables (smaphores, mail boxes, queues, time delays, etc.). Une fois un systme conu en utilisant un noyau, vous ne voudriez plus revenir en arrire sur les le type background/foreground. La plus part des noyaux temps rel sont bass sur les priorits. Chaque tche tant assigne une priorit base sur son importance. Dans ce cas, le contrle du CPU est toujours donn la tche la plus prioritaire prte sexcuter. Cependant, quand cette tche de plus haute priorit va t-elle tre excute, ceci dpend du type de noyau utilis. Il existe deux types de noyau bas sur la priorit : noyau non premptif et noyau premptif.

2-1 Cas dun noyau non premptif. Avec un noyau non premptif chaque tche fait quelque chose avant de donner explicitement le contrle du CPU. Pour maintenir une illusion de concurrence ce process doit tre effectu frquemment et trs rapidement. Lordonnancement non premptif est aussi appel multitche coopratif. Les tches cooprent entre eux pour le partage du CPU. Les vnements asynchrones sont toujours traits par des services dinterruption (ISRs). Un ISR peut rendre une tche de plus haute priorit prte sexcuter, mais lISR retourne toujours le contrle la tche interrompue. La tche de plus haute priorit ne prendra le contrle du CPU que lorsque la tche courante le libre. Un des avantages des noyaux non premptifs est que la latence dinterruption est typiquement faible. Au niveau tche, les noyaux non premptifs permettent lutilisation de fonctions non-rentrantes. Les fonctions nonrentrantes peuvent tre utilises par chacune des tches sans risque de corruption de donnes du moment que chaque tche sexcute jusqu' la fin avant de librer le CPU pour les autres tches.

Le temps de rponse au niveau tche est dans ce cas beaucoup plus faible que dans le cas des systmes de type Foreground/Background et il est reprsent par le temps dexcution de la plus longue tche. Un autre avantage des noyaux non premptifs est la non ncessit de garder les donnes globales partageables par des smaphores du moment que chaque tche possdant le CPU ne peut en aucun cas tre interrompue au profil de lexcution dune autre tche. Ceci nest pas une rgle absolue, car dans certains cas, les smaphores doivent tre utiliss pour laccs du matriel dentres/sorties (shared I/O devices). Par exemple, une tche ncessite toujours un accs exclusif a une imprimante. La seule manire dinterrompre une tche cest par interruption. Un ISR a toujours une priorit suprieure toutes les tches. Un ISR peut rendre une tche de plus haute priorit prte sexcuter. Par contre, un ISR retourne toujours la tche interrompue. Encore, cette tche de plus haute priorit ne prendra le contrle du CPU que lorsque la tche courante le libre. Ainsi, le plus grand inconvnient des noyaux non premptifs est le temps de rponse:

Une tche de plus haute priorit rendue prte par un ISR doit attendre longtemps, que la tche courante soit prte pour librer le CPU, avant de sexcuter. Comme dans le cas des systmes de type Foreground/Background, le temps de rponse au niveau tche dans le cas des noyaux non premptif nest pas dterministe. On ne sait rellement jamais quant est ce que la tche de plus haute priorit aura-t-elle le contrle du CPU. En rsum, un noyau non premptif permet chaque tche de sexcuter jusqu' ce quelle redonne volontairement le contrle du CPU. Une interruption suspend lexcution dune tche. La fin dexcution dun ISR rend le contrle la tche interrompue. Le temps de rponse au niveau tche est meilleur quavec les systmes de type Foreground/Background mais il est toujours pas dterministe.

2-1 Cas dun noyau premptif. Un noyau premptif est utilis quand le temps de rponse du systme est trs important. De ce fait, la plupart noyaux temps rel commerciaux sont premptifs. La tche de plus haute priorit prte sexcuter a toujours le contrle du CPU. Quand une tche rend prte une tche plus prioritaire, la tche courante est suspendue (prempte), et la tche de plus haute priorit prend immdiatement le contrle du CPU. Si un ISR rend une tche de plus haute priorit prte, au retour de lISR, la tche interrompue est suspendue et la nouvelle tche de plus haute priorit prend le contrle du CPU. Ainsi, avec un noyau premptif, lexcution de la tche de plus haute priorit est dterministe. On peut dterminer au pralable quand la tche de plus haute priorit va-elle-prendre le contrle du CPU. Le temps de rponse au niveau tche (task level response) est dans ce cas minimis Les applications bases sur un noyau premptif ne doivent en aucun cas utiliser des fonctions non rentrantes conditiondutiliser des accs exclusifs ces fonctions travers lutilisation des smaphores dexclusion mutuels.

Une corruption des donnes peut avoir lieu si une tche de haute priorit suspend une de plus faible qui est en cours dutilisation de la fonction. En conclusion, un noyau premptif excute toujours la tche de plus haute priorit prte sexcuter. Une interruption suspend lexcution dune tche. A la fin de lexcution dun ISR, le noyau donne le contrle la tche de priorit la plus leve prte pour sexcuter (pas forcement la tche interrompue). Le temps de rponse au niveau tche est dans ce cas optimum et dterministe.