Vous êtes sur la page 1sur 22

Temps Réel

S3

Systèmes multitâches et
Noyau temps réel

L. BOUHOUCH
2022/2023
PLAN
2

• Introduction
• Etats d’une tâche :
• Non créé ;
• Dormant ou Créé ;
• Prêt ou Eligible ;
• En exécution ;
• Bloqué ou Suspendu ;
• Transitions entre états d'une tâche ;
• Politiques d'ordonnancement ;
• Systèmes avec/sans réquisition du processeur :
• Noyau coopératif
• Noyau préemptif ;
• Temps de latence ;
• Temps réel dur & mou ;
INTRODUCTION
3

 Dans les procédés  Notion de tâches :


 Tâche matérielle (tâche liée aux interruptions) et
 Tâche logicielle (tâche de fond).

 Un moniteur temps réel et un système multitâche permettent d’exécuter


des fonctions de façon concurrente ( Tâches) en leur attribuant :
 Un niveau de priorité,
 Un quantum de temps processeur pour les systèmes monoprocesseur,
 Un processeur pour les systèmes multiprocesseurs.
ETATS D’UNE TACHE
4

 A un instant donné, chaque tâche se trouve dans l’un des états suivants :

 Passage d’1 état à 1 autre s'effectue à


l'aide d’appel de requêtes programmées
dans le noyau.
 Ensemble des requêtes forme les primitives
de l'exécutif temps réel ou de l'exécutif
multitâche.
ETATS D’UNE TACHE
5

 Propriétés des différents états :


 NON CREE
 Tâche inconnue de l'exécutif.
 DORMANT ou CREE
 Tâche connue par son identificateur et la zone de pile qui lui est attribuée. Elle reste dans
cet état tant qu'une requête d’activation ne la fait pas évoluer.
 PRET ou ELIGIBLE
  Tâche candidate pour l'exécution. Son lancement dépend de sa priorité par rapport
aux autres tâches éligibles ou en cours d'exécution.
Si elle est prioritaire, l'ordonnanceur lui attribue le processeur.
ETATS D’UNE TACHE
6

 Propriétés des différents états :


 EN EXECUTION
  Tâche en possession du processeur. Si système monoprocesseur, plusieurs tâches de
même priorité peuvent être en exécution mais 1 seule est en possession du processeur réel,
chaque tâche se voyant attribuer un quantum de temps processeur. Tant qu'elle est
prioritaire et qu'elle n’exécute pas une requête de suspension directe ou indirecte, une
tâche reste dans cet état.
 BLOQUE ou SUSPENDU
  Tâche ne possédant plus le processeur et son état est sauvegardé en vue de sa future
reprise.
TRANSITIONS ENTRE ETATS D’UNE TÂCHE
7

Franchissement des transitions = Conséquence


d'appels directs ou indirects aux primitives de
l'exécutif.
 CREATION D'UNE TACHE (CREER)
 Se faire connaître par l'exécutif  Fournir
adresse de début, taille de pile et niveau de
priorité. En retour : Noyau fournit un
identificateur référençant la tâche.
 Pile utilisée pour loger variables locales et
adresses de retour lors des appels de fonctions.
Sert aussi à mémoriser le contexte du processeur
lors de commutations de tâche.
 Pile insuffisante  Souvent cause des
dysfonctionnement mystérieux.
 Certains systèmes utilisent les mécanismes
d'exceptions du processeur pour déterminer les
débordements de pile et réallouer
automatiquement une pile supplémentaire.
TRANSITIONS ENTRE ETATS D’UNE TÂCHE
8

 ACTIVATION D'UNE TACHE (ACTIVER)


  Demande d'exécution. L'activation peut être
immédiate, différée ou cyclique.
 Activation immédiate  Faire passer une tâche
