Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

STR Chapitre 1 - 2 - 3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 48

Cours Systèmes Temps

Réel « STR »

Niveau 2ème année EI (ENISo)


Hajer CHTIOUI

1
Références

• [STA 88] John Stankovic. « Misconceptions


about real-time computing ». IEEE Computer,
October 1988.
• “Informatique Temps Réel” Pierre
Manneback, Faculté Polytechnique Université
de Mons.
• Ali HMIDENE, Cours système temps réel,
eniso

2
Plan du cours

• Chapitre 1: Introduction aux Systèmes


Temps Réel (STR)
• Chapitre 2: Systèmes d’exploitation temps
réel « Real Time operating System » (RTOS)
• Chapitre 3: Coopération entre tâches temps
réel
• Chapitre 4: Ordonnancement temps réel

3
Chapitre 1:
Introduction aux Systèmes Temps
Réel (STR)

4
I. Définitions d’un système temps réel
1. Définition 1:
- « En informatique temps réel, le comportement correct d’un système dépend,
non seulement des résultats logiques des traitements, mais aussi du temps
auquel les résultats sont produits » [STA 88].
- Un système temps réel est un système dans lequel l'exactitude des
applications ne dépend pas seulement de l'exactitude des résultats mais
aussi du temps auquel ce résultat est produit.
- Si les contraintes temporelles de l'application ne sont pas respectées, on
parle de défaillance du système. Il est donc essentiel de garantir le respect
des contraintes temporelles du système.

5
I. Définitions d’un système temps réel

- L'échelle de temps dépend du système:


• de quelques millisecondes pour un système de navigation aérienne.
• à plusieurs minutes ou heures pour le contrôle d'un réacteur chimique
(nucléaire).

Informatique Temps Réel


6
I. Définitions d’un système temps réel

2. Définition 2:
- Un Système temps réel est un système réactif ç-à-d en interaction
permanente avec son environnement.
- Contrairement aux systèmes interactifs (clavier, souris, ordinateurs…), le
rythme de l'interaction est déterminé par l'environnement et non par le
système.

7
I. Définitions d’un système temps réel
- Un système T.R. ou système réactif est soumis à l'évolution dynamique de
l'environnement qui lui est connecté et dont il doit contrôler le
comportement (exemple: contrôle du début d’une pompe d’eau).

8
II. Types des systèmes temps réel

1. Temps réel strict/dur (Hard) : un système dans lequel certaines


échéances ne doivent en aucun cas, être dépassées (ex. :
avionique, automobile, transport ferroviaire…) ;

2. Temps réel souple/mou (Soft) : un système dans lequel le


dépassement occasionnel des échéances ne met pas le
système en difficulté (ex. : jeux vidéo, applications multimédia,
téléphonie mobile…).

9
II. Types des systèmes temps réel

- Dans le cas des systèmes Temps Réel durs, on cherchera à obtenir un


comportement prévisible , déterministe et fiable.
- Dans le cas des systèmes Temps Réel lâches, on cherchera à minimiser la
probabilité de rater une échéance plusieurs fois de suite. On distingue deux
types de STR lâche:

10
III. Relation entre STR et Système Embarqué:
- Un système embarqué est un système électronique, piloté par un logiciel, qui
est complètement intégré au système qu'il contrôle.
- Un système embarqué a des contraintes fortes de coût, taille, poids,
consommation énergétique, etc.
- Un système embarqué est bien souvent temps-réel (mais pas
nécessairement).

11
IV. Contraintes du Système TR

Plusieurs contraintes à vérifier pour qu’un STR soit fonctionnel :


1. Exactitude logique: sorties adéquates en fonction des entrées, assurant le
comportement désiré pour le système suite à des événements et aux données
communiquées.
2. Déterminisme logique : les mêmes entrées appliquées au système
produisent les mêmes résultats.
- Le déterminisme est le but que l’on cherche à atteindre afin de prédire le
comportement temporel d’un système temps réel : il s’agit d’enlever toute
incertitude sur le comportement des activités individuelles et sur leurs
comportements quand elles sont mises ensemble dans le contexte d’exécution
du système.
12
IV. Contraintes du Système TR
- La source du non déterminisme:
- Charge de calcule
- Entrées/sorties
- Interruptions
- Fautes et exceptions matérielles ou logicielles
3. Exactitude temporelle (timeliness) respect des contraintes temporelles (ex :
échéance) les sorties sont présentées au bon moment.
4. Fiabilité: c’est la capacité d’un système qui exécute et maintient ses
fonctions dans des environnements normaux, aussi bien que des
environnements hostiles ou inattendus.
5. Système prédictible: on cherche à déterminer à priori si le système va
répondre aux exigences temporelles.
13
V. Principe général du Système TR
- Le Système contrôlé: environnement équipé d’une instrumentation qui réalise
l’interface avec le système de contrôle
- Le système de contrôle : système informatique (hardware et software) dont la
mission est d’agir sur l’environnement en fonction de son état, de manière à le
contrôler

