Вы находитесь на странице: 1из 26

Chapitre II: système temps réel Multitache

2019 - 2020 1ère Année Mastère Mécatronique


Définitions

Un STR comporte en général des tâches soumises à des fortes


contraintes de temps et des tâches pouvant être différées tout en
étant exécutées dans l’intervalle de temps voulu.
Les tâches soumises à des fortes contraintes de temps sont liées à
des interruptions et sont appelées tâches matérielles.
Les tâches différées ou tâches logicielles sont programmées dans
une boucle de scrutation.
Lorsque le programme est effectué par une boucle de scrutation, on
parle d’un système mono-tâche, dans le cas contraire, le système est
dit multitâche.

3
Définitions

La programmation multitâche est facilitée par des outils logiciels appelés:
Système d’exploitation temps réel (SETR)
Noyau ou exécutif ou moniteur multitâche temps réel
Le système d’exploitation temps réel fournit un support logiciel complet et
les tâches sont généralement des programmes complets et portant le
nom de processus.
Le noyau est destiné à être utilisé soit sans SE, soit en complément d’un
système d’exploitation et les tâches sont des procédures d’un même
programme.

4
Architecture Globale d’une Application TR

Les noyaux temps réel assurent la gestion des tâches (ordonnancement


des tâches, outils de synchronisation et de communication, gestion des
interruptions…) et de la mémoire. Ils sont aptes à être embarqués sur un
µ-contrôleur ou un µ-processeur disposant de peu de mémoire.

L’exécutif temps réel est une surcouche du noyau temps réel: elle offre
des services nécessaires à l’utilisation des E/S, du réseau, du fichier, du
Timer….

Un SETR est un système d’exploitation complet reposant sur un exécutif


temps réel.

5
Architecture Globale d’une Application TR

5
Définitions

Un calculateur multitâches TR doit comporter au minimum les éléments


matériels suivants:
Un dispositif d’horlogerie appelé horloge temps réel
Un système d’interruption à priorité
Les interfaces d’E/S adaptés aux processus à contrôler.
Ces composantes matérielles sont gérées par un SETR ou par un noyau
temps réel.
SETR: les outils disponibles comporte des langages spécialisés ou
généraux C, C++, Fortran…
NTR: les logiciels peuvent être sous forme de bibliothèque de fonctions.

6
Modèle d’une tâche dans un système multitâches

Taches dans les STR: Définition

Une tâche (ou thread) est un programme qui s’exécute normalement en pensant avoir le
contrôle exclusif du processeur.

9
Modèle d’une tâche dans un système multitâches

Taches dans les STR: Définition

La plupart des applications temps réel exigent une exécution parallèle de plusieurs
activités
➢ utilisation optimale des ressources
➢ gain de temps quand c'est possible
➢ mais les exigences en termes de conception sont plus grandes

Une autre définition considère la tâche comme un fil d'exécution indépendant qui peut
entrer en compétition avec d'autres fils pour accéder au CPU, elle est utilisée pour
optimiser la gestion des entrées/sorties

9
Modèle d’une tâche dans un système multitâches

Taches dans les STR: Définition


L’ensemble des tâches du système est représenté en général par une liste chaînée dont
chaque élément est un bloc de contrôle de processus et pourrait avoir la structure:

9
Modèle d’une tâche dans un système multitâches

Contexte d’une tâche:


Le contexte d'une tâche est l'ensemble de paramètres liés à la tâche qui sont nécessaire au
noyau temps-réel (ou SETR) pour sa gestion ( identificateur, adresse de début d'exécution,
priorité, État , pile etc..)

a) Identificateur : Généralement c'est un entier géré par le NTR pour identifier chaque tâche
de l'application.
b) Adresse de début d’exécution de la tâche : C’est le nom de la tâche dans le langage C.
c) Niveau de priorité : C’est une valeur entière allouée à chaque tâche traduisant son niveau
d’importance dans l’application.
d) Etat : C’est l’état d’une tâche à un instant donnée de la vie d’une application.

