50
Ecole des Mines de l’Industrie et de la Géologie EMIG S S Y Y S S T T E E M M E E S S T T E E M M P P S S R R E E E E L L Alkassoum Nabil # octobre 2007#

Cours Systemes Temps Reels

Embed Size (px)

DESCRIPTION

Introduction sur les Systèmes Temps Réels Industriels

Citation preview

Page 1: Cours Systemes Temps Reels

Ecole des Mines de l’Industrie et de la Géologie EMIG

SSYYSSTTEEMM EESS

TTEEMM PPSS RREEEELL

Alkassoum Nabil # octobre 2007#

Page 2: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 1

Chapitre 01 – INTRODUCTION AUX CALCULATEURS NUMERI QUE (RAPPELS)

I Introduction Le calculateur est aujourd’hui un outil universel qui intervient dans tous les aspects de

notre vie quotidienne. Il existe une large gamme de systèmes (calculatrices, automates, gros systèmes, ordinateurs personnels, systèmes intégrés …).

Il est une combinaison judicieuse entre du matériel (la “machine”) et du logiciel (les “programmes”). II Historique 1. Quelques dates repèrent :

Faire débuter l'histoire de l'informatique aux années 1970 est une grande injustice. Injustice

pour l'anonyme inventeur du boulier, pour Blaise Pascal [1623-1662] et sa machine arithmétique, pour Joseph Jacquard [1752-1834] et son métier à tisser automatique, pour Charles Babbage [1792-1871] et ses cartes perforées, pour Johannes Von Neumann [1903-1957], génial théoricien de l'informatique moderne, et pour tant d'autres génies. Le microprocesseur, élément central de tout calculateur, est l'aboutissement de progrès technologiques tant dans les domaines mécaniques, informatique et électronique.

Les ordinateurs de type électronique ont commencé dans les années 1940 avec l'ENIAC (Electronic Numerical Integrator and Calculator). Celui-ci était constitué par des lampes radio (tubes à vide), tombait en panne à presque toutes les 10 minutes et consommait tant d'électricité que lorsqu'il était mis en marche, l'intensité baissait dans la ville de Philadelphie où il était installé. C'était la première génération de 1940 à 1955.

Avec l'invention du transistor en 1948 par John Barden, William Schockley et Walter H. Bratten, tous trois des Bell Labs, on s'achemina vers des ordinateurs plus compacts, moins énergétivores et donc plus fiables. Ce fut la seconde génération de 1955-1965, avec entre autres les 304 de NCR, 7070 et 7080 d'IBM, 1804 et 3600 de CDC, 800 de Honeywell, B3500 de Burroughs, et 212 de Philco.

La troisième génération de 1965-1980, fut celle des premiers circuits intégrés, c'est à dire où plusieurs portes logiques sont sur un même substrat. C'est alors qu'on différencie plus nettement les différentes parties d'un ordinateur. On parle alors d'unité centrale de traitement (UCT) ou CPU (Central Processing Unit) pour désigner la portion maîtresse dans l'architecture. C'est à ce moment là qu'est sorti le premier microprocesseur 4004 d'Intel. C'est donc en 1971 que le premier microprocesseur est sorti des laboratoires d'Intel. Travaillant sur 4 bits et d'une puissance faible l'intérêt de ce nouveau composant électronique ne fut pas évident jusqu'à ce que l'idée de le transformer en calculatrice fut trouvée. Sept ans plus tard, l'arrivée du 8088 multiplie déjà cette puissance de calcul par 200! Cette date correspond à la naissance des véritables micro-ordinateurs.

La quatrième génération de 1980 à 1990, fut celle des microprocesseurs. C'est à ce moment là que toutes les fonctions principales sont implantées sur un seul circuit intégré. De nos jours quand on parle de microprocesseur, on pense à un "chip" unique avec des pattes. C'était entre autres l'apparition du Z80 de Zilog, du 6502 de Motorola, du 8088 d'Intel. On parle de MPU (Micro Processing Unit) en lieu de CPU. Arrivent ensuite les microprocesseurs 68000 et 80286 (16 bits) avec les Macintosh et P.C. que nous connaissons. Ils ont introduisent l'image et le son. Ensuite, tout n'est plus qu'une question de course à la puissance de calcul. Chaque bond technologique apporte sont innovation

Page 3: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 2

La cinquième génération, qui s'étend de 1990 à maintenant, est celle des "microchips" où quelques 30 millions de portes logiques sont implantées sur une seule surface d'environ 10mm×10mm. Cependant les nouveautés sortent à une cadence très rapide.

D’ailleurs la tendance actuelle en 2007 n’est plus de pousser la fréquence d’horloge du processeur qui atteint sa limite théorique des 4 GHz. On a beau réduire la taille des transistors afin de limiter le délai de propagation du signal d’un transistor au suivant, la puissance consommée par unité de surface à ces fréquences ferait que la puce entière se consumerait. On augmente le volume de traitement en insérant par contre sur le même substrat, deux ou plusieurs noyaux et faire en sorte qu’ils coopèrent suivant divers schémas.

Aujourd'hui, le multimédia puis le 3 D et le temps réel. Demain, le monde virtuel ! 2. Architecture de Von Neumann ✟ UC : unité centrale

• Anglais : CPU (Central Processing Unit) • Central Arithmetic Unit, Central Control Unit, • Input/Output devices

✟ BUS : dispositif de transfert d’information ✟ MEM : mémoire

• Anglais : RAM (Random Access Memory) 3. Schéma d’un ordinateur

Le bus permet et régule les communications entre les différents composants 4. L’unité centrale ✟ ALU Arithmetic & Logical Unit, ou UAL

• opérations arithmétiques de base • décalages, opérations logiques • décodage fonction

✟ Registres adresses, données, état • minimum : 1 registre adresses, 1 registre données

✟ Unité de commande • exécution des instructions

BUS UC MEM

CPU RAM vidéo

RAM ACIA Contrôleur Disque

Contrôleur Disquette

BUS

Page 4: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 3

III Représentation des données 1. Introduction

Les informations traitées par un calculateur (ordinateur) peuvent être de différents types (texte, nombres, etc.) mais elles sont toujours représentées et manipulées par l’ordinateur sous forme binaire. Toute information sera traitée comme une suite de 0 et de 1. L’unité d’information est le chiffre binaire (0 ou 1), que l’on appelle bit (pour binary digit, chiffre binaire). Le codage d’une information consiste à établir une correspondance entre la représentation externe (habituelle) de l’information (le caractère A ou le nombre 36 par exemple), et sa représentation interne dans la machine, qui est une suite de bits. On utilise la représentation binaire car elle est simple, facile à réaliser techniquement à l’aide de bistables. Enfin, les opérations arithmétiques de base (addition, multiplication etc.) sont faciles à exprimer en base 2 (noter que la table de multiplication se résume à 0x0 = 0, 1x0 = 0 et 1x1 = 1). 2. Changements de bases Avant d’aborder la représentation des différents types de données (caractères, nombres naturels, nombres réels), il convient de se familiariser avec la représentation d’un nombre dans une base quelconque (par la suite, nous utiliserons souvent les bases 2, 8, 10 et 16). Habituellement, on utilise la base 10 pour représenter les nombres, c’est à dire que l’on écrit à l’aide de 10 symboles distincts, les chiffres. En base b, on utilise b chiffres. Notons ai la suite des chiffres utilisés pour écrire un nombre :

x = an an-1…a1a0 avec a0 le chiffre des unités.

– En décimal, b = 10, ai ∈ { 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 } ; – En binaire, b = 2, ai ∈ { 0 ; 1} : 2 chiffres binaires, ou bits ; – En hexadécimal, b = 16, ai ∈ { 0 ; 1; 2; 3; 4; 5; 6; 7; 8; 9; A;B;C;D;E; F} (on utilise

les 6 premières lettres comme des chiffres). Représentation des nombres entiers

En base 10, on écrit par exemple 1996 pour représenter le nombre : 1996 = 1 103 + 9 102 + 9 101 + 6 100

Dans le cas général, en base b, le nombre représenté par une suite de chiffres anan-1…a1a0 est donné par :

anan-1…a1a0 = ∑=

n

i 0

aibi .

a0 est le chiffre de poids faible, et an le chiffre de poids fort. Exemple en base 2 :

(101)2 = 1 22 + 0 21 + 1 20 = 4 + 0 + 1 = 5 La notation ( )b indique que le nombre est écrit en base b. Représentation des nombres fractionnaires Les nombres fractionnaires sont ceux qui comportent des chiffres après la virgule. Dans le système décimal, on écrit par exemple :

12,346 = 1 101 + 2 100 + 3 10-1 + 4 10-2 + 6 10-3 En général, en base b, on écrit :

anan-1…a1a0,a-1a-2…a-p = anbn+an-1b

n-1+ … +a0b0+a-1b

-1+:::+a-pb-p

Page 5: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 4

Passage d’une base quelconque à la base 10 Il suffit d’écrire le nombre comme ci-dessus et d’effectuer les opérations en décimal. Exemple en hexadécimal : (AB)16 = 10 161 + 11 160 = 160 + 11 = (171)10 (en base 16, A représente 10, B 11, et F 15). Passage de la base 10 vers une base quelconque Nombres entiers On procède par divisions successives. On divise le nombre par la base, puis le quotient obtenu par la base, et ainsi de suite jusqu’a obtention d’un quotient nul. La suite des restes obtenus correspond aux chiffres dans la base visée, a0a1…an.

Exemple : soit à convertir (44)10 vers la base 2. 44 = 22 x 2 + 0 → a0 = 0 22 = 11 x 2 + 0 → a1 = 0 11 = 2 x 5 + 1 → a2 = 1 5 = 2 x 2 + 1 → a3 = 1 2 = 1 x 2 + 0 → a4 = 0 1 = 0 x 2 + 1 → a5 = 1 Donc (44)10 = (101100)2.

Nombres fractionnaires On multiplie la partie fractionnaire par la base en répétant l’opération sur la partie fractionnaire du produit jusqu’a ce qu’elle soit nulle (ou que la précision voulue soit atteinte). Pour la partie entière, on procède par divisions comme pour un entier.

Exemple : conversion de (54; 25)10 en base 2 Partie entière :

(54)10 = (110110)2 par divisions. Partie fractionnaire :

0,25 x 2 = 0,50 =) a-1 = 0 0,50 x 2 = 1,00 =) a-2 = 1 0,00 x 2 = 0,00 =) a-3 = 0

Opérations arithmétiques Les opérations arithmétiques s’effectuent en base quelconque b avec les mêmes méthodes qu’en base 10. Une retenue ou un report apparaît lorsque l’on atteint ou dépasse la valeur b de la base. 3. Codification des nombres entiers La représentation (ou codification) des nombres est nécessaire afin de les stocker et manipuler par un ordinateur. Le principal problème est la limitation de la taille du codage : un nombre mathématique peut prendre des valeurs arbitrairement grandes, tandis que le codage dans l’ordinateur doit s’effectuer sur un nombre de bits fixé. Entiers naturels Les entiers naturels (positifs ou nuls) sont codés sur un nombre d’octets fixé (un octet est un groupe de 8 bits). On rencontre habituellement des codages sur 1, 2 ou 4 octets, plus rarement sur 64 bits (8 octets, par exemple sur les processeurs DEC Alpha). Un codage sur n bits permet de représenter tous les nombres naturels compris entre 0 et 2n

