Vous êtes sur la page 1sur 25

Introduction aux Systèmes temps réel

Abdelouahed Gherbi ÉTÉ 2011

Définitions

Plan

Système temps réel

Système embarqué

Système critiques

Systèmes d’exploitation temps réel

Ordonnancement temps réel

Ordonnancement RMS

Ordonnancement EDF

Inversion de priorité

Protocole d’héritage de priorité

Introduction et définitions

Système temps réel

Un système temps réel (STR)

un système informatique ayant l’exigence de produire un résultat correct (correction logique) dans un délai spécifié (contrainte de temps)

Un résultat correct produit après l’échéance (deadline) est un résultat incorrect

Exemples :

Un robot autonome délivre le courrier dans un complexe de bureaux

Le rebot est doté d’un système de vision automatique

Si le système de vision identifie correctement le mur après qu’il l’a heurté.

Malgré que le système identifie correctement le mur (fonctionnalité correcte), le système n’aurait pas rencontré ses exigences temps réel

Système embarqué

Plusieurs systèmes temps réel sont utilisés dans des dispositifs spécialisés

Électroménager (home appliances) : micro ondes, laveuses, etc.

Appareils numériques : caméras, lecteur MP3, etc.

Dispositifs de communication : cellulaires, PDA, etc.

Les STR sont aussi déployés dans des systèmes plus larges

Automobiles, avions, etc.

Un système embarqué est un système de traitement d’information qui fait partie d’un système plus large

L’utilisateur du système plus large ne se rend pas nécessairement compte de l’existence du système embarqué

Systèmes critiques

Certains systèmes sont qualifiés de systèmes critiques

safetycritical systems

Un système est critique si un résultat incorrect tel que le dépassement d’une échéance cause une catastrophe

Exemples

Système d’armes

Système de freinage antiblocage ( Antilock Brake systems ABS)

Système de gestion de vols

Système embarqués dans des systèmes de santé (pacemaker)

Types de systèmes temps réel

On distingue en général deux types de STR

Système temps réel dur (stricte, tolérance zéro)

Hard realtime systems

Toutes les échéances (deadlines) doivent absolument être rencontrées

Les systèmes critiques sont typiquement des systèmes temps réel durs (stricts)

Exemples de STR stricts :

Avionique et aérospatial

Gestion du trafic aérien

Contrôle d’une centrale nucléaire.

Systèmes temps réel mou (avec tolérance)

Soft realtime systems

Certaines échéances peuvent occasionnellement être dépassées

Quelques OS à usage général fournissent un support pour un temps réel mou (Linux)

Exemples

Jeux vidéos

Télé conférences

Systèmes d’exploitation temps réel

Un système d’exploitation temps réel (RTOS) est un OS conçu pour supporter les applications temps réel

La spécification standard POSIX 1003.1 définit la caractéristique temps réel des systèmes d’exploitation comme :

"the ability of the operating system to provide a required level of service in a bounded response time."

Un RTOS est souvent utilisé pour un système à usage spécifique

Donc le shell (interface utilisateur) sophistiqué et les fonctionnalités de gestion de fichiers et disque ne sont pas nécessaires

Un RTOS offre un contrôle sur les ressources limitées

Peu ou pas de processus superflus en arrière plan

Nombre de taches (processus ou threads) borné

UN RTOS offre un contrôle sur le temps

Manipulation des priorités des taches

Un ordonnancement spécifiques pour le contexte temps réel

Noyau préemptif

Latence bornée

latence d’un événement – temps entre l’occurrence de l’événement (interruption) et son traitement

événement – temps entre l’occurrence de l’événement (interruption) et son traitement LOG 710 Été 2011 8
événement – temps entre l’occurrence de l’événement (interruption) et son traitement LOG 710 Été 2011 8

Ordonnancement temps réel

Modèle pour ordonnancement temps réel

On considère l’ordonnancement pour des STR strict

Modèle de taches temps réel à ordonnancer

Les taches (processus, threads) sont périodiques

Il utilisent la CPU à des intervalles spécifiés (périodes)

p est la durée de la période

d est l’échéance (deadline) où la tache doit être accomplie

t est le temps de traitement d’une tache

Le taux (fréquence) d’une tache périodique est : 1/p

La relation entre le temps de traitement, période et échéance: 0

1/p • La relation entre le temps de traitement, période et échéance: 0 Source : [1]

