Vous êtes sur la page 1sur 10

INTRODUCTION AUX CONCEPTS TEMPS REEL

:I- RAPPEL A LA NOTION DE MULTITACHE


I-1 Le principe de base
:a- Définition de multitâche
L'objectif principal de la notion de multitâche est d'exploiter le plus efficacement
.possible toutes les ressources d'un système informatique
Le système d'exploitation doit alors mettre en oeuvre les règles de possession et de partage de
ressources. Aussi, il doit définir les compétiteurs (processus) et les contrôler tout au long de
leurs exécution. Donc, les programmes susceptibles de partager les différentes ressources
.doivent être indépendantes les uns des autres. Une telle approche caractérise le multitâche
:b- La notion de processus
Un processus est une entité dynamique qui met en oeuvre un ou plusieurs programmes
statiques en vue de la réalisation d'une activité donnée par un processeur. Un processus est
fonction du temps, il peut être créé, exécuté ou encore détruit. Un processus comporte
différentes zones, en général trois

Pointeur de données Pointeur de


programme
Zone Zone
données programme

Pointeur de pile

Zone de pile

Zone de programme: Contient les instructions du programme et certaines constantes. *


.Accessible en lecture seulement
Zone de pile: Permet de ranger des informations temporaires (variables locales, adresse de *
.retour de sous-programme, etc. ...). Accessible en lecture et écriture
Zone de données: contient les données variables et les données constantes ou initialisées. *
.Elle est accessible en écriture et en lecture

ch 0 1
Le contexte d'un processus est caractérisé par les valeurs des registres du microprocesseur, de
l'état des pointeurs des zones mémoire associés au processus (instruction, données, pile) et des
:caractéristiques du processus. Parmi ces derniers, on trouve essentiellement
.le nom du processus •
La priorité, permettant de quantifier le degré d'urgence du processus. Cette priorité permet •
de déterminer l'ordre de l'allocation du processeur lorsque plusieurs processus sont en
.attente d'exécution
Un droit d'accès, spécifiant les ressources matérielles et logicielles accessibles par le •
.processus

