Vous êtes sur la page 1sur 8

SYSTEME D’EXPLOITATION TEMPS REEL

1 Principes de bases
La conception multitâche fait coexister en mémoire plusieurs programmes, les programmes s’exécutent
sous le contrôle du SE et se partagent les différentes ressources du système. Le système d’exploitation
multitâche doit alors mettre en œuvre les règles de possession et partage des ressources, définir les
compétiteurs (programmes en mémoire) et les contrôler tout le long de leur exécution. L’objectif principal
de la programmation multitâche est d’exploiter le plus efficacement possible toutes les ressources d’un
système informatique.

1.1 Quasi parallélisme


Un système d’exploitation doit en général traiter plusieurs tâches en même temps. Comme il n’a qu’un
processeur, il résout ce problème grâce à un pseudo parallélisme. Il traite une tâche à la fois, s’interrompt
et passe à la suivante. La commutation des tâches étant très rapide, le microprocesseur donne l’illusion
d’effectuer un traitement simultané.
Un système comportant un processeur et qui est capable d’exécuter plusieurs tâches simultanément et dit
multitâche - monoprocesseur.
A l’échelle du processeur, les tâches seront exécutées alternativement, la simultanéité est donc virtuelle,
on parle dans ce cas de quasi-simultanéité.

1.2 Noyau, exécutif et système d’exploitation


Les noyaux temps réel assurent la gestion de tâches (ordonnancement, outils de synchronisation et de
communication, gestion des interruptions) et de la mémoire. Ils sont appelés micronoyaux quand ils ont
une faible empreinte mémoire (taille mémoire nécessaire à leur exécution). Un noyau temps réel est apte
à être embarqué sur un microcontrôleur ou un microprocesseur disposant de peu de mémoire.
Un exécutif temps réel est une surcouche du noyau : il offre les services nécessaires à l’utilisation des
entrées/sorties, du réseau, des timers, des fichiers, etc. Le plus souvent, ces services sont modulaires, et il
est possible de configurer spécifiquement un exécutif en fonction de l’architecture utilisée.
Un système d’exploitation temps réel est un système d’exploitation complet reposant sur un exécutif
temps réel.

1.3 Notion de Processus


1.3.1 Tâche, processus
Une tâche est une unité logicielle effectuant une action de contrôle de processus spécifique et s’exécutant
sous le contrôle d’un système d’exploitation temps réel. Une Tâche en exécution est un processus. Un
processus est donc l’activité résultant de l’exécution d’une tâche séquentielle avec ses données par un
processeur.

1.3.2 Descripteur de Tâche : TCB (Task Control Block)


A chaque tâche est associée une structure de donnée nommée TCB dans laquelle le système mémorise
les informations associées à cette tâche. Ces données sont nécessaires à la gestion des processus.

www.espacetechnologue.com - 22 -
L’ordonnanceur connait les tâches uniquement par leurs descripteurs. En effet, toutes les opérations
réalisées sur une tâche sont effectués au niveau de son descripteur (TCB).
Dans la pratique, tous les descripteurs sont reliés entre eux selon le principe du double chaînage dans une
file, de façon à intervenir rapidement sur un processus donné.

1.3.3 Etats élémentaires d’un processus


Une Tâche peut être dans l’un des états fondamentaux suivants :
- Active (Elue): la tâche est en cour d’exécution;
- Prête (ou Eligible): en possession de toute les ressources nécessaire à son fonctionnement sauf du
processeur (état d’attente);
- Attente (suspendue): en attente d’une ressource indispensable à son fonctionnement (son exécution)
futur.
- Inactive : la tâche a terminé la fonction pour laquelle elle été conçue, elle ne participe plus à l’activité
du système.
- Terminer, Arrêter et Démarrer :
Active Bl o primitives de gestion des tâches
er
e r min q ue
r
T - Bloquer, Débloquer: primitives de
Préemption

synchronisation.
Sélection

Inactive Ar
Attente
rê - Préemption, Sélection : décision de
te r
Dé er l’ordonnanceur
ma
rrer ébl oqu
D
Le processus élu est choisi parmi les
Prête
processus prêts par l’ordonnanceur.
Terminer

2 Coopération entre tâches