- 1. Par exemple sur 1 octet, on pourra coder les nombres de 0 à 255 = 28

- 1. On représente le nombre en base 2 et on range les bits dans les cellules binaires correspondant à leur poids binaire, de la droite vers la gauche. Si nécessaire, on complète à gauche par des zéros (bits de poids fort).

Page 6: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 5

Entiers relatifs Il faut ici coder le signe du nombre. On utilise le codage en complément à deux, qui permet d’effectuer ensuite les opérations arithmétiques entre nombres relatifs de la même façon qu’entre nombres naturels. 1. Entiers positifs ou nuls : On représente le nombre en base 2 et on range les bits comme pour les entiers naturels. Cependant, la cellule de poids fort est toujours à 0 : on utilise donc n - 1 bits. Le plus grand entier positif représentable sur n bits en relatif est donc 2n-1 - 1. 2. Entiers négatifs : Soit x un entier positif ou nul représenté en base 2 sur n bits

∑−

=

=1

0

2n

i

iix α avec αi∈{0,1}

et soit

12)1(1

0

+−=∑−

=

n

i

iiy α

On constate facilement que x + y = 2n-1 , ∀ αi Or sur n bits, 2n-1 est représenté par n -1 zéros, donc on à x + y = 0 modulo 2n-1 , ou encore y = -x. y peut être considéré comme l’opposé de x. La représentation de -x est obtenue par complémentation à 2n-1 de x. On dit complément à deux. Pour obtenir le codage d’un nombre x négatif, on code en binaire sa valeur absolue sur n - 1 bits, puis on complémente (ou inverse) tous les bits et on ajoute 1. Exemple : soit à coder la valeur -2 sur 8 bits. On exprime 2 en binaire, soit 00000010. Le complément à 1 est 11111101. On ajoute 1 et on obtient le résultat : 1111 1110. Remarques : (a) le bit de poids fort d’un nombre négatif est toujours 1 ; (b) sur n bits, le plus grand entier positif est 2n-1

- 1 = 011…. 1 ; (c) sur n bits, le plus petit entier négatif est -2n-1. 3- Représentation des nombres réels (norme IEEE)

Les nombres fractionnaires sont les nombres qui comportent une partie inférieure à 1. Les calculateurs n’ont pas de virgules. On traite donc ces nombres comme des entiers avec des virgules virtuelles gérées par le programmeur. Deux méthodes de représentations existent : La représentation à virgule fixe et celle à virgule flottante (norme IEEE754). A) Virgule fixe :

Le nombre est représenté sur 64 bits dont 32 pour la partie entière et 32 pour la partie fractionnaire. Exemple : 1,0 = (0000 0001, 0000 0000)16 - 1,0 = (FFFF FFFF, 0000 0000)16 30 = (0000 0000 0000 0000 0000 0000 0001 1110)2 C2 (-32) = (1111 1111 1111 1111 1111 1111 1110 0010)2 0,5 = 0,8 16 - 30,5 = ( FFFF FFE2,8000 000)16

Page 7: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 6

B) Virgule flottante ou norme IEEE 754 : Les premières machines utilisaient une représentation en virgule fixe où chaque

nombre était séparé en deux parties contenant les chiffres avant et après la virgule. Depuis le début des années 60, la représentation en virgule flottante, plus souple, s’est imposée. La représentation en virgule flottante consiste à représenter les nombres sous la forme suivante : M×BE

où M est la mantisse, B une base (2, 8, 10, 16, ...) et E l’exposant. Exemples : 123×103 = 123 000 ; -0,02×10-1 = -0,002 ; 1,011×23 2 = 10112. Le standard IEEE définit 2 formats de représentation de nombres à virgule flottante :

� La simple précision sur 32 bits : � Pour la double précision :

La simple précision sur 32 bits : Soit à codifier le nombre 3,25, qui s’écrit en base 2 (11,01)2. On va normaliser la représentation en base 2 de telle sorte qu’elle s’écrive sous la forme 1,… ×2n Dans notre exemple 11,01 = 1,101×21 La représentation IEEE code séparément le signe du nombre (ici +), l’exposant n (ici 1), et la mantisse (la suite de bits après la virgule), le tout sur 32 bits. Le codage a la forme : seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm.

Un bit de signe, 8 bits pour l’exposant et 23 bits pour la mantisse.

1 bit 8 bits 23 bits S E + 127 m

– Le signe est représenté sur le bit de poids fort s, + est représenté par 0 et - par 1. – L’exposant est codé sur les 8 bits e est biaisé de 127. On code en binaire la valeur n + 127. – La mantisse est codée sur les 23 bits de poids faibles m.

Tout nombre N peut s’écrire sous la forme : N = (-1)s x M x BE où M = mantisse ; B = base ; E = exposant, S= signe de M Exemple : 15601 = 156,01 x 102 = 1,5601 x 104 - 101001 = - 101,001 x 23 = -1,01001 x 25 - AF5 = - A,F5 x 162 = - 0,00AF5 x 165

Principe de codification

o La mantisse M est normalisée sous la forme 1,ρ. o La partie ρ est codée sur 23 bits. L’exposant est ajusté en tenant compte de

la mantisse normalisée. o L’exposant E est codé sur 8 bits en ajustant 127 à sa valeur. o S est codé sur 1 bit.

Remarques : 1. Les exposants 00000000 et 11111111 sont interdits :

– l’exposant 00000000 signifie que le nombre est dénormalisé ; – l’exposant 11111111 indique que l’on n’a pas affaire à un nombre (on note cette configuration NaN, Not a Number, et on l’utilise pour signaler des erreurs de calculs, comme par exemple une division par 0).

2. Les plus petit exposant est donc -126, et le plus grand +127.

Page 8: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 7

Pour la double précision :

On utile le même principe de codification sauf que la codification se fait sur 64 bits.

S sur 1 bit ; E sur 11 bits en ajoutant 1023 ; ρρρρ sur 52 bits

Normalisation (IEEE 754) en conclusion – Améliorer la précision/stabilité des résultats et la portabilité des programmes. – Représentation à la fois des très grands nombres et des très petits nombres

Nombre de bits

Taille de M

Taille de E

Emin Emax

32 bits en simple

précision

23 8 -126 +127

64 en Double précision

52 11 -1022 +1023

Exemple 1 :

(1003)10 = (1111101011)2 En simple précision on a : 1,111101011 x 29 ; Le nombre étant positif S= 1 ; E = 9 ⇒ E+127 = (136)10 = (1000 1000)2

S E+127 ρ 23 bits 0 100 0100 0 111 1010 1100 0000 0000 0000 4 4 . 7 A C 0 0 0 .

Donc (1003)10 = 447AC000 IEEE

Exemple 2 : Convertir 4D961000 IEEE en base 10

0 100 1101 1 001 0110 0001 0000 0000 0000 0 � nombre positif E = 155 –127 = 28 N = (2048 + 256 + 64 + 32 + 1 ) x 217 = 240 x 131072 = 314 703 872 N = + 1, ρ x 2 28

5. Représentation des caractères Les caractères sont des données non numériques : il n’y a pas de sens à additionner ou multiplier deux caractères. Par contre, il est souvent utile de comparer deux caractères, par exemple pour les trier dans l’ordre alphabétique. Les caractères, appelés symboles alphanumériques, incluent les lettres majuscules et minuscules, les symboles de ponctuation (& ~ , . ; # " - etc...), et les chiffres. Un texte, ou chaîne de caractères, sera représenté comme une suite de caractères. Le codage des caractères est fait par une table de correspondance indiquant la configuration binaire représentant chaque caractère. Les deux codes les plus connus sont l’EBCDIC (en voie de disparition) et le code ASCII (American Standard Code for Information Interchange).

Page 9: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 8

Le code ASCII représente chaque caractère sur 7 bits (on parle parfois de code ASCII étendu, utilisant 8 bits pour coder des caractères supplémentaires).

Notons que le code ASCII original, défini pour les besoins de l’informatique en langue anglaise) ne permet la représentation des caractère accentués (é, è, à, ù, ...), et encore moins des caractères chinois ou arabes. Pour ces langues, d’autres codages existent, utilisant 16 bits par caractères. La table suivant donne le code ASCII. A chaque caractère est associé une configuration de 8 chiffres binaires (1 octet), le chiffre de poids fort (le plus à gauche) étant toujours égal à zero. La table indique aussi les valeurs en base 10 (décimal) et 16 (hexadécimal) du nombre correspondant. Plusieurs points importants à propos du code ASCII : – Les codes compris entre 0 et 31 ne représentent pas des caractères, ils ne sont pas affichables. Ces codes, souvent nommés caractères de contrôles sont utilisés pour indiquer des actions comme passer à la ligne (CR, LF), émettre un bip sonore (BEL), etc. – Les lettres se suivent dans l’ordre alphabétique (codes 65 à 90 pour les majuscules, 97 à 122 pour les minuscules), ce qui simplifie les comparaisons. – On passe des majuscules aux minuscules en modifiant le 5ième bit, ce qui revient à ajouter 32 au code ASCII décimal. – Les chiffres sont rangés dans l’ordre croissant (codes 48 à 57), et les 4 bits de poids faibles définissent la valeur en binaire du chiffre. IV Architecture de base d’un ordinateur Un ordinateur est une machine de traitement de l’information. Il est capable d’acquérir de l’information, de la stocker, de la transformer en effectuant des traitements quelconques, puis de la restituer sous une autre forme. Le mot informatique vient de la contraction des mots information et automatique. Nous appelons information tout ensemble de données. On distingue généralement différents types d’informations : textes, nombres, sons, images, etc., mais aussi les instructions composant un programme. Comme on l’a vu précédemment, toute information est manipulée sous forme binaire (ou numérique) par l’ordinateur. 1. Principes de fonctionnement Les deux principaux constituants d’un ordinateur sont la mémoire principale et le processeur. La mémoire principale (MP) permet de stocker de l’information (programmes et données), tandis que le processeur exécute pas à pas les instructions composant les programmes. Notion de programme Un programme est une suite d’instructions élémentaires, qui vont être exécutées dans l’ordre par le processeur. Ces instructions correspondent à des actions très simples, comme additionner deux nombres, lire ou écrire une case mémoire, etc. Chaque instruction est codifiée en mémoire sur quelques octets. Le processeur est capable d’exécuter des programmes en langage machine, c’est à dire composés d’instructions très élémentaires suivant un codage précis. Chaque type de processeur est capable d’exécuter un certain ensemble d’instructions, son jeu d’instructions. Pour écrire un programme en langage machine, il faut donc connaître les détails du fonctionnement du processeur qui va être utilisé. Le processeur Le processeur est un circuit électronique complexe qui exécute chaque instruction très rapidement, en quelques cycles d’horloges. Toute l’activité de l’ordinateur est cadencée par une horloge unique, de façon à ce que tous les circuits électroniques travaillent ensembles.

Page 10: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 9

La fréquence de cette horloge s’exprime en MHz (millions de battements par seconde). Par exemple, un ordinateur “PC Pentium 133” possède un processeur de type Pentium et une horloge à 133 MHz. Pour chaque instruction, le processeur effectue schématiquement les opérations suivantes :

1. lire en mémoire (MP) l’instruction à exécuter ; 2. effectuer le traitement correspondant ; 3. passer à l’instruction suivante.

Le processeur est divisé en deux parties (voir figure 1.1), l’unité de commande et l’unité de traitement : – l’unité de commande est responsable de la lecture en mémoire et du décodage des instructions ; – l’unité de traitement, aussi appelée Unité Arithmétique et Logique (U.A.L.), exécute les instructions qui manipulent les données.

