Vous êtes sur la page 1sur 23

Temps Réel

S2

Contraintes du temps d’un système

L. BOUHOUCH
2022/2023
PLAN
2

• Rappels ;
• Contraintes de temps faibles
• Algorithme adapté aux contraintes de temps ;
• Exemple : Programmation d'un terminal
• Contraintes de temps faibles avec qqs événements contraignants ;
• Algorithme adapté aux contraintes de temps ;
• Cas d'une seule interruption (I1) de récurrence f1=1/T1 ;
• Cas de plusieurs interruptions traités de façon séquentielles ;
• Cas d'interruptions emboîtées ;
• Exemple : Terminal avec réception de caractères à vitesse élevée
RAPPELS
3

 Multitâche = Exécution de fonctions de façon concurrente.


 Multi processus = Exécution de processus de façon concurrente.
 Tâches = Fonctions ou procédures exécutées de façon concurrente.
 Système Temps Réel = Système qui respecte les contraintes de temps.
 1 Tâche est exécutée en réponse aux sollicitations externes ou internes avec
contraintes de temps fixées par l'évolution du procédé à contrôler.
 Pour l’Evénement Ei (Etat d'un capteur ...)  Nécessité de calcul de l’ensemble des
fonctions Fj dépendantes de l'état Q de la commande.
 Durée de calcul tc : fonction des algorithmes utilisés et de la puissance du processeur.
 Procédé contrôlé fixe une Echéance de temps Te pour chaque calcul.
Echéance caractérisant le système temps réel.
On a des systèmes à :
 Contraintes de temps faible et variées : tc << Te  Temps réel Mou

 Contraintes de temps faible avec qqs événements contraignants,  Temps réel Dur
 Contraintes de temps fortes : tc ≈ Te.
CONTRAINTES DE TEMPS FAIBLES
4

 Algorithme adapté aux contraintes de temps


  Type de contrainte solutionné par une programmation en mode bouclé
(gestion des E/S par scrutation)
 Le programme scrute en permanence les entrées avec un temps ty < Te.
 Bouclages en arrière en attente d'événements interdits, car ils rallongent la durée du
cycle ty de façon indéterminée.
 Mode de programmation très utilisé essentiellement du fait de sa simplicité.
 Programmation simple à mettre en œuvre
Mais inconvénients :
 Difficile à maintenir et à faire évoluer.
 Lors de modifications ou d'ajouts de fonctions, les contraintes de temps peuvent ne plus être
respectées.
 Cohabitation des contraintes de temps faible avec des contraintes fortes.
 Alternative : Remplacer calculateur par un modèle plus puissant
 Evite la réécriture complète du programme.
CONTRAINTES DE TEMPS FAIBLES
5

 EXEMPLE : Programmation d'un terminal


 Un terminal ou périphérique de dialogue opérateur (clavier). Il
permet d'afficher sur sa sortie de dialogue (tube cathodique ou
écran LCD), les caractères arrivant sur son entrée de communication.
 Simultanément tout caractère frappé au clavier (entrée de dialogue) est
transmis sur sa sortie de communication.

Le cahier des charges fixe les contraintes de temps suivantes :


 Vitesse de frappe maxi : vf = 10 caractères/secondes ;

 Vitesse d'affichage constatée sur l'écran : 1000 caractères/secondes ;


 Vitesse de réception ou d'émission des caractères sur la ligne : 50 à 38400 Bauds;
 Format (10 bits au total) : 8 bits de données, 1 bit de start, 1 bit de stop.
CONTRAINTES DE TEMPS FAIBLES
6

 EXEMPLE : Programmation d'un terminal (suite)


 Diagramme SART (Structural Analysis Real Time) est donnée ci-dessous :  2 tâches :
 Tâche Lire : Effectue l'acquisition et l'envoi des caractères frappés sur clavier.
 Tâche déclenchée par la frappe d'un caractère.
 Tâche Afficher : Affiche le caractère présent sur le port série.
 Tâche déclenchée par la réception d'un caractère.
CONTRAINTES DE TEMPS FAIBLES
7

 EXEMPLE : Programmation d'un terminal (suite)


 Organigramme simplifié du programme terminal donné ci-dessous.
 Supposition : Un caractère a eu le temps d’être
