Académique Documents
Professionnel Documents
Culture Documents
S2
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
Contraintes de temps faible avec qqs événements contraignants, Temps réel Dur
Contraintes de temps fortes : tc ≈ Te.
CONTRAINTES DE TEMPS FAIBLES
4
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
- 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
Traitement de l'interruption I2
emboîtée dans T1 rallonge ty1 d'un
facteur K2 tel que : T2
K ≈
2
T2 – ty2
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
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
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
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
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.