FIG. 1.1 – Architecture schématique d’un ordinateur.

2. La mémoire principale (MP) Structure de la MP La mémoire est divisée en emplacements de taille fixe (par exemple 8 bits) utilisés pour stocker instructions et données. En principe, la taille d’un emplacement mémoire pourrait être quelconque ; en fait, la plupart des ordinateurs en service aujourd’hui utilisent des emplacements mémoire d’un octet (byte en anglais, soit 8 bits, unité pratique pour coder un caractère par exemple).

FIG. 1.2 – Structure de la mémoire principale.

Page 11: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 10

Dans une mémoire de taille N, on a N emplacements mémoires, numérotés de 0 à N - 1. Chaque emplacement est repéré par son numéro, appelé adresse. L’adresse est le plus souvent écrite en hexadécimal. La capacité (taille) de la mémoire est le nombre d’emplacements, exprimé en général en kilo-octets ou en méga-octets, voire davantage. Rappelons que le kilo informatique vaut 1024 et non 1000 (210

= 1024). Voici les multiples les plus utilisés :

1 K (Kilo) 1 M (Méga) 1 G (Giga) 1 T (Téra)

210

220

230

240

= 1024 = 1048 576 = 1 073 741 824 = 1 099 511 627 776

Opérations sur la mémoire Seul le processeur peut modifier l’état de la mémoire (Sur certains ordinateurs, les contrôleurs d’entrées/sorties peuvent accéder directement à la mémoire (accès DMA), mais cela ne change pas le principe de fonctionnement). Chaque emplacement mémoire conserve les informations que le processeur y écrit jusqu’à coupure de l’alimentation électrique, où tout le contenu est perdu (contrairement au contenu des mémoires externes comme les disquettes et disques durs). Les seules opérations possibles sur la mémoire sont : – écriture d’un emplacement : le processeur donne une valeur et une adresse, et la mémoire range la valeur à l’emplacement indiqué par l’adresse ; – lecture d’un emplacement : le processeur demande à la mémoire la valeur contenue à l’emplacement dont il indique l’adresse. Le contenu de l’emplacement lu reste inchangé. Unité de transfert Notons que les opérations de lecture et d’écriture portent en général sur plusieurs octets contigus en mémoire : un mot mémoire. La taille d’un mot mémoire dépend du type de processeur ; elle est de

– 1 octet (8 bits) dans les processeurs 8 bits (par exemple Motorola 6502) ; – 2 octets dans les processeurs 16 bits (par exemple Intel 8086) ; – 4 octets dans les processeurs 32 bits (par ex. Intel 80486 ou Motorola 68030).

3. Le processeur central Le processeur est parfois appelé CPU (de l’anglais Central Processing Unit) ou encore MPU (Micro-Processing Unit) pour les microprocesseurs. Un microprocesseur n’est rien d’autre qu’un processeur dont tous les constituants sont réunis sur la même puce électronique (pastille de silicium), afin de réduire les coûts de fabrication et d’augmenter la vitesse de traitement. Les microordinateurs sont tous équipés de microprocesseurs. L’architecture de base des processeurs équipant les gros ordinateurs est la même que celle des microprocesseurs. Les registres et l’accumulateur Le processeur utilise toujours des registres, qui sont des petites mémoires internes très rapides d’accès utilisées pour stocker temporairement une donnée, une instruction ou une adresse. Chaque registre stocke 8, 16 ou 32 bits. Le nombre exact de registres dépend du type de processeur et varie typiquement entre une dizaine et une centaine.

Parmi les registres, le plus important est le registre accumulateur, qui est utilisé pour stocker les résultats des opérations arithmétiques et logiques. L’accumulateur intervient dans une proportion importante dans l’exécution des instructions.

Page 12: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 11

Par exemple, examinons ce qu’il se passe lorsque le processeur exécute une instruction comme “Ajouter 5 au contenu de la case mémoire d’adresse 180” :

1. Le processeur lit et décode l’instruction ; 2. le processeur demande à la mémoire le contenu de l’emplacement 180 ; 3. la valeur lue est rangée dans l’accumulateur ; 4. l’unité de traitement (UAL) ajoute 5 au contenu de l’accumulateur ; 5. le contenu de l’accumulateur est écris en mémoire à l’adresse 180.

C’est l’unité de commande qui déclenche chacune de ces actions dans l’ordre. L’addition proprement dite est effectuée par l’UAL. Architecture d’un processeur à accumulateur La figure 1.3 représente l’architecture interne simplifiée d’un MPU à accumulateur. On y distingue l’unité de commande, l’UAL, et le décodeur d’instructions, qui, à partir du code de l’instruction lu en mémoire actionne la partie de l’unité de commande nécessaire.

FIG. 1.3 – Schéma simplifié d’un processeur. Le processeur est relié à l’extérieur par les bus de données et d’adresses, le signal d’horloge et les signaux de commandes. Les informations circulent à l’intérieur du processeur sur deux bus internes, l’un pour les données, l’autre pour les instructions. On distingue les registres suivants : ACC : Accumulateur ; RTUAL : Registre Tampon de l’UAL, stocke temporairement l’un des deux opérandes d’une instruction arithmétique (la valeur 5 dans l’exemple donné plus haut) ; Reg. d’état : stocke les indicateurs ; RI : Registre Instruction, contient le code de l’instruction en cours d’exécution (lu en mémoire via le bus de données) ; IP : Instruction Pointer ou Compteur de Programme, contient l’adresse de l’emplacement mémoire où se situe la prochaine instruction à exécuter ; RTA : Registre Tampon d’Adresse, utilisé pour accéder à une donnée en mémoire.

Page 13: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 01 – Introduction aux calculateurs numériques

[email protected] Informatique Industrielle © 10/2007 12

Les signaux de commandes permettent au processeur de communiquer avec les autres circuits de l’ordinateur. On trouve en particulier le signal R/W (Read/Write), qui est utilisé pour indiquer à la mémoire principale si l’on effectue un accès en lecture ou en écriture.

4. Liaisons Processeur – Mémoire : les bus

FIG. 1.4 – Connexions Processeur – Mémoire : bus de données, bus d’adresse et signal lecture/écriture.

Les informations échangées entre la mémoire et le processeur circulent sur des bus. Un bus est simplement un ensemble de n fils conducteurs, utilisés pour transporter n signaux binaires. Le bus d’adresse est un bus unidirectionnel : seul le processeur envoie des adresses. Il est composé de a fils ; on utilise donc des adresses de a bits. La mémoire peut posséder au maximum 2a emplacements (adresses 0 à 2a - 1). Le bus de données est un bus bidirectionnel. Lors d’une lecture, c’est la mémoire qui envoie un mot sur le bus (le contenu de l’emplacement demandé) ; lors d’une écriture, c’est le processeur qui envoie la donnée.

Processeur

Mémoire Principale

BUS D’ADRESSES

R/W Signal Lecture/Ecriture

BUS DE DONNEES

Page 14: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 13

Chapitre 02 - ÉLECTRONIQUE DES SYSTEM ES TEMPS RÉEL I Généralités Dans un système temps réel (TR), les données sont prises en compte au fur et à mesure par le calculateur. Il existe une interaction directe entre le calculateur et l’environnement extérieur. Un traitement temps réel comporte trois (3) opérations fondamentales :

- L’acquisition des données de l’environnement extérieur ; - Le traitement des données (informations) ; - L’envoie des résultats ou de l’action vers l’environnement extérieur.

Les traitements ne sont pas sous le seul contrôle du calculateur ; caractéristiques importants des TR, les traitements sont synchronisés par des événements extérieurs. Les réseaux d’ordinateurs pour les transactions bancaires ; le contrôle des processus industriels ; les jeux vidéo sont des exemples de systèmes de traitement en temps réel. Ces exemples nous amènent à distinguer deux types de traitements en TR :

(1) Les Systèmes TR SOFT ; (2) Les Systèmes TR HARD.

Pour les systèmes TR SOFT la contrainte de temps n’est pas critique. On caractérise ces système en pourcentage des opérations réalisées en un temps donné. Exemple 97% des opérations s’effectuent en 3 secondes. Par contre, pour les STR HARD, la contrainte temps est très critique ; les opérations mises en œuvre sont structurées de manières à ce que l’échec du calculateur à réaliser (exécuter) une opération quelconque en un temps précis entraîne l’échec total du calculateur à réaliser le traitement TR. Quelques exemples des temps limites pour différentes applications TR :

- Acquisition et analyse d’une images dans un système radar de défense : 100 ms ; - Contrôle du temps d’étincelle dans un moteur à combustible : 2 ms ; - Interaction avec un terminal pour jeux vidéo : 100 m ; - Interaction avec un terminal pour transactions bancaires : quelques seconde ; - Contrôle de température d’une chambre : quelques minutes.

II Conception du matériel pour les applications en temps réel D’une manière générale un calculateur classique est structuré comme suit : CPU :

- Chargé d’effectuer les opérations arithmétiques – logiques ; - Transfert des données de la CPU vers la mémoire et vice versa ; - Transfert des données de la mémoire vers les E/S et inversement.

Mémoire : sert à stocker les données nécessaires pour le programme et les données restituées sous forme de résultats.

CPU MÉMOIRE PRINCIPALE

E/S DMAC E/S

BUS

Données

Page 15: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 14

Les Interfaces d’E/S : permettent de réaliser la communication de l’ordinateur avec le monde extérieur. Dans ce cadre la seule unité « maître » du bus est le CPU ; les autres éléments sont dits « esclaves ». 1 Transfert des données Pour agir sur l’environnement extérieur, il faudra transférer les fonctions logicielles vers les fonctions équivalentes matérielles. Ce transfert est réalisé à l’aide de circuit spécial DMAC (Direct Memory Acces Control). Le DMAC à deux types de transfert :

- Mémoire principale / mémoire secondaire ;

- Mémoire principale / E/S.

Il a aussi deux modes de fonctionnement : - Mode esclave ; - Mode maître.

2 Traitement des entrées sorties Exemple : contrôle de la position d’une antenne radar :

Il s’agit pour ce système de détecter automatiquement la fin de cours pour le radar. Pour exécuter cette tâche on peut procéder de plusieurs façons : Scrutation d’un bit de fin de cours :

• Il se passe un certain temps entre l’instant où le teste est réalisé et l’instant où on

commence l’étape du traitement de fin de cours. La détection de la fin de cours se fait donc avec un certain retard.

• L’unité de traitement est mobilisée en permanence pour tester la FC. Conclusion : la scrutation ou polling n’est pas adaptée au traitement en TR. Interruption : A la fin de cours, un signal d’interruption est envoyé au CPU, ce dernier arrête le traitement en cours pour se brancher à la routine d’interruption.

• Le changement d’état est perçu en TR par le microprocesseur (CPU), donc pas de retard ;

5V

Interf.

I/O

CPU

INT

Traitement E/S FC=1

Non

Oui

Page 16: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 15

• Le CPU ne perd pas de temps à scruter le changement d’état.

Dans le cas où il y a plusieurs signaux à vérifier, la première technique consiste à tester le bit d’état des E/S en commençant par la plus prioritaire. C’est à dire que cette technique demande une scrutation des E/S ; elle n’est pas compatible avec un traitement TR.