Cahier des charges :
transmis entre deux frappes successives au clavier.
 Vitesse de frappe maxi :
vf = 10 caractères/secondes ;
 Détermination des contraintes de temps  Vitesse d'affichage constatée
sur l'écran :
Pour une vitesse de réception de 600 Bauds. 1000 caractères/secondes ;
 Échéances:  Vitesse de réception ou
 Tâche acquisition : Te1 = 0,1s [car vf = 10 car./s] d'émission des caractères sur
(indépendant de la vitesse de réception), la ligne : 50 à 38400 Bauds;
 Format (10 bits au total) :
 Tâche réception : Te2 = (1+8+1)/600 = 16,7.10-3s
8 bits de données, 1 bit start,
1 bit stop.
CONTRAINTES DE TEMPS FAIBLES
8

 EXEMPLE : Programmation d'un terminal (suite)


 Vérification du respect des contraintes de temps :
 Déterminer le temps de scrutation  Nécessité de prendre en compte le cas le plus
défavorable, c'est à dire lorsqu'un caractère doit être affiché sur l'écran et qu'un
caractère est lu au clavier.

 Simplification : Temps de scrutation (ty) est essentiellement lié à la vitesse d'affichage


(1000 caractères/secondes).

  Temps de cycle de : ty = 10-3s

  Contraintes de temps : Te1 = 0,1s et Te2 = 16,7.10-3s

  ty << Te2 << Te1 Vérifié


CONTRAINTES DE TEMPS FAIBLES
9

 EXEMPLE : Programmation d'un terminal (suite)


 Vérification du respect des contraintes de temps :
 Si vitesse réception = 19200 Bds
  Contrainte : Te2 = 10/19200 = 0,52.10-3s  Te2<ty = 10-3s avec Te1 = 0,1s

  ty << Te2 Non vérifiée

 Tout en satisfaisant ty << Te1

 Contrainte Te2 non satisfaite


  Le terminal perdra des caractères reçus sur la ligne série mais par contre ne perdra
aucun caractère frappé au clavier !

Programmation par scrutation non valable si les contraintes de temps sont hétérogènes.
Il faut dissocier les tâches à fortes contraintes de temps, de celles à faibles contraintes, par
un traitement hors de la boucle scrutation.
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
10

 Algorithme adapté aux contraintes de temps


 Si temps de cycle de boucle de scrutation ne permet pas de satisfaire un nombre réduit
de contraintes  Associer les fonctions concernées par ces contraintes à des
interruptions matérielles.
 Chaque interruption  liée à
un ou plusieurs événements. Si
événement se produit 
l'interruption arrête l'exécution
de la boucle de scrutation et
lance le programme tâche
matérielle.  Calculateur sera
ainsi synchronisé sur ces
événements et exécutera les
traitements liés aux
interruptions en suspendant le
programme en cours
d’exécution.
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
11
 Solution présentant plusieurs avantages :
 Evénements liés aux interruptions ne nécessitent aucune attention dans la boucle de
scrutation.
 Durée de boucle n'a pas d'importance par rapport à l'événement considéré si elle ne
gère pas un procédé possédant des contraintes de temps.
 Boucle de scrutation non ralentie par le test systématique de présence d'événements
 Efficacité accru du traitement réalisé.
 Rythme d'échange d’informations est fixé par le dispositif lié aux interruptions et non par
des contraintes de programmation de la boucle de scrutation.
 A retenir :
 Lorsque survient une interruption, la boucle de scrutation stoppe qqs s, pouvant même
s'arrêter complètement si plusieurs interruptions surviennent à un rythme très rapide.
 Phénomène pouvant être mis très facilement en évidence en pilotant une ligne
d'interruption à l'aide d'un générateur de signaux périodique.
 Programmation d’échanges de données entre boucle de scrutation et le(s) programme(s)
d'interruption peut être délicate.
 Réaliser des échanges fiables entre programmes fonctionnant de façon asynchrone
non trivial.
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
12

 Vérification des contraintes de temps :


 Traitement d'interruption rallonge le temps de cycle du programme interrompu.
  Contraintes temporelles devront être analysées avec soin.