Source : [1]

Ordonnancement Rate Monotonic

Rate Monotonic Scheduling (RMS ou RMA)

RMS est une technique d’ordonnancement de taches périodiques

RMS est basée sur les priorités statiques avec préemption

Si une tache T1 de basse priorité est en exécution et une tache T2 de plus haute priorité arrive, l’ordonnancement RMS réquisitionne (enlever : préemption) la CPU de la tache T1 pour exécuter la tache T2

Chaque tache dans le système est attribuée une priorité fixe (statique) basée sur sa période

Plus que la période est courte, plus que la priorité de la tache est élevée

Pourquoi ?

Ordonnancement Rate Monotonic

Rate Monotonic Scheduling (RMS ou RMA)

RMS est une technique d’ordonnancement de taches périodiques

RMS est basée sur les priorités statiques avec préemption

Si une tache T1 de basse priorité est en exécution et une tache T2 de plus haute priorité arrive, l’ordonnancement RMS réquisitionne (enlever : préemption) la CPU de la tache T1 pour exécuter la tache T2

Chaque tache dans le système est attribuée une priorité fixe (statique) basée sur sa période

Plus que la période est courte, plus que la priorité de la tache est élevée

Raison : Attribuer des priorités élevées aux taches qui utilisent fréquemment la CPU

Ordonnancement Rate Monotonic

Exemple

On considère un système composé de deux processus P1 et

P2

L’échéance pour chaque processus est égale à la période (pi=di)

Est ce qu’on peu ordonnancer ces processus pour qu’ils rencontrent leurs deadlines ?

On calcule l’utilisation de la CPU pour chaque processus : ti/pi

Utilisation de la CPU pour P1 = 20/50=0.40 et pour P2 =

35/100=0.35

Donc l’utilisation totale de la CPU est 75% : les deux processus déversaient être ordonnancé tout en rencontrant les échéances

Processus

Période (pi)

Temps de traitement (ti)

P1

50

20

P2

100

35

Si on attribut à P2 une priorité plus élevée que celle de P1 : on dépasse l’échéance de P1

plus élevée que celle de P1 : on dépasse l’échéance de P1 Source : [1] LOG

Source : [1]

Ordonnancement Rate Monotonic

Si on utilise l’ordonnancement RMS

RMS attribue à un processus une priorité inverse de sa période

Période plus courte = priorité plus élevée

Période plus longue = priorité moins élevée

Donc P 1 est attribué une priorité plus élevée que P2

L’exécution des processus P1 et P2 selon RMS est comme suit

P1 et P2 rencontrent leurs échéances

Processus

Période (pi)

Temps de traitement (ti)

P1

50

20

P2

100

35

Période (pi) Temps de traitement (ti) P1 50 20 P2 100 35 Source : [1] LOG

Source : [1]

Ordonnancement Rate Monotonic

D’une manière générale

Condition suffisante de Liu et Layland [3]

Un ensemble de n tâches périodiques indépendantes (pas de section critique, pas de contraintes de synchronisation) Di=Pi, est ordonnançable (schedulable) si :

2 1

est le taux d’occupation de la CPU (charge,

taux d’utilisation)

n

Borne d’utilisation

1

100%

2

82.8%

3

78.0%

4

75.7%

5

74.3%

10

71.8%

69.9%

Ordonnancement Rate Monotonic

Exemple 1

On considère l’ensemble des processus suivant :

Processus

ti

pi

P1

3

20

P2

2

5

P3

2

10

Est ce que ces processus sont ordonnançables selon RMS ?

n

Borne d’utilisation

1

100%

2

82.8%

3

78.0%

4

75.7%

5

74.3%

10

71.8%

69.9%

Ordonnancement Rate Monotonic

Exemple 1

On considère l’ensemble des processus suivant :

Processus

ti

pi

P1

3

20

P2

2

5

P3

2

10

On a 3/20 + 2/5 + 2/10 = 0.75 < 0.78

Donc selon RMS ces processus sont ordonnançables

n

Borne d’utilisation

1

100%

2

82.8%

3

78.0%

4

75.7%

5

74.3%

10

71.8%

69.9%

Ordonnancement Rate Monotonic

Exemple 2

On considère l’ensemble des processus suivant :

Processus

ti

pi

P1

12

50

P2

10

40

P3

10

30

Est ce que ces processus sont ordonnançables selon RMS ?