Dans le second cas on utilise un contrôleur d’interruption appelé PIC. L’objectif du vecteur générateur est de recevoir toutes les entrées d’interruption des E/S et transmettre aux CPU qu’une seule interruption.

III Techniques d’interfaçages Le but de l’interfaçage est de réaliser la communication entre le calculateur (CPU) et le monde extérieur. La communication d’une manière générale, ne se fait pas directement Pour cela on interpose un circuit d’interface d’E/S entre le CPU et le circuit E/S.

1 Circuits d’E/S digitaux

1-1 Concepts de base des interfaces Il existe deux grandes catégories de circuits d’E/S : les circuits d’E/S digitaux et les circuits d’E/S analogiques.

CPU

E/S E/S E/S

Vecteur générateur

INT PIC

INT CPU

E/S E/S E/S

CPU

Interface

E/S

E/S

1

2

Page 17: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 16

Interface : désigne d’une manière générale l’ensemble des points communs entre deux parties d’un système. Interface : désigne l’ensemble des points de connexion que le circuits d’E/S présente vers l’extérieur. Interfacer deux circuits consiste à relier entre eux les points d’interface (ou de connexion) respectifs de manière à ce que l’information puisse circuler entre eux. Dans les systèmes à microprocesseur on peut distinguer 2 types d’interface :

- L’interface présenté par le microprocesseur (le micro-ordinateur) : le bus système (adresses, données, contrôle) ;

- L’interface des circuits d’interfaces d’E/S : très variés et largement dépendant de l’E/S.

Le problème d’interfaçage temps réel comporte 2 aspects :

- L’aspect matériel (ou Hardware) : s’occupe de la liaison (connexion) correcte entre les points de connexion. Il met en évidence les niveaux de tensions et de courants relatifs à chaque circuit. MOS L (niveau bas) 0V – 0,4V TTL H (niveau haut) 2,4V – 5V ECL (logique à couplage d’émetteur) H= 0,8V et L = 1,8V

- L’aspect logique (ou Software) : c’est le programme qui permet la réaliser la communication entre l’ordinateur et le circuit d’E/S.

1- 2 Interrupteur et clavier

Un interrupteur est un circuit qui permet d’envoyer un 1 (fermé) ou un 0 (ouvert).

L’interrupteur est le circuit d’entrée le plus simple. Un phénomène de rebondissement sur ces interrupteur, il est dû ses caractéristiques et à la constante de temps.

PIA 6821 ou

8235

PA0

PA7

D0 …D7

Adresses

CAN

DB7

DB7

VP

Périphérique - entrée Circuit d’interface Entrées

BU

S

OFF

ON

BU

S

Page 18: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 17

0 V

0V

Le temps de rebondissement est en général de l’ordre de 10 ms. Pour régler ce problème on utilise des dispositif antirebond qui peuvent être matériel (généralement pour les bouton poussoir) ou logiciel.

1-3 LEDs (Light Emitting Diodes)

C’est un dispositif de sortie qui traduit un signal de sortie logique en lumière. C’est le circuit de sortie le plus simple. DEL : Diode électroluminescente Elle a une faible consommation d’énergie. L’ordre de grandeur du courant d’allumage est de 20 mA La sortance d’un ordinateur est au maximum de 10 TTL (avec 1 TTL = 1,6 mA)

Si le circuit met en jeu de courant et tension élevées par rapport aux courants et tensions du système de l’ordinateur, il faut réaliser une isolation galvanique ou électrique. Cette isolation est réalisée avec l’aide d’un optocoupleur. Un optocoupleur est un dispositif fait d’un transistor et d’une diode électroluminescente.

t

z

Interrupteur idéal t

z

Interrupteur réel

1 1

0 0

5 V

0V

12 V

0V

Optocoupleur

500 – 3000V

Page 19: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 18

2 Circuits d’E/S analogique non électrique Les grandeurs physiques ne sont pas électriques forcement, elles peuvent être optiques, mécaniques, thermiques … Pour mesurer ‘une manière électrique une grandeur physique, il faut la convertir d’abord en un signal électrique et après utiliser un convertisseur analogique numérique. Exemple :

- Position spatiale (x, y, z) - Vitesse - Pression - Accélération - Débit d’un fluide - Température - Intensité lumineuse

Schéma de la mesure et du contrôle d’une grandeur analogique physique Exemple 1 : thermomètre à microprocesseur

Exemple 2 : contrôleur de température

Système en boucle fermé

Thermocouple Amplification Filtrage

CAN

Port 1

Chaleur

Port 0

BUS

- +

Thermocouple Amplification Filtrage

CAN

Affichage Port 1

Chaleur

Port 0

BUS

Transducteur Circuit de conditionnement

CAN

Grandeur physique (analogique non électrique

Contrôleur analogique

Circuit de conditionnement

CNA

BUS

Grandeur physique (analogique non électrique

Page 20: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

[email protected] Informatique Industrielle © 10/2007 19

2-2 Les transducteurs Ce sont des dispositifs physiques qui traduisent des grandeurs physiques non électriques en leurs équivalents électriques ( le plus souvent analogique). Exemple : La thermistance est un dispositif (résistance en sémi – conducteur ) dont la résistance augmente avec la température. La jauge de contrainte permet de mesurer par exemple la pression.

2-3 Les actionneurs Ils traduisent un signal électrique (analogique généralement) en une action physique (mécanique). Exemple : Un verrou électrique

Ressort

BUS

Verrou

Page 21: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 20

CHAPITRE 03 - CARACTERISTIQUES DES ORDINATEURS TEMPS REELS

Introduction Le traitement de l’information en temps réel par ordinateur exige que le temps de réponse du système soit inférieur à la valeur définie par la durée de présence de l’information et par la durée de la validité du traitement qu’elle doit subir. La limitation du temps de réponse, caractéristique essentiellement du traitement en temps réel, peut varier beaucoup d’une application à l’autre.

• Ordre de grandeur de l’ordre du micro-seconde pour l’exploitation des signaux de télécommunication ; Les signaux provenant d’une expérience physique ;

• De l’ordre de la seconde pour le contrôle dans les processus industriels ; • Jusqu’à plusieurs minutes pour les applications de gestion.

Le temps de réponse du système comprend : • Le temps d’acquisition des informations ; • Le temps de transfert vers les UC ; • Le temps de prise en compte de la demande de traitement ; • Le temps de traitement proprement dit.

Un système temps réel par conséquent organisé de façon à réduire ces temps : • Connexion directe à l’UC de périphériques spécialisés dans l’acquisition des

données (capteurs, convertisseurs, multiplexeurs, transmetteur) ; • Choisir une UC très rapide ; • Choix d’un système d’entrées/sorties à temps réel de réponse très faible (exemple

DMA) ; • Nécessité d’assurer le bon fonctionnement quelque soit les erreurs ou accidents qui

peuvent intervenir dans le système (fiabilité).

Méthode de programmation des entrées – sorties L’échange d’information entre l’ordinateur et l’extérieur est réalisable de deux façons différentes : + Soit on a un échange d’information entre UC et l’extérieur :

Le transfert se fait par l’intermédiaire des registres de l’UC (accumulateur en général). NB : Pendant le transfert, l’UC ne peut s’occuper d’aucune autre tâche.

+ Echange d’information entre la mémoire centrale (MC) et l’extérieur par une voie d’échange : NB : pendant le transfert l’UC est libre et peut donc s’occuper d’autre chose.

MEMOIRE CENTRALE

UNITE CENTRALE

ORGANE PERIPHERIQUE

MC

UC

ORGANE PERIPHERIQUE

VOIE D’ECHANGE

Ordre

Compte rendu

Contrôle par l’UC

Page 22: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 21

+ Système complet : 1) Méthode de scrutation ou polling On peut distinguer quatre (4) types d’entrées/sorties :

� Entrées d’information (écriture dans le registre tampon d’un CAN). � Sortie d’information (écriture dans le registre tampon d’une

imprimante). � Entrée de mot d’état (on peut associer à chaque physique un

ensemble de position binaire décrivant à tout moment son état). � Sortie d’un mot de fonction (pour commander les organes

périphériques, ouverture ou fermeture d’une vanne).

L’exécution d’une instruction d’E/S par l’UC est conditionnée par l’état du périphéries. A chaque fois il va tester l’état du périphérie pour voir s’il est libre ou occupé. Cette technique mène, pour les périphéries lentes (exemple unité électromécanique), à un temps d’attente important de l’UC. Ceci nuit au traitement temps réel, puisque pendant ce temps d’interrogation, l’attente de l’UC laisse survenir sans pouvoir les traiter des évènements sur les autres unités.

Ces constatations conduisent à préférer un autre système de synchronisation : le système d’interruption. 2) Système d’interruption On peut classer les sources possibles d’interruption en deux (2) familles :

♦ Interruptions internes : correspondant soit à la détection par l’UC d’une anomalie au cours de l’exécution d’un programme, soit à l’arrivée d’un signal émis par un dispositif intégré dans l’UC.

Exemple : instruction inexistante ; violation protection mémoire ; horloge (interruption horloge interne). ♦ Interruptions externes : proviennent des organes connectés à l’UC ou à l’unité

d’échange assurant généralement le contrôle des périphériques. Exemple : erreurs de lecture ; périphérie non prêt.

MC

UC

ORGANE PERIPHERIQUE

VE

Ordre

Compte rendu

Contrôle par l’UC

ORGANE PERIPHERIQUE

OUI Organe périphérique occupé

Transfert

Page 23: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 22

Hiérarchie des interruptions : Si on autorise un déroutement d’un programme en cours d’exécution lorsque survient une interruption, cela signifie que le programme de réaction à cet évènement est considéré comme prioritaire par rapport à celui qui avait le contrôle de l’UC. Le programme de gestion de cette interruption peut à son tour être interrompu s’il survient une interruption

à traiter en plus grande urgence. On est donc amener à définir des classes d’interruption. Le corps du programme de niveau i comprend essentiellement 3 phases : Phase diagnostic : consiste à reconnaître la source de l’interruption ; Phase acquittement : consiste à effacer dans le registre interruption la marque indiquant que le niveau i était en attente ; Phase traitement : exécution du programme de gestion de l’interruption.

Prise en compte d’une interruption La prise en compte d’une interruption ne se fait que si toutes les conditions suivantes sont réalisées : 1) Les interruptions doivent être autorisées ; 2) Le niveau de l’interruption n’est pas masqué ; 3) Le niveau ayant actuellement le contrôle de l’UC ne doit pas être de niveau supérieur

ou analogue à celui qui fait la requête. 4) Il ne doit pas y avoir en attente un niveau non masqué de priorité supérieure.

Pgrm de niveau i

Prise en compte de l’interruption de niveau j >i

Inhibition provisoire de toutes les interruptions

Sauvegarde de l’état du programme i

Autorisation des interruptions de niveau > j

Diagnostique

Traitement

Acquittement

Restauration de l’état du programme i

Libération niveau j, autorisation d’interruptions niveau > i

Page 24: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 23

Utilisation du système d’interruptions Les interruptions permettent à des évènements d’attirer immédiatement l’attention de l’UC. Le programme n’a pas besoin de tester chaque dispositif et de s’inquiéter si le système va laisser des évènements non traités. A titre d’exemple on peut citer :

- La gestion des alarmes sur un processus industriel ; - La définition du temps par l’intermédiaire d’une horloge temps réel; - La réduction ou suppression des temps d’attente pour la réalisation de transfert d’E/S ; - La simplification de la surveillance des périphériques.