Système de contrôle:
- Un automate programmable
- Un système électronique
- Un système informatique (hardware et logiciel) 14
Chapitre 2: Systèmes d’exploitation
temps réel (Real Time Operating
System RTOS)

15
1. Principe de base
▪ La conception multitâche fait coexister en mémoire plusieurs programmes,
les programmes s’exécutent sous le contrôle du SE et se partagent les
différentes ressources du système.
▪ Le SE partage des ressources, définit les compétiteurs ( programmes en
mémoire) et les contrôle tout le long de leur Exécution.
▪ L’objectif principal de la programmation multitâche est d’exploiter le plus
efficacement possible toutes les ressources d’un système informatique.
Quasi parallélisme :

▪ Un SE doit en général traiter plusieurs tâches en même temps. Comme il


n’y a qu’un processeur, il résout ce problème grâce à un pseudo
parallélisme. Il traite une tâche à la fois, s’interrompt et passe à la suivante.
▪ La commutation des tâches étant très rapide, le microprocesseur donne
l’illusion d’effectuer un traitement simultané.
▪ Un système comportant un processeur et qui est capable d’exécuter
plusieurs tâches simultanément et dit multitâche- monoprocesseur. On parle
du Quasi parallélisme.

16
2. Noyau, Exécutif et Système d’ ExploitationTR
2.1. Noyau Temps Réel :
▪ Les noyaux temps Réel assurent la gestion des tâches (ordonnancement,
outil de synchronisation et de communication, gestion des interruptions) et de
la mémoire.
▪ Ils sont appelés micronoyaux quand ils ont une faible empreinte mémoire
(taille mémoire nécessaire à leur exécution).
▪ Un noyau temps Réel est apte à être embarqué sur un microcontrôleur ou un
microprocesseur disposant de peu de mémoire.

17
2. Noyau, Exécutif et Système d’ ExploitationTR

…………………………. Tâches
Application
Appels Systèmes

Exécutif T.R

Gestion des S.E


Ordonnanceur
ressources

Horloge

Gestion des matériels

Matériels
Interruptions

Monde matériel

Structure d’un Noyau Temps Réel


18
2. Noyau, Exécutif et Système d’ ExploitationTR
▪ Le noyau temps Réel s’interface avec l’application par les primitives:

- Appels Système (Sys call) Interruptions logicielles synchrones


connues dans le programme et par
- Commandes (shell , dos) l’utilisateur

▪ Il s’interface par les interruptions avec le Matériel ( interruptions matérielles,


asynchrones, aléatoires).
▪ 3 façons pour communiquer le processeur avec le matériel: Scrutation,
interruption et le DMA.
▪ Le noyau temps réel offre à l’utilisateur une interface destinée à masquer les
caractéristiques matérielles. Elle s’appele API (Application Programming
Interface).
▪ Exemple :
Norme IEEE API. POSIX : Portable Operating System Interface X pour Unix,
19
compatible Windows, ARM…
2. Noyau, Exécutif et Système d’ ExploitationTR
▪ Les fonctions d’un noyau temps réel :
1) Gestion du processeur : le noyau doit gérer l’allocation du processeur aux
différents programmes pouvant s’exécuter en même temps par le biais de
l’ordonnanceur (des algorithmes d’ordonnancement).
2) Gestion de la mémoire : le noyau doit gérer l’allocation de la mémoire
centrale pour les différents programmes (pagination, segmentation). Comme
la mémoire physique est petite, la gestion de la mémoire se fait selon le
principe de la mémoire virtuelle.

20
2. Noyau, Exécutif et Système d’ ExploitationTR

Principe de la mémoire virtuelle


21
2. Noyau, Exécutif et Système d’ ExploitationTR

