You are on page 1of 50

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

EMIG

SYSTEMES

TEMPS REEL

‫ ۝‬Alkassoum Nabil # octobre 2007#


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

Chapitre 01 – INTRODUCTION AUX CALCULATEURS NUMERIQUE


(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

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 1


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

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)

UC BUS MEM

3. Schéma d’un ordinateur

CPU RAM ACIA Contrôleur Contrôleur


RAM
vidéo Disque Disquette

BUS

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

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 2


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

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 :
n
anan-1…a1a0 = ∑ aibi .
i =0
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-1bn-1+ … +a0b0+a-1b-1+:::+a-pb-p

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 3


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

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= 2x2+1 → a3 = 1
2= 1x2+0 → a4 = 0
1= 0x2+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).

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 4


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

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
n −1
x = ∑ α i 2 i avec αi∈{0,1}
i =0
et soit
n −1
y = ∑ (1 − α i )2 i + 1
i =0

On constate facilement que x + y = 2 n-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

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 5


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

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 2 = -1,01001 x 25
3

- 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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 6


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

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 Taille de Taille de Emin Emax


bits M E
32 bits en 23 8 -126 +127
simple
précision
64 en Double 52 11 -1022 +1023
précision

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
0100 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).

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 7


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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 8


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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 9


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

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) 210 = 1024


1 M (Méga) 220 = 1048 576
1 G (Giga) 230 = 1 073 741 824
1 T (Téra) 240 = 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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 10


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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 11


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

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

BUS D’ADRESSES

Mémoire
Processeur Principale
BUS DE DONNEES

R/W
Signal Lecture/Ecriture

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 12


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

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 MÉMOIRE
PRINCIPALE

BUS
Données
E/S E/S DMAC

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 13


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

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 : Il a aussi deux modes de fonctionnement :
- Mémoire principale / mémoire - Mode esclave ;
secondaire ; - Mode maître.
- Mémoire principale / E/S.

2 Traitement des entrées sorties


Exemple : contrôle de la position d’une antenne radar :

Interf. CPU

I/O

5V

INT

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 :

Oui Traitement
FC=1 E/S

Non

• 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 ;

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 14


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

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

INT
CPU

E/S E/S E/S

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.

Vecteur
générateur
CPU
INT
PIC

E/S E/S E/S

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.
Interface
CPU E/S
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.
1

2
alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 15
SYSTEMES TEMPS REEL – CH 02 – Electronique des systèmes Temps Réels

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.
PA0 DB7 VP
D0 …D7
PIA
Adresses 6821
ou
8235 CAN
BUS

PA7 DB7

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


Entrées

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).
OFF
BUS

ON

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 16


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

z z
1 1

0 0
t t
Interrupteur idéal Interrupteur réel

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)
0V
5V

0V
0V

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.
12 V
Optocoupleur

0V
500 – 3000V

Un optocoupleur est un dispositif fait d’un transistor et d’une diode électroluminescente.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 17


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

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