Accès direct à la mémoire (DMA voie d’échange rapide) En mode d’interruption, au temps de traitement proprement dit s’ajoute le temps de reconnaissance de la cause d’interruption, le temps de sauvegarde de l’état du programme et puis le temps de restauration en fin de traitement. Cette constatation induit la notion de voie d’échange à accès mémoire direct ; unité indépendante de l’unité de commande.

1) Utilisation Le but des voies d’échange est d’échanger des informations entre la mémoire et les unités périphériques. Exemple :

• Chargement d’un programme ou d’un bloque de données d’une mémoire auxiliaire vers la mémoire centrale.

• Extraction d’un bloc de données de la mémoire centrale pour visualisation sur écran cathodique.

Demande interruption niveau i

Interruptions autorisées

Masque i

Niveau en cours < i

Niveau en attente < i

Prgm interruption

Déroulement

Page 25: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 24

2) Description d’une voie d’échange à accès direct l’unité de mémoire centrale est composée de 1 ou plusieurs blocs de mémoire. Pour chaque bloc on peut considérer que le dispositif d’accès et multiplexé (plusieurs organes indépendants peuvent demander l’accès). A tout instant ce bloc est mis en communication avec une seule voie d’accès, voie désignée par un système de priorité en cas de demande simultanée.

Une des voies d’accès à chaque bloc est nécessairement réservée à l’unité de commande, les autres sont connectées à des unités d’échange. Les opérations de transfert sont réalisées par ces unités d’échange, chacune d’elle pouvant être connectée à une ou plusieurs unités périphériques.

En plus des opérations de lecture et écriture en mémoire centrale, l’unité d’échange procède à des opérations de comptage (comptage du nombre de mot transférés, progression de l’adresse mémoire) et à des opérations logiques simples (comparaison entre nombre de mot transférée et le nombre de mot total). Ces fonctions sont câblées dans l’interface dans l’interface dont on doit le nom de canal simultané. Le canal simultané est un organe ayant les caractéristiques voisines de celle d’un ordinateur.

3) Canal simple – canal multiplexé En augmentant légèrement la complexité des fonctions câblées d’un canal simultané, on peut lui faire gérer plusieurs contrôleurs d’unité périphérique. Une même voie d’échange peut donc assurer le transfert vers plusieurs unité. La cadence de transfert sur cette voie ne sont limité que par la technologie de l’électronique associée, ou par le cycle mémoire centrale. Dans tous les cas, elle demeure très grande par rapport au cadence de fonctionnement de certaine unité lente (Exemple : lecteur de cartes, téléimprimeur, imprimante …) Pour les unités lentes, on préfère utiliser un canal simultané simple ou un canal simultané multiplexé. Par contre pour des unités rapides, on préfère utiliser des canaux simples par unité. En connectant sur un canal multiplexé toutes les unités lentes d’une configuration donnée (on réalise un compromis entre efficacité et coût, puisqu’une efficacité meilleure ne pourrait être obtenue que par l’utilisation d’un canal simple pour chaque unité). Les canaux simples sont alors réservés aux unités rapides.

BLOC MEMOIRE

Tampon Adresse Fonction

MULTIPLEXEUR Demande de voie

T1 T2 T3 F1 F2 F3 A1 A2 A3

Page 26: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 25

4) Simultanéité d’accès à la mémoire

On peut penser qu’il n’y aura jamais simultanéité vraie quant au travail de l’UC et celui de la voie d’échange car celui-ci à chaque demande d’accès à la mémoire, doit faire attendre l’UC. En fait ce freinage et variable et l’on ne peut préciser que sa limite supérieure. Image d’exécution d’un programme avec transfert simultané

Transfert de M cases mémoire � temps de transfert est M Tc T : temps de cycle mémoire τi : temps de freinage pour la case mémoire i Temps de freinage total : Tf = ∑i=1M τi τi ≤ T Tf < MT

5) Cas des mémoires divisées en blocs

Unité de contrôle 1

Unité de contrôle 2

Disque magnétique

UNITE MEMOIRE

UNITE CENTRALE

Canal multiplexé Canal simple Canal simple

Voie n°0 n°3 n°1 n°2

Initialisation Fin d’échange

Bande magnétique

Unité de contrôle Unité affichage

Unité de contrôle

Lecteur ruban

Unité de contrôle

Imprimante

Unité de contrôle

τ1

τM

T τ2

Tc

Bloc B1

Bloc B2

Bloc B3

Bloc B4

UC

VE1

VE2

Page 27: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 26

Les problèmes évoqués précédemment sont modifiés si la mémoire centrale est divisée en bloc de mémoire ayant chacun son système d’accès multiples. Exemple : Si VE1 demande l’accès à B1 Si VE2 demande l’accès à B2 Si UC demande l’accès à B2

On aura alors une simultanéité totale car aucune demande ne va gêner l’autre, étant donner que les blocs mémoires sont des systèmes d’accès séparés. Mais la simultanéité n’existera pas s’ils demandent le même bloc

Système de protection mémoire a) Intérêt de la protection mémoire

La protection désigne l’ensemble des mécanismes qui protège les objets du système contre l’environnement.

Un bon système de protection doit permettre : - D’empêcher un utilisateur d’interférer avec les autres utilisateurs ; - De protéger l’utilisateur contre ses propres erreurs ; - De protéger le système contre les utilisateurs ; - De fixer différents niveaux de protections de plus en plus sévère pour les plus sensible.

Un système de protection est confronté à deux problèmes de base : • Des ‘murs’ doivent être construit autour des régions avec des portes spécifiques

pour les besoins de communication entre processus ; • Les communications entre région doivent être surveiller c’est à dire qu’il doit

exister un mécanisme de contrôle qui ne donne l’accès à la région qu’au processus autorisé.

b) Systèmes utilisés

1- Protection par barre de verrouillage C’est le système le plus simple à mettre en œuvre. Un registre dit « barre de

verrouillage » est chargé par une valeur désignant une adresse. Les adresses inférieures à la barre de verrouillage sont protégées. D’une adresse supérieure à la barre de verrouillage on ne peut pas accéder à la zone protégée. Mais de la zone protégée on a accès à toute la mémoire.

Cette méthode convient à la monoprogrammation ; il convient tant qu’il n’y a que deux programme en mémoire (exemple l’OS et une application). 2- Protection par zone

On protége la zone définie par le contenu de deux registres de protection (ou deux barres de verrouillage) et les adresses extérieures aux deux barres sont protégées.

Zone Protégée 0000

Zone 1 Protégée 0000

Zone 2 Protégée

Page 28: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

[email protected] Informatique Industrielle © 10/2007 27

3- Protection par page et clé On alloue à chaque programme un bloc de mémoire, c’est à dire un ensemble de pages consécutives. A chaque bloc est affecté une clé qui accompagne chaque demande d’accès mémoire. Exemple : Espace système : clé 0 Programme 1 : clé 1 Programme 2 : clé 3 Au moment d’un accès mémoire l’unité de mémoire vérifie avant d’effectuer un accès que la clé du demandeur est :

• soit 0 (OS) ; • soit identique à celle du bloc où se trouve l’adresse demandée.

c) Traitement des violations d’accès

En général lorsqu’un programme système détecte une tentative de violation d’une protection par un processus, il se contente de refuser l’accès, en renvoyant un code erreur approprié. Dans d’autre cas le système pourra aussi « tué » le processus coupable.

Page 29: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 04 – Installation des Ordinateurs en Milieu Industriel

[email protected] Informatique Industrielle © 10/2007 28

CPU MÉMOIRE INTERFACE D’E/S

BUS ORDINATEUR

INTERFACE ORDINATEUR

COUPLEURS

BORNIERS

Unité d’interface

SYSTÈME INDUSTRIEL

CHAPITRE 04 - INSTALLATION DES ORDINATEURS EN MILIEU INDUSTRIEL

I Interface ordinateur – système industriel Pour installer un ordinateur en milieu industriel, on doit tenir compte de plusieurs conditions entre autre :

• La température • L’humidité • La pureté de l’air (pas de poussière)

La fluctuation du courant du secteur et les coupure d’électricité à éviter. Pour cela on utilise des onduleurs qui se substituent aux courants du secteur. Le milieu industriel est en général un milieu agressif :

� Température élevée � Poussière dans l’air � Fumée � Parasite

Donc il faut une dimension supplémentaire par rapport à l’installation dans les milieux non industriels. Pour communiquer avec le processus (reçoit des données et envoie des commandes au processus), l’ordinateur a besoin d’une chaîne d’acquisition de données et d’une chaîne de transmission de commande. Chaîne d’acquisition || CAPTEUR || CONDITIONNEMENT || CAN || Chaîne de commande || MOT COMMANDE || CNA || CONDITIONNEMENT || ACTIONNEUR || Les inconvénients sont principalement dus au regroupement des éléments de conduite (unité d’interface intégrée à l’ordinateur). Ce sont donc l’encombrement et les interférences (parasitage).

II Unité d’interface

Processus Ordinateur Capteurs

Actions

Page 30: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 04 – Installation des Ordinateurs en Milieu Industriel

[email protected] Informatique Industrielle © 10/2007 29

CPU MÉMOIRE INTERFACE D’E/S

BUS ORDINATEUR

COUPLEURS

BORNIERS

SYSTÈME INDUSTRIEL

CONTRÔLEUR DE COMMUNICATION

CONTRÔLEUR DE COMMUNICATION

Système Ordinateur

Satellite d'interface

Interface ordinateur Identique aux interfaces classiques. Coupleurs Assurent la liaison électrique entre l’ordinateur et le système industriel (optocoupleurs par exemple). Borniers Assurent la liaison mécanique entre les signaux de l’ordinateur et les signaux du système industriel. Pour les grands systèmes et à cause des inconvénients précédemment cités, le schéma suivant est utilisé.

III Normes électriques industrielles Ils existent deux types de signaux

♦ Signaux logiques 12V – 24V – 48 – 68 (les plus utilisés sont : 24V et 48V).

♦ Signaux analogiques � Haut niveau

0 à 10V 0 à 50V

� Bas niveau - 10 mV à + 10 mV

Transmetteur 4-20 mA

Page 31: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 04 – Installation des Ordinateurs en Milieu Industriel

[email protected] Informatique Industrielle © 10/2007 30

Capteur

Ampli

Capteur

Ampli

A

B Vd

VA VB

Amplificateur différentiel ou d’instrumentation

IV Sécurité et protection Il s’agit d’éviter qu’une défaillance d’un circuit de l’ordinateur entraîne une défaillance du fonctionnement du système industriel (matériel et personnel) et vice-versa. Pour cela plusieurs techniques sont utilisées pour assurer la protection et la sécurité du personnel et du matériel.

- Isolation galvanique (optocoupleur) ; - Protection contre les surtensions et les surintensités (fusibles, …) ; - Utilisation d’une interface de secours ; - Détection précoce des défauts.

V Conditionnement des signaux analogiques et numériques 1 Réjection des signaux en mode commun Les tensions qui viennent des capteurs sont très faibles (quelques mV), elles ont une grande sensibilité au bruit. Ce état de fait implique :

- L’usage d’un amplificateur placé le plus proche possible du capteur ; - L’usage d’une liaison entre capteur et amplificateur avec une impédance très

faible (câble coaxial, paire torsadé) ; Câble coaxial : permet d’éviter l’effet électrostatique. Paire torsadée : permet d’éviter l’effet électromagnétique. Connexion non symétrique Pour les tensions à la sortie du capteur de l’ordre du mV, on utilise un montage dit symétrique : La tension en mode commun est une tension qui se retrouve sur les deux bornes de l’amplificateur (VCM). Dans le cas d’un montage parfaitement symétrique on a :