3) Gestion des entrées/Sorties : le noyau doit gérer les accès aux


périphériques : c'est-à-dire faire la liaison entre les appels haut niveau de
l’utilisateur et les opérations bas niveau : exemple getchar ( ), l’unité d’échange
est le clavier, cette correspondance est faite par les drivers (pilotes).
4) Gestion de la concurrence : le noyau doit offrir des outils de communication
et de synchronisation entre les programmes.
5) Gestion des objets extrêmes : la mémoire centrale est volatile, toutes les
données doivent être sauvegardées à l’arrêt de la machine sur une mémoire
de masse. Pour accéder à ces données il faut un Système de Gestion de
Fichier (SGF).

22
2. Noyau, Exécutif et Système d’ ExploitationTR
6) Gestion de la protection : le noyau doit fournir des mécanismes garantissant
que ses ressources (CPU, Mémoire, Fichier) ne peuvent être utilisées que par
les programmes qui ont droit.
• Il faut notamment protéger le système et la machine des programmes
utilisateur (mode d’exécution utilisateur mode, d’exécution superviseur).
• Lorsqu’un programme fait un appel système (fopen). Ce mode superviseur
est privilégié car il donne accès à un grand nombre d’instructions machine
que le mode utilisateur (masquage d’interruption…).

Mode utilisateur Mode Changement de