En environnement multitâche, les processus coopèrent en vue de la réalisation d’une activité commune.
On distingue deux sortes de coopération, la coopération temporelle faisant intervenir les notions de
blocage et de déblocage du processus ; la coopération spatiale se rapportant à l’échange d’informations
entre processus. Ces deux types de coopération caractérisent respectivement la synchronisation et la
communication entre processus, l’une des difficultés de la mise en œuvre du multitâche étant d’assurer le
partage des ressources du système (exclusion mutuelle).
La coopération temporelle dans divers processus peut être assurée de différentes façons. On rencontre
plus couramment :
- la synchronisation par sémaphore ;
- la synchronisation par événement;

2.1 Les sémaphores


Le concept de sémaphore est une solution élégante à la plupart des problèmes d’exclusion mutuelle. Ce
concept nécessite la mise en œuvre d’une variable (le sémaphore), et de deux opérations atomiques
associées P et V.

www.espacetechnologue.com - 23 -
Un sémaphore joue le rôle d’un distributeur de ticket, que les processus utilisent à l’aide de deux
opérations:
• Opération P (PRENDRE), correspond à une demande de ticket.
• Opération V (VENDRE), correspond à une libération de ticket.
A un sémaphore, on associe:
- Un compteur, qui peut prendre des valeurs entières, négatives, nulle ou positives;
- Une file d’attente de type FIFO, où sont stockés les processus en attente de ticket.
Tout processus qui prend possession de la ressource doit exécuter deux procédures:
- Une procédure P(s), au début;
- Une procédure V(s), lorsqu’il libère la ressource;
Procédure P(s) Procédure V(s)
Début Début
SS–1 SS+1
Si S ≥ 0 Alors Si S  0 Alors
Le processus prend la ressource Sélectionner un processus dans la
Sinon file et le rendre éligible.
Le processus est mis en attente Sinon
dans la file Rien de spécial, la tâche poursuit
Finsi son activité
Fin Finsi
Fin
Ces deux procédures sont appelées des primitives. Une primitive est une séquence programmée grâce à
laquelle l’utilisateur peut demander au moniteur l’exécution d’une fonction déterminée.

2.2 Les événements


Une deuxième technique de synchronisation courante fait appel à la notion d’évènements lorsque ce terme
désigne précisément un signal logiciel asynchrone par rapport au fonctionnement du processus récepteur.
Dans ce cas l’évènement est représenté par une variable booléenne.
- Evt = 0 : évènement est dans l’état NON ARRIVE (faux).
- Evt = 1 : évènement est dans l’état ARRIVE (vrai).
On attache à l’événement une file d’attente, trois opérations essentielles sont définies : le positionnement
de l’évènement (Evt = 1), sa remise à zéro (Evt = 0) et l’attente de l’évènement (insertion dans la file
d’attente). Trois primitives sont associées à ces opérations : SET, RESET et WAIT.

2.3 Communication par boîtes aux lettres


Il existe plusieurs méthodes de communication entre les tâches. Les plus courantes étant celles des boîtes
aux lettres ou de file de message. Ce mécanisme relève du modèle producteur-consommateur.
Une boîte aux lettres est une zone d’échange entre deux tâches. Deux files d’attente sont associées à une
boîte aux lettres :
- une file d’attente des messages

www.espacetechnologue.com - 24 -
- une file d’attente des tâches
Le mécanisme producteur-consommateur doit assurer une bonne régulation de la communication, c'est-
à-dire, éviter que le producteur dépose une donnée dans un tampon déjà plein. De même éviter que le
consommateur ne vienne lire une donnée dans un tampon vide.
Les tâches utilisent les primitives :
Déposer (donnée) pour la tâche de production
Prendre (donnée) pour la tâche de production.

ORDONNANCEMENT

1 Ordonnancement des processus


La stratégie utilisée pour choisir parmi les processus prêt le prochain processus à exécuter s’appelle
ordonnancement. L’ordonnancement consiste simplement à ordonner les processus selon un critère bien
déterminé. Il existe plusieurs stratégies d’ordonnancement spécifiques pour le temps réel ; La majorité des
stratégies d’ordonnancement sont à base des files d’attentes. Deux techniques de base sont adoptées
dans la plupart des systèmes :
- ordonnancement coopératif (non déterministe)
- ordonnancement préemptif.

1.1 Technique FIFO


C’est un algorithme élémentaire qui ne prend en compte aucune notion de priorité, ni d’échéance pour
un processus donné. Les processus s’exécutent dans l’ordre et sans interruption.

1.2 Algorithme à priorité


