STR Chapitre 1 - 2 - 3
STR Chapitre 1 - 2 - 3
STR Chapitre 1 - 2 - 3
Réel « STR »
1
Références
2
Plan du cours
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
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
9
II. Types des systèmes temps réel
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
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 :
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
Horloge
Matériels
Interruptions
Monde matériel
20
2. Noyau, Exécutif et Système d’ ExploitationTR
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…).
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.
26
3. Notion de 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
29
3. Notion de processus
Préemption
Inactive Bloquer, Débloquer.
Sélection
Attente
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 ;
}
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
▪ 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 :
44
Communication entre tâches : échange des
informations
Processus Processus
Producteur Consommateur
Tampon de taille N
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