n

Borne d’utilisation

1

100%

2

82.8%

3

78.0%

4

75.7%

5

74.3%

10

71.8%

69.9%

Ordonnancement Rate Monotonic

Exemple 2

On considère l’ensemble des processus suivant :

Processus

ti

pi

P1

12

50

P2

10

40

P3

10

30

On a : 12/50 + 10/40 + 10/30 = 0.24+0.25+0.33 = 0.82 > 0.78

Conclusion : on ne peut rien dire ! ( pas de garantie !)

n

Borne d’utilisation

1

100%

2

82.8%

3

78.0%

4

75.7%

5

74.3%

10

71.8%

69.9%

Ordonnancement EDF

Earliest deadline first (EDF)

EDF est une technique d’ordonnancement dynamique

EDF attribue les priorités aux processus selon leurs échéances (deadline)

EDF n’exige pas que les processus soient périodiques

EDF est applicable aussi bien pour des tâches périodiques qu’apériodiques.

Ordonnancement EDF

Exemple

On considère un système composé de deux processus P1 et P2

Estce que c’est ordonnançable selon RMS ?

Condition de Liu et Layland :

On a 25/50 + 35/80 = 0.5+0.437=0.94 > 0.82

On ne peut rien dire

Si on applique RMS on trouve que P2 dépasse son échéance

Processus

Période (pi)

Temps de traitement (ti)

P1

50

25

P2

80

35

Source : [1]

Période (pi) Temps de traitement (ti) P1 50 25 P2 80 35 Source : [1] LOG

Ordonnancement EDF

Exemple

On considère un système composé de deux processus P1 et P2

Estce que c’est ordonnançable selon EDF ?

Si on applique EDF : le processus avec le deadline le plus proche est le plus prioritaire

Avec EDF on obtient l’ordonnancement suivant :

Processus

Période (pi)

Temps de traitement (ti)

P1

50

25

P2

80

35

Source : [1]

Période (pi) Temps de traitement (ti) P1 50 25 P2 80 35 Source : [1] LOG

Inversement de priorité

Le phénomène d’inversement de priorité peut arriver dans un système qui utilise un ordonnancement préemptif basé sur la priorité

Il arrive quand les circonstances dans un système font qu’une tache de plus haute priorité doit attendre une tache de plus basse priorité

Un exemple simple

Une tache A de basse priorité a acquis (verrouillé, locked) une ressource

Une tache B de plus haute priorité essaye de verrouiller la même ressource

La tache B va être mise en attente (état waiting) jusqu’à ce que la ressource soit disponible (libérée) par B

Le problème deviens plus sérieux quand une autre tache C (plus prioritaire que A mais moins prioritaire que B) interrompt (ordonnancement préemptif) A

Durée de blocage de B n’est pas déterminé

Inversement de priorité non bornée

Exemple

La mission Pathfinder sur Mars, 1997

priorité non bornée • Exemple – La mission Pathfinder sur Mars, 1997 Source : [2] LOG

Source : [2]

Inversement de priorité

Solution : protocole d’héritage de priorité

Une tache de basse priorité hérite (temporairement) la priorité de n’importe quelle tache qui est en attente d’une ressource partagée

Séquence :

t1: T3 commence l’exécution 3 t2: T3 verrouille le sémaphore s et entre dans une section critique. t3: T1 qui a une priorité plus élevé que T3 interrompe T3 et s’exécute. t4 4 : T1 tente d’entrer dans sa section critique mais elle bloquée car le sémaphore s est verrouillé par T3 3 .

T3 est immédiatement et temporairement attribuée la même priorité que T1 (héritage de priorité).

T3 reprends l’exécution dans sa section critique.

T3 reprends l’exécution dans sa section critique. Source : [2] t5 5 : T2 est prête

Source : [2]

t5 5 : T2 est prête pou exécution mais comme T3 as maintenant une plus haute priorité (celle de T1), T2 ne peut interrompre T3.

LOG 710 Été 2011

24

Références

[1] SILBERSCHATZ, A. et P.B. GALVIN, Operating System Concepts. 8 th Edition, Addison Wesley.

[2] Williams Stallings, Operating Systems Internals and Design Principles, 5th edition, 2005

[3] Liu, C. L.; Layland, J. (1973), "Scheduling algorithms for multiprogramming in a hard realtime environment", Journal of the ACM 20 (1): 46–61