de l'état dormant à l'état prêt, mais ne
correspond pas à l'appel direct de la fonction
tâche (lancement restant sous le contrôle de
l'ordonnanceur).
 Demandes d'activation généralement
mémorisées : Aux demandes d'activations
correspondent 3 cycles : DORMANT → PRET →
EXEC → DORMANT.
 Une activation différée consiste à lancer une
tâche après un délai précis.
 Une activation cyclique consiste à relancer une
tâche avec une période précise.
TRANSITIONS ENTRE ETATS D’UNE TÂCHE
9

 ATTRIBUTION DU PROCESSEUR A LA TACHE


 Tâche lancée depuis son début. Ce début
d’exécution non forcément immédiat : Si
d'autres tâches (même priorité) sont déjà dans
cet état, la tâche attendra son tour suivant le
mécanisme du tourniquet.
 Transition non maîtrisée par le programme,
mais par l'ordonnanceur.
TRANSITIONS ENTRE ETATS D’UNE TÂCHE
10

 SUSPENSION D'UNE TACHE (SUSPENDRE)


 Tâche stoppée  Son contexte est enregistré
de façon à pouvoir la reprendre exactement
à l'endroit ou elle s’est arrêtée.
 Suspension de tâche obtenu par appel direct
(instruction ou requête DORT) ou indirect à
travers une primitive et sur des conditions
particulières.

 REPRISE D'UNE TACHE BLOQUEE (REVEILLER)


 Transition non contrôlée directement.
 Si toutes les conditions sont réunies pour
continuer une tâche (priorité max. par rapport
aux autres, disparition des conditions de
blocage)
 Contexte de tâche est rechargé et celle-ci
est relancée à l'endroit où elle s'était arrêtée.
TRANSITIONS ENTRE ETATS D’UNE TÂCHE
11
 FIN D'UNE TACHE ou DESTRUCTION D'UNE TACHE
(DETRUIRE)
 Tâche terminée ou détruite est replacée à l'état
dormant.
 Fin de tâche peut être obtenue par un appel
explicite au noyau ou implicite lors de la fin de
la tâche.
 SUPPRESSION D'UNE TACHE (SUPPRIMER)
 Optimiser l'usage des ressources  La requête
SUPPRIME remet la tâche à l'état Non CREE.
 ATTRIBUTION DU PROCESSEUR REEL
 Transition a lieu tous les quantums pour qu’une
tâche soit à l'état EXEC.
 Transition non maîtrisable directement.
 ATTRIBUTION DU PROCESSEUR VIRTUEL
 Transition ayant lieu chaque fois qu'une tâche a
utilisé le processeur réel durant un quantum.
POLITIQUES D'ORDONNANCEMENT
12

 La politique d'ordonnancement définit le critère utilisé par le noyau pour élire une tâche.
 Diverses politiques d'ordonnancement sont utilisées :
 1- Ordonnancement Circulaire ou Tourniquet :
 Les tâches possèdent la même priorité.
 Les tâches se partagent le processeur sans affinité particulière.
 Convient rarement pour les systèmes temps réel.
POLITIQUES D'ORDONNANCEMENT
13

 Ordonnancement Circulaire ou Tourniquet :

Exemple tourniquet :
 Soit 3 tâche T1, T2, T3 de durées
respectives 6, 3, 4 démarrant à 0.
 En s’exécutant pendant 1 quantum
chacune, l’ordre d'exécution est :
 T1-T2-T3 - T1-T2-T3 - T1-T2-T3
- T1-T3-T1-T1

T3
T2
T1
POLITIQUES D'ORDONNANCEMENT
14

 2- Ordonnancement à Priorité fixe :


 Chaque tâche possède un niveau de priorité différent.
 La tâche exécutée est toujours la plus prioritaire.
 Bien adapté aux systèmes temps réels.
POLITIQUES D'ORDONNANCEMENT
15

 Ordonnancement à Priorité fixe :

Exemple de priorité Fixe :


 Soit 3 tâche T1, T2, T3 de durées
respectives 6, 3, 4 et de Priorités
respectives 2, 1, 2.
 En s’exécutant selon l’ordre des
priorités, l’ordre d'exécution est :
 T2-T2-T2 - T1-T3 - T1-T3 -
T1-T3 - T1-T3 - T1 - T1
T3
T2
T1
POLITIQUES D'ORDONNANCEMENT
16

 3- Ordonnancement à Classe de priorités (Combinaison des deux politiques précédentes) :


 Tâches groupées par classe de priorité au sein desquelles l'ordonnancement est de type
circulaire.
 Système présentant le maximum de souplesse.
POLITIQUES D'ORDONNANCEMENT
17

 4- Ordonnancement Par priorité avec Modification dynamique de la priorité en fonction de


l'âge de la tâche
 Politique faisant perdre progressivement la priorité aux tâches :
 Les tâches de courtes durées sont toujours exécutées en premier.
 Politique remplaçant le contrôle des tâches exercées par le programmeur, par celui
exercé par le noyau.
 Permet de faire fonctionner (mal) des programmes présentant des erreurs de
conception.
 Déconseillé pour la commande temps réel.
SYSTEMES AVEC OU SANS REQUISITION DU PROCESSEUR
18

Systèmes multitâches et Noyaux temps réels  2 catégories :


 Noyaux sans réquisition du processeur (No préemptive scheduling) : Systèmes Coopératifs.
 Le processus se termine complètement avant de rendre la main.

 Noyaux avec réquisition du processeur (Préemptive scheduling) : Systèmes Préemptifs.


 Le processus peut être interrompu pour rendre la main

 NOYAU COOPERATIF

  Au programmeur de décider de l’instant de commutation par un appel explicite.


 Type de noyau très efficace, mais moins tolérant aux erreurs de conception des
applications.
 Généralement utilisé dans les applications à très forte contrainte de temps.
 Si une tâche se bloque (erreur de programmation ou matérielle), l'ensemble des tâches se
bloque également.
 Exemple typique de système coopératif : Windows 3.1
SYSTEMES AVEC OU SANS REQUISITION DU PROCESSEUR
19

 NOYAU PREEMPTIF

  Noyau avec réquisition du processeur alloue celui-ci de façon transparente aux tâches,
en fonction des priorités en cours.
 La tâche qui se trouve Préemptée n'a aucune possibilité de le savoir.
 Mécanisme réalisé par un programme d'interruption lancé par une interruption périodique
à forte priorité. Ce programme explore les files de tâches prêtes ou suspendues et
attribue le processeur à l'une d'elle selon une politique d'ordonnancement spécifique à
chaque noyau.
SYSTEMES AVEC OU SANS REQUISITION DU PROCESSEUR
20

 Exemple simple où un ordonnaceur PRÉAMPTIF sera mis en Echec


(Th1 prioritaire sur Th2)
Th C P D
Th1 T1
1 1.8 4.3 4.3
T2
2 5.0 8.6 5.6
Non PREEMPTIF
Th2

Th1

PREEMPTIF
Th2
SYSTEMES AVEC OU SANS REQUISITION DU PROCESSEUR
21

 Exemple simple où un ordonnaceur NON-PRÉAMPTIF sera mis en Echec


(Th1 prioritaire sur Th2)
Th C P D
Th1 T1
1 2.5 5.0 5.0
T2
2 6.8 15 15

Non PREEMPTIF
Th2

Th1

PREEMPTIF
Th2
SYSTEMES AVEC OU SANS REQUISITION DU PROCESSEUR
22

 TEMPS DE LATENCE

 Sections de code non interruptibles perturbent le fonctionnement des systèmes


Coopératifs et Préemptifs.
 Ces sections doivent être très courtes.
 Diminuer le temps s'écoulant entre apparition d'une interruption et son traitement effectif.
 Temps appelé temps de Latence : L’un des critères distinguant les noyaux temps réels Mou
(systèmes multitâches), des noyaux temps réel Durs.
 Temps de latence est généralement < 50 µs.

 TEMPS REEL DUR, TEMPS REEL MOU

  Noyau temps réel Mou ne spécifie ni les temps de commutation de contexte, ni les temps
de latence.
 Un noyau temps réel Dur garanti un temps max. de commutation de contexte et un temps
de retard max. entre l'apparition d'interruption et son début de traitement.
 Les temps de commutation de contexte : de 1 à 100 µs (fonction du noyau et processeur),
soit 10000 commutations/secondes dans le cas le plus défavorable.

Vous aimerez peut-être aussi