Chaque processus est muni d’une priorité. A chaque quantum, c’est le processus prêt de forte priorité qui
est élu. En cas d’égalité d’autres règles peuvent s’appliquer (FIFO par exemple).

1.3 Algorithme du Tourniquet (Round robin)


Les processus prêts ont droit à tour de rôle à un quantum ().
- si la tâche se termine ou se bloque avant le quantum , on passe à la suivante ;
- sinon, on remet la tâche en cours dans la file d’attente des tâches éligibles et on passe à la suivante.

2 Modélisation des tâches


Afin de pouvoir analyser de manière rigoureuse l’ordonnançabilité d’une configuration des tâches ; il est
nécessaire d’avoir un modèle mathématique. Ce modèle doit permette de prendre en compte toutes les
caractéristiques opérationnelles et temporelles d’une tâche.

www.espacetechnologue.com - 25 -
2.1 Modélisation des tâches périodiques
Le modèle d’une tâche périodique repose sur trois paramètres :
- r0 : date de réveil, c’est l’instant où elle demande le processeur.
- C = Cmax : durée d’exécution maximale d’une tâche.
- P : Période d’exécution de la tâche.
La date de réveil rk de la kième instance : rk = r0 + kP
Normalement la tâche doit avoir terminé son exécution avant la fin de la période. La tâche est dite à
échéance sur requête.
P
C
r0 r1 r2
L’échéance peut être plus courte que la fin de la période. Dans ce cas on définit un nouveau paramètre
«le délai critique D». Le délai critique correspond à la durée au bout de laquelle la tâche doit être terminée.
D P
C
r0 d0 r1 d1 r2
L’échéance dk de la kième instance : dk = rk + D = r0 + kP + D

2.2 Modélisation des tâches apériodiques


Pour les tâches apériodiques le seul paramètre connu est le temps d’exécution C. le temps de réveil est
aléatoire. Dans un système temps réel il faut connaitre aussi l’échéance.
D
C
r0 d0 r1 d1
2.3 Autres paramètres
2.3.1 Les paramètres statiques
 La laxité
C’est le temps restant entre la fin d’exécution de la tâche et son échéance.
L
L
r0 d0 r1 d1
 Délai de latence
C’est la durée de temps avant le début d’exécution de la tâche.
Dl
Dl
r0 d0 r1 d1
Dl  D – C ; Dlmax = D – C

www.espacetechnologue.com - 26 -
2.3.2 Les paramètres dynamiques
 Le temps d’exécution restant
C(t) = C – Cexécuté
 Délai critique dynamique
D(t) = d – t
 Laxité dynamique
L(t) = D(t) – C(t) = d – t – C(t) = D + r – t – C(t)
 Date de début d’exécution « s »
 Date de fin d’exécution « e »
D
L(t)
r0 s0 t C(t) e0 d0
D(t)
2.3.3 Charge du processeur
Une tâche est définie par T( r0, C, D , P)
 Facteur d’utilisation du processeur par Ti
ui = Ci/Pi
 Facteur de charge du processeur par Ti
uhi = Ci/Di
 Facteur d’utilisation du processeur
U = Ci/Pi
 Facteur de charge du processeur
Uh = Ci/Di

3 Ordonnancement des tâches périodiques


3.1 Ordonnancement à Priorité fixe
3.1.1 Rate Monotonic (RM)
n
Ci  1 
La tâche de plus petite période est la plus prioritaire. Condition suffisante :   n  2 n  1
i 1 Pi  

www.espacetechnologue.com - 27 -
3.1.2 InverseDeadline ou DeadlineMonotonic (DM)
La priorité d’une tâche est inversement proportionnelle à son échéance relative. Condition suffisante
n
Ci  1n 
d’acceptabilité :   n  2  1
i 1 Pi  

3.2 Ordonnancement à priorité dynamique


3.2.1 Earliest Deadline First (EDF)
A tout instant, la tâche la plus prioritaire (parmi les tâches prêtes) est celle dont l’échéance absolue est la
n
C
plus proche. Pour des tâches périodiques quelconques, une condition suffisante est :  i  1 et une
i 1 Di
n
Ci
condition nécessaire est : P
i 1
1
i

www.espacetechnologue.com - 28 -
3.2.2 Least Laxity (LLF)
La tâche de plus haute priorité à l’instant t est celle qui a la plus petite laxité dynamique Li (t).

www.espacetechnologue.com - 29 -

Vous aimerez peut-être aussi