superviseur contexte
main() 1) Sauvegarde Co, PSW utilisateur
{ -Chgt Co address fopen
int i, j ; Exécution fopen -Chg PSW mode superviseur
i=3; {- 2) Restitution du contexte utilisateur
fd = fopen Chgt Co Co sauvegarde
(fichier, "w"); {- Chgt PSW PSW sauvegarde
j = 0;
} 23
2. Noyau, Exécutif et Système d’ ExploitationTR
▪ Exécutif temps réel :
✓ C’est une surcouche du noyau.
✓ Il offre les services nécessaires à l’utilisation des E/S du réseau, des
timers, des fichiers…etc.
✓ Le plus souvent sont modulaires, et il est possible de configurer
spécifiquement un exécutif en fonction de l’architecture utilisée.
✓ Avec l’exécutif temps réel, le temps de réponse des appels systèmes doit
être connu et fourni par le concepteur de l’application TR et le développeur
doit connaître ce temps maximal de traitement.

24
2. Noyau, Exécutif et Système d’ ExploitationTR
▪ Système d’exploitation temps réel :
✓ c’est un SE complet reposant sur un exécutif temps réel.
✓ On distingue deux types de SETR :
▪ Extension d’OS généraux par des fonctionnalités TR (notamment
ordonnancement adaptés, timers ).
Exemple : Linux-rt, RTX : Real Time Extension for Windows.
▪ OS spécialisés: Noyaux rapides, petits et adaptés
Exemple : QNX, VxWORKS : RTOS utilisé dans les Systèmes
Embarqués conçu pour des missions spatiales (NASA), plus employé
dans l’aéronautique, l’automobile….

25
3. Notion de processus

▪ Tâche et processus :
✓ Une tâche est une unité logicielle effectuant une action de contrôle d’un
processus spécifique et s’exécutant sous contrôle d’un RTOS.
✓ Une tâche en exécution est un processus.
✓ Un processus est donc l’activité résultante de l’exécution d’une tâche
séquentielle avec ses données par un processus.

Zone mémoire d’un processus Zone de code.


Zone de données.
Zone de Pile : information temporaire,

26
3. Notion de processus

▪ Descripteur de tâche (TCB : Task Control Block) :


- A chaque tâche est associée une structure de données nommée TCB dans
laquelle le système mémorise les informations associées à cette tâche.
- Ces données sont nécessaires à la gestion des processus.

27
3. Notion de processus
- L’ordonnanceur connaît les tâches uniquement par leurs descripteurs. En
effet, toutes les opérations réalisées sur une tâche sont effectuées au niveau
de son descripteur.
- Dans la pratique, tous les descripteurs sont reliés entre eux selon le principe
du double chaînage dans une file, de façon à intervenir rapidement sur un
processus donné.

28
3. Notion de processus

▪ Etat élémentaire d’un processus :


Une tâche peut être dans l’un des états fondamentaux suivants :
- Active (Elue) : la tâche est en cours d’exécution.
- Prête ( ou Eligible) : en possession de toutes les ressources nécessaires à
son fonctionnement sauf le processeur.
- Attente (Suspendue) : en attente d’une ressource indispensable à son
fonctionnement futur ( son exécution).
- Inactive : la tâche a terminé la fonction pour laquelle elle a été conçue, elle
ne participe plus à l’activité du système.

29
3. Notion de processus

Active • Primitives de gestion des tâches :


Terminer
Bloquer Terminer, Arrêter, Démarrer.
• Primitives de synchronisation :

Préemption
Inactive Bloquer, Débloquer.
Sélection

Attente

Arrêter • Préemption, Sélection : Décision


Débloquer
de l’ordonnanceur.
Démarrer
Prête
• Le processus élu est choisi parmi
les processus prêts par
Terminer l’ordonnanceur.

30
Chapitre 3: Coopération entre tâches
temps réel

31
1. Introduction :
• En environnement multitâche, les processus coopèrent
en vue de la réalisation d’une activité commune.
• On distingue deux sortes de coopération, la
coopération temporelle faisant intervenir les notions de
blocage et de déblocage du processus. La coopération
spatiale se rapportant à l’échange d’informations entre
processus.

32
2. Coopération temporelle : synchronisation
• Problème de synchronisation :
Synchronisation de processus : vise à bloquer l’exécution
de certains processus (processus liés)
Exemple : action A de la tâche P s’exécute
uniquement après action B de la tâche R.
de données : conserver la cohérence des
donnés telles que vues par les différents
processus. (processus ayant accès à des
ressources communes).
Exemple :
P1 P2

X=5
mov Ax,x mov Ax,x
Section inc Ax inc Ax
critique mov x,Ax mov x,Ax

X = 6 ou 7 ?
33
Pas de cohérence de données !!!
2. Coopération temporelle : synchronisation

On définit :
✓ La région critique : correspond à une zone de code dans
laquelle. Il ne peut y avoir de prise en main par l’ordonnanceur
du système ni pour l’exécution d’une tâche plus prioritaire.
✓ Ressource critique : est une ressource accessible par un seul
processus à la fois.
✓ Exclusion Mutuelle (Mutex) :
La propriété EM assure qu’une ressource critique ne peut
jamais être utilisée par plus d’un processus à la fois.

34
2. Coopération temporelle : synchronisation
Autre Exemple :
• Processus Réservation ( ) est un programme qui sera exécuté par
plusieurs processus à la fois ( Processus réentrant)
Processus Réservation ( )
{
si nb_place>0; alors nb_place = 1 ;
réserver-une place;
nb_place=nb_place-1;
Fin si
} Client1 ( ) Client2 ( )
Si nb_place > 0 ; Si nb_place > 0 ;

nb_place – 1 ; // nb_place = 0 ;
//nb_place = 0
= -1 !!!
Une place est réservée 2 fois !!!
35
3. Solutions pour la synchronisation
A. Les interruptions matérielles :
• Les interruptions sont masquées dès qu’un processus accède
à la ressources nb_place et aucun événement susceptible
d’activer un autre processus ne peut être pris en compte.
• Ce pendant cette solution est moyennement satisfaisante car
elle empêche l’exécution de tous les processus y compris ceux
ne désirant pas accéder à la ressource critique.
• De plus le masquage et le démasquage des interruptions sont
des opérations réservées au mode superviseur et elles ne sont
donc pas accessibles pour les processus utilisateurs.

36
3. Solutions pour la synchronisation
B. EM par Attente active :
• Utiliser une variable partagée comme un « drapeau »
appelée aussi « verrou », « flag ».
Cas1 : int verrou = 0 ; Process 1
Processus ( ) { Process 2
while (verrou) { } // Attente active
verrou = 1;
section_critique () ;
verrou = 0 ;
}

• Risque d’entrée dans la section


critique en même temps process1
37
et process2.
3. Solutions pour la synchronisation
B. EM par Attente active :
Cas2 :
verrou 1 = 0 ; verrou2 =0 ;
P1 P2
{ {
verrou1 = 1 ; verrou2 = 1 ;
while (verrou2) { } while (verrou1) { }
section_critique () ; section_critique () ;
verrou 1 = 0 ; verrou 2 = 0 ;
} }

• Risque d’un interblocage (deadlock)


38
3. Solutions pour la synchronisation

39
3. Solutions pour la synchronisation
• A un sémaphore, on associe :
• Un compteur : qui peut prendre des valeurs nulles, négatives, positives.
• Une file d’attente de type FIFO où sont stockés les processus en attente
de ticket.
• Tout processus qui prend possession de la ressource doit exécuter deux
procédures : P (S) puis V(S) de norme POSIX, IEEE, Unix.
Procedure P(S) Procedure V(S)
Debut Debut
S ← S-1 S ← S+1
Si S ≥ 0 Alors le processus Si S ≤ 0 Alors Sélectionner un
prend la ressource processus dans la file et la
Sinon rendre éligible
Le Processus est mis sinon
en attente dans la file Rien de spécial et la tâche
Finsi poursuit son activité
Fin Finsi
Fin

40
3. Solutions pour la synchronisation
• On distingue trois types de sémaphores:
1. Mutex:
• Un sémaphore qui est initialisé à 1 est appelé sémaphore
binaire ou mutex. Dans ce cas, un seul processus peut avoir
accès à la ressource. (Ressources nom partageables).
2. Sémaphore bloquant :
• Initialisé à zéros, il est utilisé pour mettre un processus en
attente (blocage), le déblocage se fait par un autre processus
(Barrière de synchronisation).
3. Sémaphore à compte :
• Initialisé à N ressources partageables à accès limités.

41
3. Solutions pour la synchronisation
Init (S,0) ; Init (S,1) ;
P1 P2 P1 P2

P(S) ; P(S) ; P(S) ; P(S) ;


— — — —
— — — —
— — — —
V(S) ; V(S) ; V(S) ; V(S) ;

Interblocage !!! Ordre inconnu !!!

Init (S,1) ; Init (S,0) ; Init (S1,1);


P1 P2 P1 P2
while(1 ) while (1 ) while(1 ) while (1 )

{ P(S) ; { P(S) ; { P(S1) ; { P(S) ;


— — — —
— — — —
— — — —
V(S) ; V(S) ; V(S) ; V(S1) ;
} } } }
42
EM!!! P1 avant P2 & EM
3. Solutions pour la synchronisation

▪ Question de cours :
- Soient 05 processus, une ressource de 10 instances, chaque
processus peut demander au maximum 03 ressources.
1) Y-t-il un risque d’interblocage ? Justifiez vos réponses.