VA = VMC + Vd/2 VB = VMC - Vd/2 VA - VB = Vd

En général le montage capteur – amplificateur n’est jamais parfaitement symétrique de sorte qu’il existe toujours une tension résiduelle qui va se superposer à la tension utile Vd, donc cette tension va être amplifiée au même titre. Ce qui va nous amener à la définir le taux de réjection en mode commun RRCM [Rejection Rate Commun Mode]. Le RRCM exprimé en

décibel est donné par la formule suivante : résiduelletension

commun modeen tension log20][ =dBRRCM

Page 32: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 04 – Installation des Ordinateurs en Milieu Industriel

[email protected] Informatique Industrielle © 10/2007 31

Ve

R1

R2

R4

R5

R3

Is -

+

Vs

R

Is -

+

Exemple : il s’agit de réaliser une précision de 1% sur la mesure d’une tension délivrée par un thermocouple égale à 10 mV avec VCM = 10 V. Retrouver le RRCM de l’amplificateur.

VmVVd 41010100

1 −==

dBRRCM 10010

10log20

4== −

2 Conversion tension – courant Pour transmettre le signal provenant d’un capteur éloigné du calculateur, on ne peut pas le transmettre sous forme de tension. Sous la forme d’une tension, le signal sera fortement atténué (chute de tension dû à la longueur du fil). Pour résoudre ce problème on convertit le signal sous la forme d’un courant. On utilise donc un convertisseur tension – courant. Exemple de convertisseur tension – courant : R2 R5 = R2 (R3 + R4) Is = ( - R2 / R1 R3) Ve 3 Conversion courant – tension Vs = - R Is Les deux circuits associés (entrée de ligne et sortie de ligne) on aura : Vs = (R R2 / R1 R3 ) Ve 4 Entrées binaires L’entrée binaire est une entrée à deux niveaux : un niveau haut et un niveau bas. Entrée binaire non isolée

- V1

Contact

R1

V2 V3

R D2

D1 C

Vs A

Ampli 10 mV

Page 33: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 04 – Installation des Ordinateurs en Milieu Industriel

[email protected] Informatique Industrielle © 10/2007 32

La tension V3 est toujours supérieure à la tension V2. RC permet d’éliminer le régime transitoire. Quant le contact est fermé : D1 est polarisée en direct � VA≈0 (tension de seuil de diode 0,7V) � niveau 0 pour Vs (niveau bas). Contact ouvert D2 est polarisée en direct � VA – V2 = Vd � VA= Vd +V2 � niveau haut Entrée binaire isolée On utilise par exemple un optocoupleur

5 Sorties binaires

48V

R

Calculateur

Milieu industriel

Darlington

Vc

R

Vs

Calculateur Milieu industriel

Page 34: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

[email protected] Informatique Industrielle © 10/2007 33

Chapitre 05 – NOTIONS DE CONTROLE DE PROCEDES (Process Control)

I. Introduction Les opérations associées à un contrôle de procédés ont existé avec l’apparition des

premières créatures vivantes : contrôle de procédés naturels ; exemple, le corps humain : la température ne doit dépasser un certain seuil 37°. Pour survivre, l’homme a inventé un contrôle de procédés artificiels. Actuellement, le contrôle de procédés a évolué, il est destiné à des opérations d’automatisation industrielle. II. Définition du contrôle de procédés

On définit un procédé, un système industriel ou un processus physique comme étant une interconnexion d’éléments devant réaliser une tache définie.

Un procédé est un assemblage complexe de phénomènes associé à une séquence de production.

Le procédé répond aux lois de la physique ; les équations, qui en découlent, permettent (lorsqu’on sait les exprimer) de décrire le processus par un model de connaissance. A défaut, on a le model de comportement, obtenu grâce à des algorithmes d’identification.

Le model de connaissance définie les variables d’entrée et les variables de sortie du

processus.

Exemple 1 : Un réchauffeur

Exemple 2 : contrôle de la température d’une salle.

En général un contrôle de procédé met en jeu une ou plusieurs variables dynamiques. Une variable dynamique est un paramètre physique qui varie spontanément ou sous l’action d’une influence extérieure.

Le but d’un contrôle de procédé est de maintenir une variable égale ou proche d’une valeur spécifique désirée. Pour ce faire une action corrective doit être appliquée constamment pour maintenir la variable constante : c’est la régulation.

La conduite d’un procédé consiste à adapter son fonctionnement à des règles définies à l’avance. Dans le cas du réchauffeur on impose que la température du fluide sortant soit fixe quelque soit la température du fluide entrant, (pour cela on agit sur la vanne d’entrée et de sortie de vapeur).

Procédé

V perturbation

Up Commande

Y Sortie

Entrée Fluide

Sortie Fluide

Sortie de vapeur d’eau

Entrée de vapeur d’eau

Page 35: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

[email protected] Informatique Industrielle © 10/2007 34

Trois opérations sont associées au contrôle d’un paramètre physique : - Mesure du paramètre qui consiste à la traduire de la variable et à la mesurer. - Comparaison de la comparaison de la variable mesurée avec une consigne. - Action assurée par un contrôleur sur le procédé de manière à ramener la grandeur

mesurée à la valeur désirée. Les éléments d’un contrôle de procédés sont :

L’élément de mesure, l’élément de contrôle et le contrôleur. III. Principe de contrôle de procédé

L’ensemble des opérations nécessaires pour le contrôle de procédés est appelé commande. Si cette commande est accomplie par l’opérateur humain alors la commande est manuelle. L’accomplissement de la fonction de changement de l’état du système commandé à l’aide de dispositifs intermédiaires selon des lois déterminées représente en général une commande automatique. En fonction de la source du signal utilisé par le système de commande pour former l’action de commande, les systèmes automatiques sont classés en deux catégories : - les systèmes en boucle ouverte ; - les systèmes en boucle fermée.

1) Système en boucle ouverte (BO)

Les systèmes de commande en BO sont représentés comme suit : Les systèmes en BO sont des systèmes automatiques dont l’action de commande est indépendante de l’information sur la valeur réelle de la grandeur commandée. Systèmes de commandes par compensation : L’action de commande u(t) dans ces systèmes est formée sur la base de l’information sur certaines perturbations principales mesurables Zi (t). Cette information est transmise directement à l’entrée du système de commande. C’est pourquoi de tels systèmes sont appelés systèmes de commandes par compensation. Mais la compensation est portée uniquement sur la perturbation mesurable. C’est pourquoi ces systèmes ont une application limitée.

Consigne Elts de contrôles Contrôleur Procédé

Mesure

Compensation Zi

Organe d’exécution

Capteur de mesure

Système commandé

Organe de réglage

u(t)

Z1(t)

Zi(t)

Zn(t)

y(t)

Signal de mise en marche

Grandeur de commande

Système de commande

Système commandé

Perturbations

Grandeurs commandées

Zi(t)

u(t)

Page 36: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

[email protected] Informatique Industrielle © 10/2007 35

2) Système en boucle fermée (BF) Le principe de fonctionnement des systèmes en boucle fermée est fondés sur la mesure de

l’écart (grandeur de correction ou erreur) ou le principe de contre – réaction. Ce principe consiste à comparer la valeur désirée avec la valeur réelle de la grandeur commandée. L’information sur l’écart, de la grandeur commandée par rapport à la valeur désirée est utilisée par le système de commande pour former l’action de commande u(t) sur le système commandé. La chaîne par la quelle l’information sur la grandeur commandée est transmise de la sortie du système commandé jusqu’à l’entrée est la contre réaction principale du système automatique. Le signal de retour peut être positif ou négatif. N’importe quel écart sur la grandeur commandée y(t) provoque l’action par rapport à u(t) pour réduire ou annuler cet écart. L’inconvénient des systèmes en BF se caractérise par la nécessité de l’existence de l’écart en régime permanent et transitoire.

3) Système de commande combinée Les avantages des systèmes de commande en BO et repris pour former des systèmes de

commande combinée. Dans ces systèmes l’action de commande est formée en fonction de la valeur réelle et des actions de perturbations principales. Lorsque l’influence de la perturbation Zi(t) est compensée à l’aide du compensateur Zi, la boucle fermée reste indifférente à ce changement. Par contre les influences exercées sur y(t) par les autres perturbations sont atténuées par l’action de la chaîne fermée. Pour réduire l’erreur statistique e(+∞) ou en temps minimale avec compensation par anticipation.

Organe de mesure

Système commandé

Organe de correction

u(t) y(t)

Z1(t)

Zi(t)

Zn(t)

r(t) ε

Compensation Zi

Organe d’exécution

Organe de mesure

Système commandé

Organe de réglage final

Z1(t)

Zi(t)

Zn(t)

y(t)

Compensation par anticipation

Capteur

Organe de correction

+

+

Transmetteur

Organe de consigne

_

Page 37: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

[email protected] Informatique Industrielle © 10/2007 36

IV. CONNEXION D’UN PROCEDE A UN CALCULATEUR

1) Automatisation de la conduite d’un procédé L’automatisation consiste à assurer la conduite du procédé à l’aide d’un dispositif technologique. Pour automatiser la conduite d’un procédé on procède par ces 4 étapes :

1) Définir le cahier de charges, formuler les règles de fonctionnement, donc les objectifs à atteindre ;

2) Mesures les objectifs réellement atteints sur le procédé en fonctionnement ; 3) A partir de la comparaison des objectifs, élaborer une stratégie de commande ; 4) Réaliser à l’aide d’un dispositif technologique la stratégie de commande.

L’ensemble constitué par le procédé et le dispositif technologique, constitue un système automatisé. Les capteurs et les interfaces d’adaptation : convertissent les signaux physiques issus du procédé en signaux informationnels (mesures). Les interfaces de puissance : convertissent le signal informationnel en signal énergétique (amplificateur de puissance). La partie commande : constitue l’organe de calcul.

2) Le dispositif technologique On utilise :

♦ Soit des systèmes de contrôle analogique ou outils câblés, ce sont les régulateurs, leur principal inconvénient est le manque de précision (dérive dans le temps, en température).

PROCEDE

A C T I O N N E U R

C A P T E U R

Interface de puissance

Interface d’adaptation

PARTIE COMMANDE

Interfaces

C O M M A N D E

I N F O R M A T I O N

Consigne à atteindre

Visualisation d’une étape du processus

Système automatisé

Page 38: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

[email protected] Informatique Industrielle © 10/2007 37

♦ Soit des systèmes de contrôle numérique. Ce sont des systèmes à microprocesseur, les automates programmables, les calculateurs numériques. La précision est généralement plus élevée et les performances sont constantes. Seul inconvénient, il est moins rapide.

3) Rôles du calculateur numérique En ce qui concerne l’automatisation des procédés, les données sont de deux types :

Données relatives aux objectifs à atteindre : elles sont introduites en mémoire, soit définitivement (consignes fixes), soit à la demande de l’utilisateur (consignes variables).

Données relatives à l’objectif réellement atteint : elles sont introduites en

mémoire via les coupleurs d’entrée à chaque foi que le programme qui réalise la stratégie de commande est exécuté.

La structure d’un programme de contrôle est globalement la suivante :