Grandeur
physique
(analogique Transducteur Circuit de CAN
non électrique conditionnement
B
Grandeur U
physique Contrôleur Circuit de CNA S
(analogique
non
analogique conditionnement
électrique

Schéma de la mesure et du contrôle d’une grandeur analogique physique

Exemple 1 : thermomètre à microprocesseur

Thermocouple Amplification CAN Port 0


Chaleur Filtrage
B
U
S
Affichage Port 1

Exemple 2 : contrôleur de température

Thermocouple Amplification CAN Port 0


Chaleur Filtrage
B
U
S
Port 1

+ -
Système en boucle fermé

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 18


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

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

B
U
S
Verrou
Ressort

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 19


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

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 :
MEMOIRE UNITE ORGANE
CENTRALE CENTRALE PERIPHERIQUE

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.
MC VOIE
ORGANE
D’ECHANGE
PERIPHERIQUE

Ordre
UC
Compte rendu
Contrôle par l’UC
alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 20
SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

+ 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

ORGANE
MC VE
PERIPHERIQUE

Ordre
Compte rendu
UC Contrôle par l’UC
ORGANE
PERIPHERIQUE

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é.
OUI
Organe
périphérique Cette technique mène, pour les périphéries lentes (exemple
occupé 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.

Transfert

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 21


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

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

Pgrm de niveau i

Prise en compte de
l’interruption de
niveau j >i
Inhibition provisoire Autorisation des
de toutes les interruptions de
interruptions niveau > j

Diagnostique
Sauvegarde de l’état
du programme i
Acquittement

Traitement
Libération niveau j,
autorisation
d’interruptions Restauration de l’état
niveau > i du programme i

à 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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 22


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

Demande
interruption niveau i

Interruptions autorisées

Masque i

Niveau en cours < i

Niveau en attente < i

Prgm interruption

Déroulement

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 23


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

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 à
BLOC MEMOIRE chaque bloc est
nécessairement réservée à
l’unité de commande, les
Tampon Adresse Fonction autres sont connectées à
des unités d’échange. Les
opérations de transfert
Demande MULTIPLEXEUR sont réalisées par ces
de voie unités d’échange, chacune
d’elle pouvant être
connectée à une ou
plusieurs unités
T1 T 2 T 3 A1 A2 A3 F1 F2 F3 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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 24


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

UNITE MEMOIRE
Voie
n°0 n°1 n°2 n°3
UNITE
CENTRALE Initialisation
Fin d’échange
Canal multiplexé Canal simple Canal simple

Unité affichage Unité de contrôle Unité de contrôle 1


Unité de contrôle
Bande
Lecteur ruban magnétique
Disque magnétique
Unité de contrôle
Unité de contrôle 2
Imprimante
Unité de contrôle

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é

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

τM

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


Bloc Bloc Bloc Bloc
B1 B2 B3 B4

UC

VE1

VE2
alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 25
SYSTEMES TEMPS REEL – CH 03 – Caractéristiques des ordinateurs temps réels

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 On aura alors une simultanéité totale car aucune demande
Si VE2 demande l’accès à B2 ne va gêner l’autre, étant donner que les blocs mémoires
Si UC demande l’accès à B2 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
0000 adresse. Les adresses inférieures à la barre de verrouillage
Zone Protégée
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

0000 On protége la zone définie par le contenu de deux registres de


Zone 1 Protégée
protection (ou deux barres de verrouillage) et les adresses
extérieures aux deux barres sont protégées.

Zone 2 Protégée

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 26


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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 27


SYSTEMES TEMPS REEL – CH 04 – Installation des Ordinateurs en Milieu 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.

Capteurs
Processus Ordinateur

Actions

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

CPU MÉMOIRE INTERFACE D’E/S

BUS ORDINATEUR

INTERFACE ORDINATEUR

COUPLEURS Unité
d’interface
BORNIERS

SYSTÈME INDUSTRIEL

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 28


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

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é.

CPU MÉMOIRE INTERFACE D’E/S

BUS ORDINATEUR

CONTRÔLEUR DE COMMUNICATION

Système
Ordinateur

CONTRÔLEUR DE COMMUNICATION
COUPLEURS
Satellite
BORNIERS d'interface

SYSTÈME INDUSTRIEL

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

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 29


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

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


Capteur Ampli
Pour les tensions à la sortie du capteur de l’ordre du mV, on
utilise un montage dit symétrique :

A
Amplificateur
Capteur B Ampli différentiel ou
Vd
d’instrumentation
VA VB

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
tension en mode commun
décibel est donné par la formule suivante : RRCM [dB ] = 20 log
tension résiduelle

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 30


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

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.

10 mV Ampli

1
Vd = 10mV = 10 − 4 V
100
10
RRCM = 20 log − 4 = 100dB
10

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 : R 2

R2 R5 = R2 (R3 + R4)
R 1
Is = ( - R2 / R1 R3) Ve -
Is

Ve
+
R3
R4

R5

R
3 Conversion courant – tension
Is
-
Vs = - R Is
+
Vs
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

V2 V3
- V1
R1 D2 R Vs
A
Contact D1 C

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 31


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

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
Vc

R
Calculateur
Milieu
industriel Vs

5 Sorties binaires

48V
R
Darlington Milieu
Calculateur industriel

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 32


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

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
V perturbation

Up Procédé Y
Commande Sortie
processus.
Exemple 1 : Un réchauffeur
Entrée de vapeur
d’eau Entrée
Fluide

Sortie
Fluide
Sortie de vapeur
d’eau

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).

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 33


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

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.
Consigne Contrôleur Elts de contrôles Procédé

Mesure
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 :


Perturbations
Zi(t)

Signal de Système de Grandeur de u(t) Système Grandeurs


mise en commande commande commandé commandées
marche

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 :
Zi(t)
Compensation Zi Capteur de
mesure
Z1(t) Zn(t)

Organe Organe de u(t) Système y(t)


d’exécution réglage commandé

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 34


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

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é.
Zi(t)

Z1(t) Zn(t)

r(t) ε Organe de
u(t)
Système y(t)
correction commandé

Organe de mesure

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.
Zi(t)
Compensation Organe de
Zi mesure
Z1(t) Zn(t)

y(t)
Organe Organe de Système
d’exécution réglage final commandé

Capteur

Transmetteur

+ _
Organe de
correction

+
Compensation par
anticipation
Organe de consigne
alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 35
SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

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é.
A
C C
T A
I P
O T
N PROCEDE E
N U
E R
U
R
I
N
C F
O O
M R
M
Interface de Interface M
A puissance d’adaptation A
N T
D I
E PARTIE O
N
COMMANDE

Interface
s
Consigne à Visualisation d’une étape
atteindre du processus

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).

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 36


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

♦ 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.

Objectifs à
atteindre

Stratégie de Détermination des


commande objectifs réellement
atteints
ACTIONNEUR

Procédé
PROCEDE
CAPTEUR

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.

F Cartes
o Unités contrôles
n
d
Ports séries
d
e
Sorties analogiques Interfaces Processus
p
a
Entrées analogiques Capteurs analogiques
n
i
e
r Entrées numériques Capteurs numériques

Alimentation

Ordinateur industriel
alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 37
SYSTEMES TEMPS REEL – CH 05 – Notion de Contrôle de Procédé

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
Te
τi interactive ave l’utilisateur.
ti ti+1
Exemple : acquisition de la nouvelle valeur de consigne.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 38


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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 39


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

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.

CAPTEURS
Information PARTIE
PROCÉDÉ COMMANDE
Commande
ACTIONNEURS

Système autonome

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 40


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

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. Zone de Accès lecture et écriture
piles Accès par pointeur de piles

Zone de Accès lecture et écriture


données Accès par pointeur de données

Les segments d’un processus. Zone Accès lecture seul


programme Accès par pointeur de programme

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 41


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

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 ; 1
- Prêt (ou Eligible) : en possession de toute
les ressources nécessaire à son
fonctionnement sauf du processeur (état ÉLU PRET
d’attente) ; 2
- Bloqué : en attente d’une ressource 4 3
indispensable à son fonctionnement (son BLOQUÉ
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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 42


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

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.

File de
Bloqué Prêt Bloqué descripteur
Priorité
Descripteur max Descripteur
Descripteur File de
Processus 1 Processus 3
Processus 2 dispatching

Prêt Elu Prêt


Priorité Priorité
moy min
Descripteur Descripteur
Descripteur Processus i Processus 0
Processus 4

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é

Priorité max

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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 43


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

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
P1 P1 P1 P1
P2 P2 P2 P2

Cas 1 : Cas 2 : Cas 3 :


(1 processeur) (1 processeur) (Plusieurs processeurs)
P2 ne démarre pas avant P2 démarre avant que ne Recouvrement des phases.
la fin de l’exécution de P1 s’achève l’exécution de  Réelle parallélisme ou
 Exécution séquentielle P1 réelle simultanéité
 Quasi – parallélisme Dans ce cas nécessité
obligatoire d’avoir 2
processeurs.

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 1 Processus 2 processus n’ont en commun que la ressource que
constitue le système informatique.

Ressource 1 Ressource 2

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 44


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

 Processus ayant accès à des ressources communes :

Processus 1 Processus 2 Exemple : gestion de stock ;


P1 agit sur la ressource
P2 consulte la ressource sans incident sur le
traitement.
Ressource
commune

 Processus liés

Processus 1 Processus 2 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.
Ressource
commune

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 ;

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 45


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

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) Procédure V(s)
Début Début
e(s) = e(s)-1 e(s)=e(s)+1
si e(s) ≥ 0 si e(s)≤0
alors le processus prend la alors sortir un processus de la file
ressource ; d’attente F(s) ;
sinon le processus est mis en attente sinon
dans F(s) FIN.
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.
Processus P1 Processus P2 Processus P3 Ressource Variable
Actif Actif Actif Sémaphore
P(s) Ressource libre
1 -> 0
P(s) Occupée par P1
-1
P(s) En attente Occupée par P1
-2
En attente
Occupée par P1
V(s)
-1
V(s) Occupée par P3
0
V(s) Occupée par P2
1
Ressource libre

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

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 46


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

 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 La primitive SET La primitive WAIT


Début Début Début
Mise à « zéro » de Ev Mise à « 1 » de Ev Mise à « zéro » de Ev
Vider F Scruter F Si un processus en
FIN. Si F non vide cours, mettre le processus en
Alors cours dans F
débloquer les processus en Sinon
attente FIN.
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 :

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 47


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

– 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é.

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

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.

Durée d’exécution Durée d’exécution


longue courte
Pi
---------------------------- Sélection

+ -
Arrivée

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 48


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

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.

alkassoum_nabil@yahoo.fr Informatique Industrielle © 10/2007 49

You might also like