43
Communication entre tâches : échange des
informations
• Il existe plusieurs méthodes de communication entre les tâches.
La plus courante étant celle des boîtes aux lettres (Producteur –
consommateur).
• Une boîte aux lettres est une zone d’échange entre deux tâches
(deux processus). Deux files d’attente sont associées à une boîte
aux lettres :

- Une file d’attente des messages

- Une file d’attente des tâches

44
Communication entre tâches : échange des
informations

Processus Processus
Producteur Consommateur

Flux des données

Tampon de taille N

Modèle producteur- consommateur


45
Communication entre tâches : échange des
informations
• Dans le problème producteur – consommateur deux processus partagent
une mémoire tampon de taille fixe.
• Le producteur met des informations dans la mémoire tampon, le
consommateur les retires et le producteur peut produire uniquement si le
tampon n’est pas plein.
• Le producteur doit être bloqué tant que le tampon est plein. Le
consommateur peut retirer une information du tampon uniquement si le
tampon n’est pas vide.
• Les deux processus ne doivent pas accéder en même temps au tampon.

46
Communication entre tâches : échange des
informations
• Le tampon est géré de façon circulaire, c’est-à-dire que quand
la dernière case est utilisée, le retour est à la première case.
• iDépot est un indice de dépôt initialisé à 0.
• iExtrait est un indice d’extraction initialisé à 0.
• Fonction Déposer (info)
– Tampon [iDépot] = info
– iDépot = (iDépot +1) modulo N
• Fonction Extraire (info)
– info = tampon [iExtrait]
– iExtrait = (iExtrait +1) modulo N

47
Communication entre tâches : échange des
informations
Init (S1, N); Init (S2, 0); Init(Mutex, 1);
Producteur ( ) Consommateur ( )
{ {
while ( 1) while (1)
{ {
P (S1) ; P (S2) ;
P (Mutex) ; P (mutex) ;
Deposer ( ); Extraire ( ) ;
V (mutex) ; V (mutex) ;
V (S2); V(S1) ;
} }
} }

48

Vous aimerez peut-être aussi