Attendre le signale de synchronisation ; Lire les consignes numériques ; Convertir les mesures analogiques, et lire les mesures numériques ; Calculer les erreurs, exécuter les programmes de corrections ; Convertir les commandes en analogique.

PROCEDE

ACTIONNEUR

CAPTEUR

Détermination des objectifs réellement atteints

Stratégie de commande

Procédé

Objectifs à atteindre

Unités contrôles

Ports séries

Sorties analogiques

Entrées analogiques

Entrées numériques

F o n d d e p a n i e r

Alimentation

Capteurs numériques

Capteurs analogiques

Interfaces Processus

Cartes

Ordinateur industriel

Page 39: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

[email protected] Informatique Industrielle © 10/2007 38

Te τi

ti ti+1

4) Fonctionnement en temps réel On peut caractériser le fonctionnement en temps réel du calculateur de la façon

suivante : A chaque fin d’exécution du programme, réalisant la stratégie de commande, déclenche la sortie vers l’extérieur des résultats et l’initialisation d’une nouvelle exécution.

Si ti et ti+1 représente les dates de deux exécutions successives, l’intervalle de temps ∆i=ti+1–ti représente le temps de service du calculateur pour un procédé. En générale, ce temps de service, n’est pas constant, de plus il doit être très bref vis à vis du besoin de control de processus.

On est donc amener à déclencher l’exécution du programme de la stratégie de commande, à l’aide d’un dispositif annexe (horloge) et à utiliser l’intervalle de temps, entre la fin de l’exécution et le début d’une nouvelle exécution à d’autres tâches.

Te = max τi L’intervalle de temps Te - τi peut servir pour l’exécution interactive ave l’utilisateur. Exemple : acquisition de la nouvelle valeur de consigne.

Page 40: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 39

CHAPITRE 06 : SYSTEMES D’EXPLOITATION TEMPS RÉEL [Pré requis (notions sur les systèmes d’exploitations)]

I Généralités 1) Définitions : Système Temps réel Un système temps réel est un système dont le comportement dépend, non seulement de l’exactitude des traitements effectués, mais également du temps où les résultats de ces traitements sont produits. Echéance dure et échéance lâche • Échéance dure (Hard deadline) : le résultat d’un traitement en retard provoque une exception • Échéance lâche (Soft deadline) : le retard ne provoque pas d’exception Temps réel dur et temps réel lâche • Temps réel dur (Hard): un système dans lequel certaines échéances ne doivent en aucun cas être dépassées. • Temps réel lâche (Soft) : un systèmes dans lequel le dépassement occasionnel des échéances ne met pas le système en difficulté. Prévisibilité La prévisibilité est ce que qui permet de déterminer à l’avance si un systèmes temps réel va respecter ses contraintes temporelles. Déterminisme 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. La source de non déterminisme • Charge de calcul • Entrées/sorties • Interruptions • Fautes et exceptions matérielle ou logicielles Fiabilité La fiabilité 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. Informatique et logiciel Temps Réel En informatique temps réel, le comportement correct d’un système dépend, non seulement des résultats logiques des contraints, mais aussi du temps auquel les résultats sont produits Un logiciel temps réel est un logiciel qui pilote un ordinateur qui interagit avec des dispositifs ou objets externes en fonctionnement. Il est dit “temps réel” parce que ses actions logicielles dirigent les activités d’un processus en cours d’exécution. Les concepts de temps réel et d’embarqué sont relativement interchangeable si ce n’est pour le fait qu’un systèmes embarqué est inclus dans le système qu’il contrôle.

Page 41: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 40

L’informatique temps réel impliquera l’utilisation d’un ordinateur en relation avec un ou plusieurs processus externes. Le but de cette mise en relation sera d’obtenir des informations sur le ou les processus (suivre leur fonctionnement au travers de relevés des variables importantes) et peut-être d’intervenir sur son fonctionnement (en modifiant son comportement en fonction des informations collectées). Le traitement temps réel est le traitement de données qui met en jeu la collecte de données produites à l’extérieur du système et qui ne peuvent pas être reproduites au gré des besoins en respectant des contraintes temps réel, ou le traitement de données qui peut répondre en exerçant un contrôle effectif qui produit un résultat physique. 2) Limite des systèmes classiques pour temps réel

Les politiques d’ordonnancement des activités mises en oeuvre dans les systèmes classiques visent à partager équitablement le temps d’exécution ; elles sont inadaptées à la prise en compte de certaines contraintes temporelles ; Les mécanismes d’accès aux ressources partagées et de synchronisation doivent être adaptés, afin d’éliminer les incertitudes temporelles ; La gestion des entrées/sorties engendrent des temps morts dans le système ; La gestion des interruptions n’est pas spécialement optimisée ; Les mécanismes de gestion de mémoire virtuelle, l’utilisation de caches mémoire engendrent des fluctuations dans le temps d’exécution des activités d’un système ; La gestion des temporisateurs qui servent à la manipulation du temps n’offre pas une résolution assez fine. Gestion de processus par programme autonome La mise en œuvre d’une application de gestion de processus physique sur ordinateur, peut s’envisager par l’exécution d’un programme autonome, assurant toute les fonctions requises par l’évolution du processus à commander ou à surveiller.

Cependant si cette méthode est applicable dans le cas d’un processus simple, présentant peu de variable à mesurer et d’actions à élaborer, il n’en est pas de même dans le cas d’un processus complexe. Par ailleurs, la nécessité d’assurer des fonctions annexes (la gestion des périphériques (disques, pupitres opérateurs, la communication avec l’opérateur (alarme, modification et surveillance de consigne …) font que même dans le cas d’une application simple, la tâche de programmation exigée pour rendre le programme autonome est lourde, l’introduction d’un moniteur temps réel permet de limiter l’effort d’analyse et de programmation à la seule conduite du processus.

CAPTEURS

Système autonome

PARTIE COMMANDE

Information PROCÉDÉ

ACTIONNEURS Commande

Page 42: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 41

Le moniteur temps réel est un programme qui permet la communication entre un utilisateur et le système matériel. Généralement écrit en assembleur, il est stocké dans une EPROM. Un système d’exploitation est un moniteur évolué. Il faut associé un moniteur (logiciel système) à un calculateur pour le rendre fonctionnel. Les tâches gérées par un calculateur sont de deux types : les tâches background (tâches utilisateurs) et les tâches foreground (tâches système – logiciel système). L’objectif principal du moniteur temps réel est d’optimiser le temps d’occupation du processeur. Fonctions essentielles d’un moniteur temps réel :

� Ordonnancement des différentes tâches à exécuter (travaux temps réels et travaux de fond) ;

� Gestion de la mémoire ; � Gestion des entrées / sorties sur un périphérique non industriel ; � Gestion du dialogue avec l’opérateur ; � Gestion des interruptions ;

II Multitâche A Principes de bases La conception multitâche fait coexister en mémoire plusieurs programmes, les programmes s’exécutent sous le control du moniteur et se partagent les différentes ressources du systèmes (dispositif hardware : unité centrale, périphériques… ; éléments software : sous programme, tableau de valeurs, fichiers…).

1 Notion de Processus a) Définition

Un programme : C’est une entité composée d’une ou de plusieurs séquence d’instructions essentiellement statiques.

Un processus : C’est une action, ou une séquence d’opérations qui se déroulent pour réaliser une tâche. Un programme en exécution est un processus. Un processus est donc l'activité résultant de l'exécution d'un programme séquentiel, avec ses données, par un processeur. Un processus comporte différentes zones, en général 3 :

• Une zone programme : on y accède avec un pointeur de programme. • Une zone de données : on y accède avec un pointeur de donnée. • Une zone de piles : on y accède avec un pointeur de piles.

La zone programme est accessible uniquement en lecture, alors que les zones de données et de piles sont accessibles en lecture et écriture.

Les segments d’un processus. Zone programme

Zone de piles

Zone de données

Accès lecture seul Accès par pointeur de programme

Accès lecture et écriture Accès par pointeur de piles

Accès lecture et écriture Accès par pointeur de données

Page 43: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 42

Le code correspond aux instructions, en langage d’assemblage, du programme à exécuter. La zone de données contient les variables globales ou statiques du programme ainsi que les allocations dynamiques de mémoire. Enfin, les appels de fonctions, avec leurs paramètres et leurs variables locales, viennent s’empiler sur la pile. Les zones de pile et de données ont des frontières mobiles qui croissent en sens inverse lors de l’exécution du programme. Parfois, on partage la zone de données en données elles-mêmes et en tas. Le tas est alors réservé aux données dynamiques.

b) descripteur de processus A chaque processus est associé un descripteur dans le quel le système mémorise le contexte associer au processus. Le contexte est formé des données nécessaires à la gestion des processus. Une table contient la liste de tous les processus et chaque entrée conserve leur contexte. Le nombre des emplacements dans la table des processus est limité pour chaque système et pour chaque utilisateur. Le processus reçoit un nom ou un numéro, ce qui lui attribut une fiche d’état (on y a des informations sur l’état du processus). Dans cette fiche, on trouve :

- Une priorité : permettant de qualifier le degrés d’urgence du processus ; - Un identificateur : permettant d’identifier l’état du processus (actif, bloqué, en

attente …). Tous les descripteurs sont reliés entre eux selon le principe du double chaînage (liés au précédant et au suivant).

c) Etats élémentaires d’un processus Un processus peut être dans l’un des trois états fondamentaux suivants :

- Elu : en cours d’exécution ; - Prêt (ou Eligible) : en possession de toute

les ressources nécessaire à son fonctionnement sauf du processeur (état d’attente) ;

- Bloqué : en attente d’une ressource indispensable à son fonctionnement (son exécution) futur.

� 1) Réquisition du processeur au profit d’un autre processus ; � 2) Allocation du processeur ; � 3) Réveil du processus � 4) Attente d’une ressource.

Le processus élu est choisi parmi les processus prêts par l’Ordonnanceur.

ÉLU PRET

BLOQUÉ

1

2

3 4

Page 44: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 43

Les problèmes d’ordonnancement font intervenir deux types de files. • File de descripteurs des processus : permet de répertorier les processus ; • File de dispatching : destinée au dispatcher pour l’allocation du processus.

Les fiches d’état ou descripteurs peuvent aussi être, organisés suivant une liste circulaire chaînée dans l’ordre des priorités décroissantes. Le dispatching suit la chaîne et exécute le programme tant qu’il n’est pas bloqué

2 Quasi – parallélisme et réelle simultanéité Un système d’exploitation doit en général traiter plusieurs tâches en même temps. Comme il n’a, la plupart du temps, 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, l’ordinateur donne l’illusion d’effectuer un traitement simultané.

Le multi-tâche

Un système comportant un processeur et qui est capable d’exécuter plusieurs tâches simultanément et dit multitâche – monoprocesseur.

Fiche d’état 1 Fiche d’état i Fiche d’état 0

Priorité max

Bloqué

Prêt

Priorité max

Bloqué

Prêt Priorité moy

Elu

Prêt Priorité min

File de descripteur

File de dispatching

Descripteur Processus 1 Descripteur

Processus 2

Descripteur Processus 3

Descripteur Processus 4

Descripteur Processus i

Descripteur Processus 0

Page 45: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 44