Plusieurs cas à envisager selon que les interruptions sont ou non emboîtées.
 1. Cas d'une seule interruption (I1) de récurrence f1 = 1/T1
 Soient 2 procédés possédant des contraintes de temps hétérogènes :

- Traitement du procédé à forte contrainte (P1) géré par interruption, et


- Traitement du procédé à faible contrainte de temps (P0) géré dans la boucle de
scrutation :
 On a :

- T1 : Période de l’interruption I1
 Te1 : Echéance de temps fixé par le procédé à contrôler
- ty1 : Temps de calcul (continu) de la tâche P1
- ty0 : Durée de boucle de scrutation de la tâche P0
- Te0 : Echéance de temps du procédé géré par P0
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
13

  Afin de ne pas perdre des signaux d'interruptions ou pour éviter une récursion
infinie  ty1 < T1 (Durée de traitement d'interruption < sa périodicité)
T1
  Durée de traitement de P0 est multiplié par un facteur K tel que : K ≈
T1 – ty1
  Satisfaire la contrainte Te0  on doit avoir : K . ty0 < Te0
 Si le programme doit gérer plusieurs interruptions simultanées  2 cas à envisager:
- Interruptions traitées séquentiellement ou
- Interruptions emboîtées.
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
14
 2. Cas de plusieurs interruptions traités de façon séquentielles

 Soient :
- T1 : Période de l’interruption I1, fréq. f1 = 1/T1
- T2 : Période de l’interruption I2, fréq. f2 = 1/T2 et T2 < T1
- ty1 : Temps de calcul (continu) de la tâche P1
- ty2 : Temps de calcul (continu) de la tâche P2
- ty0 : Durée de boucle de scrutation de la tâche P0
- Te0 : Echéance de temps du procédé géré par P0
  Afin de ne pas perdre des signaux d'interruptions on doit avoir :
(ty1 + ty2) < T2 (avec T2 < T1)
T2
  Durée de traitement de P0 sera multiplié par le facteur K' tel que : K' ≈
T2 – (ty1 + ty2)
  Afin de satisfaire la contrainte Te0 on doit avoir : K' . ty0 < Te0
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
15

 3. Cas d'interruptions emboîtées (Notion de priorité)


 Dans ce modèle, une interruption peut être exécutée durant l'exécution d'une autre
interruption moins prioritaire.
 L'interruption la plus prioritaire doit être celle de récurrence la plus élevée (Faible T) ;
soient :
- T1 : Période de l’interruption I1
- T2 : Période de l’interruption I2 avec T2 < T1
- ty1 : Temps de calcul (continu) de la tâche P1
- ty2 : Temps de calcul (continu) de la tâche P2
- ty0 : Durée de boucle de scrutation de la tâche P0
- Te0 : Echéance de temps du procédé géré par P0o
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
16

  Afin de ne pas perdre des signaux


d'interruptions et pour éviter une
récursion infinie
 ty2 < T2 (Durée de traitement
d'interruption I2 < sa périodicité)

  Traitement de l'interruption I2
emboîtée dans T1 rallonge ty1 d'un
facteur K2 tel que : T2
K ≈
2
T2 – ty2

  Pour satisfaire la contrainte Te1  on doit avoir : K2 . ty1 < Te1


  Traitement de l'interruption I1 rallonge à son tour le temps de traitement de la boucle
T1
P0 d'un facteur K1 tel que : K1 ≈
T1 – (ty1 . K2)
  Pour satisfaire la contrainte Te0  on doit avoir : K1 . ty0 < Te0
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
17

 EXEMPLE : Terminal avec réception de caractères à vitesse élevée


 Diagramme à 3 tâches :

 Tâche Lire :  Exécution dépendant des conditions externes non liées à une
interruption (caractère frappé).
 Tâche Lire_ligne : Déclenchée par l'interruption de réception d'un caractère.  Place
le caractère reçu dans un tampon (FIFO). Pas de débordement du tampon envisagé.
 Tâche Afficher :  Exécution dépendant d'une condition interne (taux de remplissage
du tampon).
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
18

 EXEMPLE : Suite
 Algorithme simplifié du programme terminal :
P0

- T1 : Pér. I1 
P1
Echéance : Te1

de l’Interruption
- ty1 : Tcalc de P1

d’exécution
- ty0 : Durée boucle
scrut. P0

Durée
- Te0 : Echéance de P0

 Satisfaire contr. Te0


 K.ty0 < Te0
T1
K≈
T1 – ty1

Rappel : Cas d'1 Interruption


CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
19

 EXEMPLE : Suite
 Hypothèses :
 Temps de cycle cumulé des tâches afficher et lire : ty0 = 2.10-3 s
 Echéance de temps fixée par la tâche lire : Te0 = 0,1 s
 Durée du programme d'interruption : ty1 = 0,255.10-3 s
 Exemple de réception à 9600 Bauds :
 f1 = 9600/10 bits = 960 Interruptions/secondes.

  Contraintes de temps :
 Te1 = 10/9600 = 1,04.10-3 s

 ty1 vérifie la contrainte Te1 (0,255.10-3 s < 1,04.10-3 s)

 Pire cas ty0 . Te1/(Te1 - ty1) = 2.10-3x1,04.10-3/(1,04.10-3 - 0,255.10-3) = 2,65.10-3 s

  Contrainte sur Te0 vérifiée : 2,65.10-3 s < 0,1 s


CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
20

 EXEMPLE : Suite
 Réception à 19200 Bauds :
  Contraintes de temps :
 Te1 = 10/19200 = 0,52.10-3 s
 ty1 vérifie la contrainte Te1 (0,255.10-3 s < 0,52.10-3 s)
 Pire cas ty0 . Te1/(Te1 - ty1) = 2.10-3x0,52.10-3/(0,52.10-3 - 0,255.10-3) = 3,92.10-3 s
 Contrainte sur Te0 vérifiée : 3,92.10-3 s < 0,1 s

 Réception à 38400 Bauds :


  Contraintes de temps :
 Te1 = 10/38400 = 0,26.10-3 s
 ty1 vérifie la contrainte Te1 (0,255.10-3 s < 0,26.10-3 s)
 Pire cas ty0 . Te1/(Te1 - ty1) = 2.10-3x0,26.10-3/(0,26.10-3 - 0,255.10-3) = 0,104 s > 0,1 s
 Contrainte Te0 non satisfaite  Associer la frappe d'un caractère à une interruption
(priorité < à celle de réception).
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
21

 EXEMPLE : Suite
 Diagramme de flots de données
correspondant  4 tâches :

 Tâche matérielle Lire : Déclenchée par l'interruption due à la frappe d'un caractère
clavier.  Place le caractère reçu dans un autre tampon (FIFO). Pas de débordement
du tampon envisagé.
 Tâche matérielle Lire_ligne : Déclenchée par l'interruption de réception d'un caractère.
 Place le caractère reçu dans un tampon (FIFO). Pas de débordement du tampon
envisagé.
 2 Tâches logicielles Afficher et Emettre :  Exécution dépendant des conditions
internes (taux de remplissage des tampons d'émission et de réception).
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
22

 EXEMPLE : Suite ( Algorithme de programmation )


// Boucle de scrutation
Faire
Si Tampon de réception Non vide Alors
extraire, afficher le caractère en tête du tampon
Si Tampon clavier (d'émission) Non vide Alors
extraire, émettre le caractère en tête du tampon
Fin
// Programme d'interruption de réception d'un caractère
Début
Sauvegarder les registres utilisés
Lire le caractère, le mémoriser dans le tampon de réception
Restituer les registres utilisés
Acquitter l'interruption
Fin
// Programme d'interruption de lecture du clavier
Début
Sauvegarder les registres utilisés
Lire le code clavier et le transformer en code ASCII
Mémoriser le code ASCII dans le tampon d'émission
Restituer les registres sauvegardés
Acquitter l'interruption
Fin
CONTRAINTES DE TEMPS FAIBLES AVEC QUELQUES
EVENEMENTS CONTRAIGNANTS
23

Conclusion
 Lorsque les contraintes de temps sont nombreuses et variées, la programmation
peut devenir très complexe. On préfère alors contrôler les tâches à l’aide d'un
programme spécial appelé moniteur temps réel.
Celui-ci se charge de lancer, de synchroniser et d'arrêter les tâches. Il fournit en
outre de puissants moyens de communication entre les tâches concurrentes.

Vous aimerez peut-être aussi