?(Un identifiant de l'état instantané du processus (actif, en attente, bloqué •


Tous ce contexte attaché à un processus est mémorisé par le système dans un ordre fixé et •
.constitue le descripteur de processus
:C- Les appels systèmes
Un appel système est un service élémentaire fournis par le système pour accomplir
.certaines actions interdites en mode utilisateur
En ce qui concerne la gestion des tâches, un minimum de cinq primitives sont
:généralement mises en oeuvre
Créer_processus(): Elle retourne un identificateur de processus, ce qui permet d'identifier ♦
.le processus de manière exclusive
Détruire_processus(): permet de rendre un processus éligible (prêt) et peut-être même élu ♦
.selon sa priorité et celle du processus en cours
Désactiver_processus(): Consiste généralement à faire passer un processus à l'état hors- ♦
(service (bloqué
.Terminer_processus(): Permet de s'assurer de la fin cohérente du processus ♦
:D- La communication et la synchronisation
En environnement multitâches, les processus coopèrent en vue de la réalisation d'une
.activité commune
:On distingue deux sortent de coopération
La coopération temporelle: fait intervenir les notions de blocage et de déblocage de •
(processus. (Synchronisation
La coopération spatiale: se rapporte à l'échange d'information entre processus. •
(Communication
:La synchronisation .1

ch 0 2
Le multitâche pose le problème de la gestion des relations entre l'ensemble des
processus qui communiquent avec le système informatique pour obtenir une cohérence
.maximale des informations par rapport au temps
:On distingue 4 ( quatre ) catégories de relations entre les processus
.Les processus indépendants ♦
.Les processus ayant accès à des ressources communes ♦
.Les processus liés ♦
.(Les processus à contrainte de temps/ (urgence de traitement ♦
Dans le cas des processus ayant accès à des ressources communes, on doit prévoir des
.mécanismes pour assurer le partage de ses derniers
:Solution

les sémaphores -
(les événements (signaux -
les rendez-vous -
:La communication .2
Il plusieurs méthodes de communication de données entre tâches. Les plus courantes
: sont

(les boites à lettres (messages -


les files d'attentes -
:E- Ordonnancement des ressources
Le déroulement des processus temps réel est dépendant des événement externes à
l'ordinateur. Plusieurs tâches peuvent se trouver en concurrence pour l'octroi de l'unité
centrale. Ce conflit est levé en accordant à chaque tâche un niveau de priorité. Ainsi
.celle de plus grande priorité est exécuté en premier
(L'ordonnenceur (scheduler .3
L'ordonnenceur d'un environnement temps réel est le responsable de la gestion de
?
l'allocation du processeur. Chaque fois qu'une modification intervienne sur l'ensemble
Processus ELU
des tâches actives, l'odonnenceur sera invoqué. L'ordonnenceur à donc deux rôles
:essentiels
SELECTION DEBLOCAGE
assurer la gestion
)Dispatcher( des commutationDES
de PROCESSUS
tâches de l'état bloqué à l'état éligible *

Table des Table des Table des


processus processus événements
Eligibles Bloqués associés aux
processus
Bloqués

ch 0 3
ROLE DE L'ORDONNENCEUR
INEXISTAN 1
T
2
HORS
Service 3 7
14 4
13
11 Eligible
En Attente 12
de Ressource
6 5
15
8

En Attente 9
de Délai Elu

16 10

En Attente
événement
ETAT DES PROCESSUS ET TRANSITIONS
Création d'un processus fils par sont père -01
Destruction d'un processus -02
Activation d'un processus -03
Désactivation d'un processus -04
Sélection d'un processus par le dispatcher -05
Réquisition d'un processus par le dispatcher -06
Fin d'exécution du processus en cours -07
blocage sur accès à une ressource non disponible -08

ch 0 4
Blocage sur attente de fin de délai -09
(Blocage sur occurrence d'un événement (asynchrone -10
Activation d'un processus forcé d'attendre l'écoulement d'un délai -11
Activation d'un processus forcé d'attendre un événement -12
Activation d'un processus forcé d'attendre la libération d'une ressource -13
Activation d'un processus suite à la libération de la ressource attendu -14
Activation d'un processus suite à l'écoulement d'un délai -15
Activation d'un processus à l'occurrence d'un processus -16
:I-2 Les spécifictés temps réel
:a- Définition

Environnement

SYSTEME Action PROCEDE A


INFORMATIQUE COMMANDER
Information sur
état

)événement(

On ne peut parler d'un système temps réel (STR), que si on a un système informatique
.et un procédé à commander
Un système temps réel est composé d'un système informatique et d'un procédé à
commander. Ce système informatique doit répondre dans un temps garanti au
événements en provenance du procédé. Donc le système informatique est asservi à
.l'évolution dynamique du procédé à commander
.Un système temps réel est alors un système ayant des état finis et stable

ETAT1

événement 1
action 1

ETA2

ch 0 5
: b- Système informatique
Généralement le système informatique est un système multitâches. Plusieurs
:solutions sont envisageable
[PC++[(NTR) ou Carte NTR *
(UNIX + NTR (Noyau temps réel *
Exemple: NTR ou A6RMTR ou PSOS ou Vxworks
:Système d'exploitation temps réel *
Exemple: OS9
:c- Procédés à commander
Moteur : Axe d'un robot *
Robot: N Axes à commander *
Four électrique *
Avion *
(.Militaire (guidage de missile ... etc *
(.Télécommunication (Gestion des engorgement ... etc *

:Exemple

Soit un système embarqué à bord d'avion, qui a pour but de fournir la position
instantanée de celui-ci, par rapport à un point de référence, en fonction des différents
.paramètres d'entrées à partir d'un certain nombre de capteurs
:Le temps de traitement global est le temps mis pour
acquérir: toutes les données fournies par les capteurs -
traiter: ces données -
.fournir: un résultat -
On peut ainsi décomposer ces trois traitements en trois tâches distinctes et
.indépendantes

T1 = temps d'acquisition Si
T2 = temps de traitement
T3 = temps mis pour fournir le résultat
.Tlim = le temps limite à respecter et

ch 0 6
Il faut donc que T1 + T2 + T3 < Tlim pour que notre système fonctionne en temps
réel

Communication
Communication
Communicatio
Communicatio TACHE2
TACHE2
TACHE1-
TACHE1- TACHE3
TACHE3
Interruption
Interruption TACHE 1 TACHE
TACHE2
TACHE2 TACHE22 TACHE
TACHE33
périphérique TACHE 1
périphérique

Acquisistion
Acquisistionde
de Traitement
Traitementde Stockage
de Stockageetet
données
données données affichage
données affichagede
de
temps=T1
temps=T1 temps=T2
temps=T2 RESULTAT
RESULTAT
temps=T3
temps=T3
[Avec [ T1 + T2 + T3 <TEMPS LIMITE

: Donc

La définition d'une application temps réel est caractérisée avant tout par la
synchronisation entre le traitement de l'information et la génération de données issues
.du monde extérieur
Un programme temps réel fonctionne donc sous contrôle des sollicitations du monde
extérieur, par opposition à un programme classique linéaire qui commande les flots de
.données en entrée et/ou en sortie

.φ Scrutation sur une variable analogique Exemple:


φ information à durée de validité aléatoire (comptage des objets) passant
.devant un détecteur
:D- les contraintes temps réel
Le fonctionnement en temps réel d'un système impose des contraintes sur le
.système d'une manière générale et en particulier sur le matériel et sur les logiciels
φ Sur le système: Les contraintes regroupent tous les problèmes liés à la sécurité
.et à la sûreté de fonctionnement et pouvant entraîné sa dégradation
.Il faut donc mémoriser l'effet de défaillance

ch 0 7
:Exemple: chaîne de montage d'automobile
L'arrêt d'une machine ne doit pas arrêter le fonctionnement de toute la chaîne de
.production

:φ Sur les logiciels


Les logiciels temps réel, doivent permettre une mise en oeuvre de la gestion des
relations entre les processus par la mise à la disposition de langages adaptés et
.d'instructions spécialisées à ces langages
Donc, le problème des contraintes de temps consistent à pouvoir traiter l'information
suffisamment vite pour que l'action résultante ait un sens, tout en restant dans les limites
.de fonctionnement normal de la machine
:E- Le facteur temps
:La validité des informations dans le temps -1
Le domaine de fonctionnement en temps réel des ordinateurs recouvre différentes
.(.applications (commandes de processus ... etc
Certaines informations ne sont valables qu'a l'instant où elles sont fournies, ou durant u
laps de temps déterminé. Ces informations n'ont d'utilité que lorsqu'elles sont vraies et
se dégradent dans le temps. Dans un système temps réel, il faudra les exploiter durant
.leurs période de validité
Pour fournir une réponse, un système doit reconnaître, traiter et sortir un résultat. Le
.temps de réponse TR est le suivant

TR = Tcalcul + TE/S

:L'urgence et les délais -2


:a- Définition
.Le phénomène de délai est associé au temps de réponse•
.Le phénomène d'urgence est lié à la rapidité de traitement•
:b- Le traitement d'urgence
L'urgence est le résultat de respecter le temps maximal autorisé pour réaliser un
.traitement

Dans un système temps réel, certains traitement ont besoin d'être effectués avant
.d'autres par ce qu'ils sont plus urgents
:c- Le déterminisme = délai

ch 0 8
Le phénomène de délai (déterminisme) impose l'exécution d'un traitement dans un
temps maximal qu'on définit. Ce délai est déterminé en fonction du matériel
.((processeur) utilisé et de l'exécutif temps réel (temps de commutation

Arrivée d'une
interruption Traitement de
l'interruption

TACHE A
TACHE A

DELAI URGENCE

URGENCE ET DELAI

:Du coté processeur•


Temps total de traitement = (ΣTemps de chaque instruction) + temps associés au interruptions

.Donc le matériel est déterministe


:Du coté exécutif temps réel•
Un exécutif est dit déterministe s'il est indépendant de la charge du système et si l'on
peut répondre le plus vite possible à une requête externe et la traiter dans un temps
.maximum indépendant de l'environnement extérieur
:La préemption -3
:a- Définition
La préemption est la réquisition du processus pour l'exécution d'une tâche et d'une
.seule pendant un temps déterminé
.Donc la préemption est le fait de tenir compte le critère d'urgence de traitement
.Conséquence: La préemption ne s'applique qu'a la tâche de plus haute priorité

t1 Tâche préemptive t1

t2 tn

t3

Multitâche Réquisition du Multitâche


processur pour une
ch 0 )tâche (unique 9
ch 0 10