A l’échelle du processeur, les tâches seront exécutées alternativement, la simultanéité est donc virtuelle on par dans ce cas de quasi – simultanéité. Un système comportant N processeurs capable d’exécuter plusieurs tâches (N + X tâches) est dit multitâche – multiprocesseur. Dans ce cas on parle de réelle simultanéité (car les tâches sont

réalisées en parallèle). Exemple : B Communication synchronisation Dans un système multitâche, la coopération entre processus se fait par partage de variables ou de ressources ou par envoi de messages. Ils existent aussi des problèmes tel que l’accès concurrents, l’Interblocage et la synchronisation des processus que ce système doit savoir gérer En environnement multitâche, les processus coopèrent en vu de la réalisation d’une activité commune. On distingue 2 types de coopération :

- Coopération temporelle : fait intervenir des notion d’activation et de blocage des processus ;

- Coopération spatiale : se rapporte à l’échange d’information entre processus. Ces deux types de coopération caractérisent la synchronisation et la communication entre processus. Coopération spatiale On peut distinguer 3 types de relation entre processus :

� Processus indépendants : Chacun travail avec leurs propres ressources. Les processus n’ont en commun que la ressource que constitue le système informatique.

Processus 1

Ressource 1

Processus 2

Ressource 2

P1

P2

P1

P2

P1

P2

P1

P2

Cas 1 : (1 processeur) P2 ne démarre pas avant la fin de l’exécution de P1 � Exécution séquentielle

Cas 2 : (1 processeur) P2 démarre avant que ne s’achève l’exécution de P1 � Quasi – parallélisme

Cas 3 : (Plusieurs processeurs) Recouvrement des phases. � Réelle parallélisme ou réelle simultanéité Dans ce cas nécessité obligatoire d’avoir 2 processeurs.

Page 46: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 45

� Processus ayant accès à des ressources communes : Exemple : gestion de stock ; P1 agit sur la ressource P2 consulte la ressource sans incident sur le traitement.

� Processus liés Les processus ont besoin d’informations élaborées par l’autre processus pour poursuivre leurs exécutions ou leurs évolutions Exemple : réservation de place d’avion.

La coopération temporelle

La coopération temporelle dans divers processus peut être assurée de plusieurs façons : Deux principaux :

- Synchronisation par sémaphore ; - Synchronisation par événement ;

1) les sémaphores Le concept de sémaphore permet une solution élégante à la plupart des problèmes d’exclusion. Ce concept nécessite la mise en oeuvre d’une variable, le sémaphore, et de deux opérations atomiques associées P et V. Un sémaphore joue le rôle d’un distributeur de ticket, que les processus utilisent à l’aide de deux opérations :

• Opération P (PRENDRE) ; correspond à une demande de ticket. • Opération V (VENDRE) ; correspond à une libération de ticket.

A un sémaphore, on associe : - Un compteur, noté e(s), qui peut prendre des valeurs entières, négatives, nulle ou positives ; - Une file d’attente de type FIFO, notée F(s), où sont stockés les processus en attente de ticket ;

Processus 1

Ressource commune

Processus 2

Processus 1

Ressource commune

Processus 2

Page 47: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 46

Tout processus qui prend possession de la ressource doit exécuter deux procédures : � Une procédure P(s), au début ; � Une procédure V(s), lorsqu’il libère la ressource ;

Procédure P(s) Début e(s) = e(s)-1 si e(s) ≥ 0 alors le processus prend la ressource ; sinon le processus est mis en attente dans F(s) FIN.

Procédure V(s) Début e(s)=e(s)+1 si e(s)≤0 alors sortir un processus de la file d’attente F(s) ; sinon FIN.

Ces deux procédures sont appelées primitives . Une privative est une séquence programmée grâce à laquelle l’utilisateur peut demander au moniteur, l’exécution d’une fonction déterminée. Lors de l’utilisation d’une ressource partageable réentrante, la valeur initiale du sémaphore est en générale initialisée avec le nombre maximum d’accès possible. Gestion de l’exclusion mutuelle par sémaphore L’exclusion mutuelle de deux processus vis à vis d’une ressource, non réentrante, suppose une phase pendant laquelle, un seul des deux processus est en possession de la ressource. Dans ce cas on initialise le sémaphore à 1 [ e(s)=1]. Exemple : 2 processus en phase d’impression sont en exclusion mutuelle vis à vis de l’imprimante. Dans ce cas on initialise le sémaphore à 1 ( e(s)=1). Lors du fonctionnement, si le sémaphore devient négatif, sa valeur absolue exprime le nombre de processus en attente de la libération de la ressource.

Etape 1 : P1 appelle R � e(s) =e(s) -1=1-1=0 � P1 prend possession de la ressource R Etape 2 : P3 appelle R � e(s) =e(s) -1=0-1=-1

Processus P1 Actif

P(s)

Processus P2 Actif

Processus P3 Actif

Ressource Variable Sémaphore

1 -> 0

-1

-2

-1

0

1

P(s)

En attente P(s)

En attente

V(s)

V(s)

V(s)

Occupée par P1

Occupée par P1

Occupée par P1

Occupée par P3

Occupée par P2

Ressource libre

Ressource libre

Page 48: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 47

� P3 mis en attente dans F(s) |P3|______| Etape 3 : P2 appelle R � e(s) =e(s) -1=-1-1=-2 � P2 mis en attente dans F(s) |P2|P3|_____| Etape 4 : P1 libère R � e(s) =e(s) +1=-2+1=-1 � Sortie de P3 de F(s) |P2|______| Et R lui est attribuée Etape 5 : P3 libère R � e(s) =e(s) +1=-1+1=0 � Sortie de P2 de F(s) |_______| Et R lui est attribuée Etape 6 : P2 libère R � e(s) =e(s)+1=0+1=1 Rien n’en attente dans F (s) |_______| R libre 2) les événements L’évènement est représenté par une variable booléenne. Ev = 0 : évènement est dans l’état « NON ARRIVE ». Ev = 1 : évènement est dans l’état « ARRIVE ». On attache à l’événement une file F On définit 3 primitives :

La primitive RESET Début Mise à « zéro » de Ev Vider F FIN.

La primitive SET Début Mise à « 1 » de Ev Scruter F Si F non vide Alors débloquer les processus en attente Sinon FIN.

La primitive WAIT Début Mise à « zéro » de Ev Si un processus en cours, mettre le processus en cours dans F Sinon FIN.

C Ordonnancement des processus

L'ordonnancement est l'opération consistant à choisir le prochain processus à exécuter et le moment où lancer son exécution. Un bon algorithme d'ordonnancement doit assurer :

• L'équitabilité en temps d'utilisation du processeur, • L'efficacité du système : 100 pour cent de puissance utilisée • Un temps de réponse minimisé • Maximiser le rendement

On voit que certains objectifs sont contradictoires. En favorisant un point, on en défavorisera un autre.

1/ Stratégie d’ordonnancement La majorité des stratégies d’ordonnancement sont à base de file d’attente. Deux techniques de base sont adoptées : L’ordonnancement peut être :

Page 49: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 48

– Non préemptif : • un processus s ’exécute jusqu ’à ce qu ’il se termine ou se bloque en attente d’un événement extérieur

– Préemptif : • par réquisition, un processus peut être bloqué à tout moment au profit d’un autre.

a) Technique du « Premier arrivé – premier servi » (Algorithme du FIFO) C’est un algorithme élémentaire qui ne suppose aucune notion de priorité entre les processus, ni aucune échéance temporelle pour un processus donné.

b) Technique du « Plus court temps de traitement »

On choisit dans la file la tâche la plus courte (cela suppose connu les temps d’exécution des tâches). La file sera triée en fonction des temps d’exécution.

c) Technique du « Temps partagé »

(Algorithme de TOURNIQUET) Dans les deux premier cas il y’a risque qu’une tâche attende longtemps avant d’être activée. Le but de cette troisième technique est d’allouer à chaque tâche un quantum de temps τ.

- Si la tâche se termine ou se bloque avant τ, on passe à la tâche suivante ; - Sinon on remet la tâche en cours dans une d’attente F.

Exemple : Soit 4 tâches T1, T2, T3 et T4 T1 dure q, T2 dure 2q, T3 dure 3q et T4 dure 4q. On alloue à chaque tâche q secondes pour l’occupation de l’unité centrale.

T1 T2 T3 T4 T2 T3 T4 T3 T4 T4

q 2q 3q 4q 5q 6q 7q 8q 9q 10q Dans ce cas l’algorithme est préemptif.

d) Files d’attente multiples (Algorithme à plusieurs niveaux) Cette méthode utilise N files. Un processus qui entre dans le système est mis dans la 1ère file, après avoir reçu un quantum de temps, il est mis dans la deuxième file est ainsi de suite. Cette méthode permet de favoriser les petits travaux. En générale on utilise 3 files, F1, F2 et F3 avec des quantum respectifs q, 2q et 3q.

Arrivée

---------------------------- Sélection

+ -

Pi

Durée d’exécution longue

Durée d’exécution courte

Arrivée Pn P2 --------------- P1 Sélection

Page 50: Cours Systemes Temps Reels

SYSTEMES TEMPS REEL – CH 06 – Systèmes d’exploitation temps réel

[email protected] Informatique Industrielle © 10/2007 49

Par contre la file F1 est scrutée chaque fois, la file F2 est scrutée un fois sur deux et la file 3 est scrutée une fois sur trois. Exemple : Le premier passage scrute F1; Le deuxième passage scrute F1, F2 ; Le troisième passage scrute F1, F2, F3, et le cycle reprend.

2/ contraintes temps réel La prise en compte de type de contrainte conduit à associer une priorité au processus. La file d’attente des processus éligibles est triée par ordre de priorité croissante ou décroissante. Et le processus de plus forte priorité est élu. Ainsi un processus pourra garder le processeur tant qu’aucun processeur de priorité supérieur ne le réclame.

------------- Pj ------------- p1 pj pn Arrivée

processus Pj de priorité pj

Deux méthodes sont utilisées dans ce contexte :

� La première est basée sur la modification dynamique des priorité (on introduit donc la notion d’âge). L’âge est une variable qui est incrémentée à chaque commutation de tâche et dont la valeur initiale est la priorité initiale associée au processus lors de son lancement. Le principe de cette méthode consiste à :

o Donner un quantum de temps q à chaque processus. Une fois la tranche de temps allouée à un processus Px terminer, l’Ordonnanceur va incrémenter l’âge de toutes les tâches (processus) de la file et Px va être réinsérer avec sa priorité initiale.

o Le processeur est alloué à la tâche d’âge maximum. Ce mode de fonctionnement assure même pour une tâche de très faible priorité l’accès au processeur. Exemple : Soit 3 tâches T1, T2 et T3 de priorité respective 6, 9 et 10.

- Etat initiale de la file des tâches : | T1/6 | T2/9 | T3/10 | - L’exécution va se dérouler comme suit :

Initial - T1(6) T2(9) t3(10) � exécution de T3 1ère commutation (toutes les tâches non exécuté vont augmenté) T1 et T2 non exécutées et T3 exécuté � T1(7), T2(10) T3(10) � exécution de T3 2ème commutation T1(8), T2(11) T3(10) � T1(7), T3(10) T2(11) � exécution de T2 3ème commutation T1(9), T2(9) T3(11) � de T3 (fin de T3 3q) 4ème commutation T1(10), T2(10) � exécution de T2 5ème commutation T2(9) T1(11) � exécution de T1 etc.

� la deuxième méthode est plus simple, c’est toujours la tâche de plus forte (haute) priorité qui est exécuté par conséquent une tâche de priorité élevée effectuant un long travail, gardera le processeur aussi longtemps qu’elle le désir, bloquant ainsi toutes les tâches de priorité inférieure.