Bloc de contrôle
Les données du contexte d'une tâche sont regroupées dans une structure ou un tableau qui est
appelé le bloc de contrôle d'une tâche "BC".
•A chaque tâche correspond un BC. Un fichier ou structure d'initialisation de l'application
indique (au noyau le nombre des BCs à créer pour gérer les tâches de l'application.
•Les BCs sont appelés aussi descripteur de tâches. Les BCs sont chaînés. Chaque bloc pointe
vers le précèdent et le suivant.
•Le bloc de contrôle de la dernière tâche a un pointeur NULL. Une des possibles
11
Modèle d’une tâche dans un système multitâches

Taches dans les STR: Définition

9
Modèle d’une tâche dans un système multitâches

Zones mémoire d’une tâche:


 Zone programme : contient le code exécutable du processus ;
 Zone de données : les données initialisées, les données non initialisées et les données
statiques (externes, globales ou déclarées comme statiques) résident dans cette zone ;
Zone de pile : nous y trouvons généralement des informations temporaires (variables
locales, adresses de retour, paramètres …).

L’allocation de ces zones est assurée par l’exécutif, qui dispose d’un gestionnaire mémoire
lui permettant lors du lancement d’un processus, d’attribuer à celui-ci, des pointeurs
contenant l’adresse du début de chacune des trois zones citées. Ces pointeurs feront partie du
contexte du processus lancé.

9
Modèle d’une tâche dans un système multitâches

Conceptuellement, chaque tâche possède un processeur virtuel comprenant :


• son pointeur d’instructions (IP)
• sa zone de données,
• son pointeur de pile (SP: Stack Pointer)

Modèle conceptuel d’un système comportant 3 tâches T1, T2, T3


9
Modèle d’une tâche dans un système multitâches

9
Modèle d’une tâche dans un système multitâches

Etat d’une tâche

Le passage d’un état à un autre s’effectue à l’aide de fonctions


programmées dans le noyau. Ces fonctions sont appelées requête du
noyau.
L’ensemble de ces requêtes forme le primitif de l’exécutif temps réel.

Etats d’une tâche


dans un système
mutitâches et
principales transitions
entre états
12
Modèle d’une tâche dans un système multitâches

Etat d’une tâche


Etat non crée
Une tâche dans un état non crée est une tâche inconnue de l’exécutif.
Dans un système comportant des périphériques de stockage, ces tâches
ne sont pas chargées en mémoire et ne possédent pas de zones de
code, des données ou de pile. La seule transition est celle permettant de
faire évoluer la tâche vers l’état crée (dormant).

13
Modèle d’une tâche dans un système multitâches

Etat d’une tâche (Suite)

Etat dormant ou crée


Une tâche à l’état crée est une tâche connue à l’exécutif. Un
identificateur lui a été attribué ainsi qu’une zone de pile. Les seules
transitions possibles à partir de l’état crée sont celles vers l’état prêt
et l’état non crée.

14
Modèle d’une tâche dans un système multitâches

Etat d’une tâche (Suite)


Etat prêt
Une tâche à l’état prêt est candidate au processeur . Son lancement
(exécution) ne dépend que de sa priorité % aux autres tâches en exécution
et en attente.
L’ordonnanceur lui attribue le processeur lorsque la tâche devient prioritaire.
A partir de cet état, la tâche ne peut pas évoluer que vers l’état exécution ou
l’état dormant.

15
Modèle d’une tâche dans un système multitâches

Etat d’une tâche (Suite)


Etat en exécution
Une tâche à l’état exécution est une tâche en possession du processeur.
Dans un système monoprocesseur, plusieurs tâches de même priorités
peuvent être en exécution mais une seule tâche est en possession du
processeur. L’attribution du processeur est liée à l’ordonnanceur.

Une tâche reste dans cet état tant qu’elle est prioritaire et ne rencontre
pas une condition de blocage

1
Modèle d’une tâche dans un système multitâches

Etat d’une tâche (Suite et fin)


Etat bloqué ou suspendu
Une tâche à l’état bloqué ou suspendu n’est plus en possession du
processeur. La tâche s’est interrompue avant sa fin sur l’apparition d’une
condition de blocage.
Aumoment du blocage, tous les
contextes de la tâche sont
sauvegardés et les différentes
tâches sont mises à jour. Les
conditions de reprise d’une
tâche sont la disparition de la
condition de blocage et la tâche
devient prioritaire

17
Modèle d’une tâche dans un système multitâches

Transitions entre les états d’une tâche


La plupart des transitions sont la séquence d’appel aux primitives du
noyau
Création d’une tâche
Elle consiste à la faire connaître à l’exécutif temps réel (ou moniteur).
Pour lancer une tâche, le noyau doit connaitre son adresse, la taille de
pile utilisée et la priorité de la tâche.
Activation d’une tâche
C’est une demande d’exécution. Elle peut être immédiate, différée ou
cyclique.
Une activation immédiate consiste à faire passer une tâche de l’état
dormant à l’état prêt et le lancement est chargé à l’ordonnanceur. Les
demandes d’activation sont mémorisés dans le noyau.

18
Modèle d’une tâche dans un système multitâches

Transitions entre les états d’une tâche


Une activation différée consiste à lancer une tâche après un délai précis.
Une activation cyclique consiste à lancer une tâche à des intervalles
réguliers.
Blocage d’une tâche
La tâche abandonne le processeur réel: elle doit faire appel à une
requête pour se bloquer ou bien lorsque la tâche lit des informations
susceptibles d’être indisponible.
Relance d’une tâche bloquée
Lorsque toutes les conditions sont réunies pour continuer une tâche, la
tâche est placée dans une file d’attente.
Par la suite, le noyau lui passera le processeur réel en rechargeant le
contexte des tâches interrompues à partir de la pile de tâche.
19
Modèle d’une tâche dans un système multitâches

Transitions entre les états d’une tâche


Fin ou destruction de tâche
Une tâche terminée ou détruite est placée à l’état dormant
Suppression d’une tâche
Pour optimiser l’usage de la mémoire, une requête « supprime » une
tâche à l’état non crée.

20
Gestion multitâches, ordonnancement

Ainsi, un programme en cours d’exécution peut avoir plusieurs


états dont les principaux sont :
Courant : pour la tâche "élue" ou la tâche qui possède le processeur.
Prêt : pour la tâche "éligible" c-à-d. qui demande le processeur.
En-attente : la tâche est bloquée en attente d’un événement
(exemple : elle a appelée l’opération ATTENDRE).
Une tâche est dite active si elle est prête ou courante

27
Gestion multitâches, ordonnancement

Etats des tâches


La manipulation des
tâches par le système
d’exploitation se fait à travers
la structure de donnée
appelée descripteur de tâche
(task control block). Ce
descripteur contient l’état de
sa tâche. La réservation d’un
descripteur se fait lors de la
création de la tâche.

28
Gestion multitâches, ordonnancement

Selon l’évolution du système


et la politique d’ordonnancement,
l’ordonnanceur(Schduler) fait
passer la tâche d’un fil à un autre
ou choisit la tâche courante d’un
fil à un autre (en attente, prête) ou
choisit la tâche courante parmi les
tâches prêtes.

29

Вам также может понравиться