Académique Documents
Professionnel Documents
Culture Documents
ARCHITECTURE
DES MACHINES
ET DES SYSTMES
INFORMATIQUES
3e dition
Alain Cazes
Jolle Delacroix
ARCHITECTURE
DES MACHINES
ET DES SYSTMES
INFORMATIQUES
Linux
Programmation systme et rseau
2e dition
Jolle Delacroix
352 pages
Dunod, 2007
ARCHITECTURE
DES MACHINES
ET DES SYSTMES
INFORMATIQUES
Cours et exercices corrigs
Alain Cazes
Jolle Delacroix
3e dition
1.1
Introduction
1.2
3
3
4
8
10
1.3
13
1.4
Un exemple
1.4.1 Le problme
1.4.2 Lordinateur
1.4.3 Le langage machine
15
15
15
15
1.5
16
1.6
Conclusion
17
23
2.1
23
23
25
Du problme au programme
2.1.1 Rappel du rle dun ordinateur
2.1.2 Problme, algorithme, programme et instructions
VI
2.2
26
27
28
29
2.3
30
2.4
Un exemple
31
2.5
Conclusion
33
35
3.1
La compilation
3.1.1 Grammaire et structure dun langage de haut niveau
3.1.2 Analyse lexicale
3.1.3 Analyse syntaxique
3.1.4 Analyse smantique
3.1.5 Gnration du code final
36
36
38
40
42
44
3.2
46
46
47
3.3
Le chargement
3.3.1 Rle du chargeur
3.3.2 Chargement et dition des liens dynamique
59
59
61
3.4
Lutilitaire Make
3.4.1 Format du fichier Makefile
3.4.2 Fonctionnement de lutilitaire Make
62
62
63
3.5
Conclusion
64
65
4.1
65
66
69
74
77
4.2
79
80
81
82
4.3
84
85
87
4.4
Conclusion
89
VII
90
5.1
90
90
91
99
101
5.2
Le futur
106
108
Production de programmes
6.1
Compilation
6.2
dition des liens
6.3
Utilitaire Make
6.4
Compilation
108
108
110
111
111
112
112
112
113
113
Langage machine
6.9
Manipulation des modes dadressage
6.10 Programme assembleur
6.11 Manipulation de la pile
6.12 Programme assembleur
113
117
117
118
119
SOLUTIONS
120
129
7.1
Introduction
129
7.2
Aspects externes
7.2.1 Le microprocesseur
7.2.2 Les bus
132
132
134
7.3
Aspects internes
7.3.1 Excution dune instruction machine
7.3.2 Microcommandes et micro-instructions
136
137
145
7.4
154
154
158
VIII
7.5
162
163
165
7.6
Conclusion
166
168
8.1
Gnralits
168
8.2
Mmoires de travail
8.2.1 Les mmoires vives
8.2.2 Les mmoires mortes
8.2.3 Les registres
171
171
180
180
8.3
181
182
182
8.4
184
184
195
8.5
198
199
200
200
201
202
8.6
Conclusion
203
205
9.1
Introduction
205
9.2
Les bus
9.2.1
9.2.2
9.2.3
9.2.4
210
211
212
216
217
9.3
218
219
232
9.4
236
237
239
241
9.5
Conclusion
244
IX
245
La fonction dexcution
245
10.1
10.2
10.3
245
245
246
Rvision
Microcommandes
CISC/RISC
La fonction de mmorisation
247
10.4
10.5
10.6
10.7
247
247
247
248
La fonction de communication
248
10.8
10.9
10.10
10.11
248
248
249
249
Questions de cours
Entres-sorties programmes et entres-sorties par interruption
Performances des oprations dentres-sorties
Gestion des interruptions
Synthse
250
250
SOLUTIONS
253
265
265
267
267
268
269
269
271
271
272
274
275
276
277
279
282
285
285
286
11.6 Conclusion
286
288
288
12.1.1
12.1.2
12.1.3
12.1.4
12.1.5
Dfinitions
tats dun processus
Bloc de contrle du processus
Oprations sur les processus
Un exemple de processus : les processus Unix
Lexclusion mutuelle
Le schma de lallocation de ressources
Le schma lecteurs-rdacteurs
Le schma producteur-consommateur
288
289
290
291
292
295
295
297
297
302
304
305
309
310
312
12.4 Conclusion
314
315
315
317
317
323
336
336
339
341
344
345
346
347
13.5 Conclusion
347
XI
348
348
348
349
351
354
354
355
366
366
372
14.4 Protection
14.4.1 Protection contre les accs inappropris
14.4.2 Protection contre les dgts physiques
379
379
380
14.5 Conclusion
381
383
15.1 Dfinition
383
385
385
393
396
399
400
402
407
409
410
410
414
Ordonnancement de processus
16.1 Algorithmes dordonnancement
16.2 Ordonnancement par priorit premptif et non premptif
16.3 Chronogramme dexcutions
16.4 Ordonnancement sous Unix
16.5 Ordonnancement sous Linux
414
414
414
415
415
416
Synchronisation de processus
16.6 Producteur(s)-Consommateurs(s)
417
417
XII
16.7
16.8
417
418
419
419
419
420
420
421
422
422
422
422
423
423
423
424
424
SOLUTIONS
427
INDEX
445
Chapitre 1
Structure gnrale
et fonctionnement
dun ordinateur
1
Dans cette partie introductive nous rappelons quelques lments fondamentaux concernant la programmation et lalgorithmique afin de prsenter le vocabulaire utilis. Il
ne sagit en aucune manire de se substituer un cours dalgorithmique mais uniquement de replacer du vocabulaire du point de vue de la structure gnrale dun ordinateur, lobjectif tant de mettre en vidence les diffrentes phases qui interviennent
dans la rsolution dun problme avec un ordinateur. Aprs cette partie introductive
nous prsentons les principaux modules constituant larchitecture dun ordinateur
type. Nous faisons un tour dhorizon des fonctionnalits de chacun de ces modules
et de leurs relations fonctionnelles. Il sagit ici uniquement de prsenter de manire
globale le fonctionnement de lordinateur.
1.1
INTRODUCTION
Trouver une solution ce problme repose sur lexistence dun processeur sachant
excuter une instruction (confectionner). En gnral un adulte saura excuter linstruction confectionner, cest--dire connatra le sens du mot, et sera capable de faire
toutes les actions ncessaires permettant de rsoudre le problme. On dira alors que
ladulte est un bon processeur au sens o il saura excuter linstruction confectionner portant sur la donne ufs. Par contre un enfant pourra ne pas connatre le
mot confectionner : il ne saura pas faire les oprations ncessaires et ne pourra donc
pas rsoudre le problme pos (faire une omelette). Lenfant connat dautres instructions, sait excuter dautres actions que confectionner, et pour quil puisse rsoudre
le problme il faudra lexprimer autrement, sur la base des actions, instructions,
quil est capable dexcuter. Pour que lenfant puisse rsoudre le problme on pourra
lexprimer sous la forme dune squence dinstructions appartenant au langage de
lenfant. Par exemple on pourra exprimer le problme, la solution, sous la forme de
la squence des instructions suivantes :
1. casser 6 ufs dans un bol;
2. battre les ufs avec un fouet;
3. saler, poivrer;
4. placer la pole sur le gaz;
5. allumer le gaz;
6. cuisiner les ufs;
7. teindre le gaz.
Dans cet exemple, le processeur enfant sait excuter des instructions (casser, battre,
saler, poivrer, allumer, cuisiner). De plus il connat les objets manipuler (ufs,
gaz, pole). On dit alors que le processeur enfant est un bon processeur pour
excuter lalgorithme reprsent par la squence prcdente puisque lenfant est
capable dexcuter cette squence dinstructions. Cette squence dinstructions excutables par le processeur enfant est une solution du problme pos pour ce processeur.
Un algorithme peut donc se dfinir comme une squence dinstructions excutables par un processeur dtermin. Cette squence dinstructions, cet algorithme, est
une solution au problme pos.
De ce petit exemple nous pouvons tirer quelques conclusions :
un algorithme est une solution un problme pos;
un algorithme est une squence dinstructions excutables par un processeur;
un algorithme est un programme excutable par un processeur dtermin;
un algorithme na de sens que pour un processeur dtermin.
Les instructions expriment les actions que peut excuter un processeur, elles sont
codes partir dun alphabet (dans notre cas lalphabet habituel). Les instructions
manipulent des donnes (ufs, sel, poivre, gaz, pole). Un processeur (ou machine
virtuelle) est une entit capable dexcuter des instructions portant sur des donnes.
Lensemble des instructions que le processeur (la machine virtuelle) peut manipuler,
constitue son langage de programmation. Ainsi le langage de programmation du
processeur dfinit compltement ce processeur. Il y a quivalence totale entre la
1.2
STRUCTURE ET FONCTIONNEMENT
DUN ORDINATEUR
les priphriques avec lesquels dialogue le processeur au travers des units dchange
(ou contrleurs). On distingue en gnral :
les priphriques dentre tels que le clavier ou la souris;
les priphriques de sortie tels que les imprimantes et les crans de visualisation;
les priphriques dentre et de sortie tels que les disques magntiques ou les
modems pour accder aux rseaux de communication.
Horloge
Processeur
central
Bus
Rseau
Mmoire
cache
Mmoire
centrale
Figure 1.1
d' change
Unit dchange
Globalement le processeur permet lexcution dun programme. Chaque processeur dispose dun langage de programmation (les instructions machine) spcifique.
Ainsi rsoudre un problme avec un processeur consiste exprimer ce problme
comme une suite de ses instructions machine. La solution un problme est donc
spcifique de chaque processeur. Le programme machine et les donnes qui sont
manipules par les instructions machine sont placs dans la mmoire centrale.
Examinons prsent plus en dtail la composition et les fonctions de chacun des
modules composant le processeur.
1.2.2 La mmoire centrale
La mmoire centrale assure la fonction de stockage de linformation qui peut tre
manipule par le microprocesseur (processeur central), cest--dire le programme
machine accompagn de ses donnes. En effet, le microprocesseur nest capable
dexcuter une instruction que si elle est place dans la mmoire centrale.
Cette mmoire est constitue de circuits lmentaires nomms bits (binary digit).
Il sagit de circuits lectroniques qui prsentent deux tats stables cods sous la
forme dun 0 ou dun 1. De par sa structure la mmoire centrale permet donc de
coder les informations sur la base dun alphabet binaire et toute information stocke
en mmoire centrale est reprsente sous la forme dune suite de digits binaires. La
figure 1.2 prsente lorganisation gnrale dune mmoire centrale.
Mmoire centrale
Bus de commandes
Bus adresses
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
Adresses mmoire
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Mot mmoire
dadresse 2
0
1
0
1
0
0
0
1
0
1
2
3
4
5
6
7
Bus
donnes
Figure 1.2
1
0
1
0
1
1
1
0
La mmoire centrale.
Codage de linformation
1
Alphabet binaire
2 combinaisons
xx
4 combinaisons
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Bit
xxx
8 combinaisons
0
0
0
0
1
1
1
1
2n
0
1
2
3
4
5
6
7
8
9
10
1
2
4
8
16
32
64
128
256
512
1024
Codage binaire.
La figure 1.4 prsente succinctement les diffrentes informations que lon trouve
dans la mmoire centrale : instructions machines et donnes manipules par les
instructions.
Informations
Donnes
Instructions
Code Opration
Champ oprande
Numriques Non Numriques
0001
0100
Nbentiers
positifs
Nbentiers ngatifs
Nb Fractionnaires
Virgule fixe
Figure 1.4
Signe C1 C2
+
valeur absolue
Virgule flottante
Les instructions et les donnes sont codes sur des mots mmoires : elles peuvent
occuper un ou plusieurs mots mmoires selon la nature de lordinateur. Les instructions machines sont propres chaque microprocesseur mais sont toujours construites
de la mme manire : un code opration qui dfinit lopration excuter, le champ
oprande qui dfinit la ou les donnes sur lesquelles portent lopration :
le code opration est cod sur un nombre de digits binaires qui caractrise un
microprocesseur. Ce nombre de bits dfinit en fait le nombre doprations possibles avec cet ordinateur : un code opration sur 3 bits admet 8 combinaisons
permettant la dfinition de 8 oprations diffrentes (instructions machine) possibles, sur 4 bits 16 instructions possibles etc. La taille du code opration est donc
un facteur dterminant qui caractrise compltement le nombre dinstructions
quest capable dexcuter un processeur;
le champ oprande est une suite de bits qui permet de caractriser ladresse de la ou
des donne(s) que manipule(nt) linstruction machine dfinie par le code opration. Il existe plusieurs types dinstructions machines qui peuvent manipuler une
ou plusieurs donnes selon la puissance du langage machine du microprocesseur utilis. Il existe galement plusieurs manires de dfinir, partir du champ
oprande, ladresse dune donne : cela repose sur le mcanisme dadressage dun
microprocesseur qui dfinit les diffrentes manires de calculer une adresse de
donnes. On parle galement de modes dadressages du microprocesseur.
Les donnes sont les objets que manipulent les instructions, elles sont codes sur
un ou plusieurs mots machines et sont donc adressables (reprables) dans la mmoire
centrale. Ladresse de la donne est dtermine par le type dadressage utilis par
linstruction machine. Le codage dune donne en mmoire dpend de son type : la
figure 1.4 donne les diffrents types de donnes que manipulent les instructions
machines. Pour chaque type il existe des rgles de codage. Par exemple pour coder
les caractres alphanumriques on utilise un dictionnaire (table ASCII, table EBCDIC,
codage Unicode) tandis que pour coder un nombre entier non sign on utilise une
rgle traditionnelle de codage dun nombre sur un alphabet binaire.
Dans lexemple de la figure 1.5, on suppose un nombre cod sur un octet (8 bits)
dont la position de chaque bit est numrote de 0 7, en partant du bit de poids
Octet
Informations
01100101
Position du bit
7 6 5 4 3 2 1 0
0 1 1 0 0 1 0 1
Donnes
Valeur de loctet :
0 2 7 + 1 26 + 1 25 + 0 24 + 0 23 + 1 22 + 0 21 + 1 20
Soit 101 en base 10
Nb entiers positifs
Figure 1.5
faible. La valeur de lentier est alors la somme des produits de chaque bit par le
nombre de symboles possibles dans la base dexpression du nombre (ici 2) lev la
puissance du rang du bit. Cette rgle est gnrale et permet de dterminer la valeur
dun entier cod sur nimporte quel alphabet. Dans le cas dun alphabet binaire la
valeur maximale que peut prendre un entier cod sur p bits est 2p. Les principales
normes de codages existantes lheure actuelle ainsi que la structure des instructions
machine et les modes dadressages courants sont dtaills au chapitre 4.
La mmoire centrale a pour objet le stockage des instructions et des donnes que
peut manipuler le microprocesseur. Les oprations possibles sur la mmoire sont la
lecture (acquisition par le microprocesseur) dun mot et lcriture (le microprocesseur place un nouveau contenu) dans un mot mmoire. Une opration de lecture dun
mot consiste dfinir ladresse du mot et dclencher une commande de lecture qui
amne le contenu du mot de la mmoire vers le microprocesseur. Une opration
dcriture consiste dfinir ladresse du mot dont on veut changer le contenu puis
dclencher une opration dcriture qui transfre linformation du processeur vers le
mot mmoire dont ladresse est spcifie.
Enfin dautres lments importants compltent la caractrisation dune mmoire
centrale :
le temps daccs la mmoire qui mesure le temps ncessaire pour obtenir une
information loge en mmoire;
les technologies qui prsident la construction de ces mmoires;
le cot de ralisation de ces mmoires.
Nous reviendrons en dtail sur lensemble de ces points dans le chapitre sur la
mmorisation (chapitre 8).
1.2.3 Le bus de communication
Le bus de communication peut se reprsenter comme une nappe de fils transportant
des signaux et permettant lchange des informations entre les diffrents modules du
processeur. Chaque fil transporte ou non un signal : il est prsent ou absent. On
reprsente par 1 un signal prsent et par 0 un signal absent. Le nombre de fils du bus
dtermine sa largeur et dfinit ainsi le nombre dinformations diffrentes que peut
vhiculer le bus. Ainsi un bus de 3 fils permet une combinaison de 8 signaux diffrents et donc reprsente 8 informations possibles diffrentes.
Le bus est construit comme un ensemble de trois bus :
le bus dadresses transporte des combinaisons de signaux qui sont interprtes
comme des nombres entiers reprsentant ladresse dun mot mmoire. Par exemple,
figure 1.6, le bus dadresses a une largeur de 3 fils et est donc capable de coder
des adresses allant de 0 7. Pour adresser un mot mmoire on fait appel un circuit
de slection (dcodeur) qui en entre reoit n signaux (3 dans notre exemple) et
fournit 2n signaux de sortie (8 dans notre exemple). Parmi les signaux de sortie un
seul est positionn 1 tous les autres valant 0. Dans notre exemple, les sorties sont
numrotes de 0 7 et de haut en bas. Ainsi si la valeur dentre est 000, seule la
sortie 0 vaut 1 et toutes les autres valent 0. Pour adresser le mot mmoire 2 le
microprocesseur place sur le bus dadresses la chane 010 (qui a pour valeur 2 en
base 10), la sortie 1 du dcodeur vaut alors 1 et les autres valent 0. Ce circuit permet
donc de slectionner un mot mmoire dans la mmoire centrale. La largeur du bus
dadresses dfinit la capacit dadressage du microprocesseur et il ne faut pas
confondre capacit dadressage et taille physique de la mmoire;
Processeur
Commandes
Adresse
Donnes
Mot mmoire
Bit
Mmoire centrale
Selection
Largeur
des bus :
1 fil
3 fils
16 fils
Bus
Tampon dentres-sorties
Figure 1.6
Bus de communication.
le bus de donnes permet lchange des informations (les contenus) entre les
diffrents modules. Dans notre exemple le bus de donnes a une largeur de 16 fils
et donc la taille des mots mmoires auxquels on peut accder ou dont on peut modifier le contenu est de 16 bits;
le bus de commandes : cest par ce bus que le microprocesseur indique la nature des
oprations quil veut effectuer. Dans notre exemple il a une largeur dun fil et donc
le microprocesseur ne peut passer que deux commandes (la lecture et lcriture).
La figure 1.7 rsume les diffrents points abords concernant la mmoire et les
bus permettant la communication avec la mmoire. Sur cette figure 1.7, le bus
10
dadresses a une largeur de m bits, le bus de donnes une largeur de p bits ce qui
dtermine la capacit de stockage en bits de cette mmoire, soit 2m mots de p bits. Le
bus de commandes permet de dterminer le type dopration (lecture ou criture)
que lon souhaite raliser.
Bus dadresses
m bits
Fonctions :
stockage
programme
et donnes
Units de stockage : Bit, Octet, Mot.
Adresse
Lecture
Mmoire
2m mots de p bits
Mots
Adressage :
Mot
criture
Temps daccs.
Bus de commandes
Technologies.
Donnes
Cots.
p bits
Bus de donnes
Figure 1.7
Opration
Y2
PSW
Unit Arithmtique
et Logique
Bus interne
Donnes
Registres
Commandes
Unit de Commande
Squenceur
Dcodeur
RI
CO
RAD
RDO
Commandes Lecture/criture
Adresses
Donnes
Figure 1.8
Le microprocesseur.
11
Il est constitu de quatre parties : lunit arithmtique et logique (UAL), les registres, lunit commande et le bus de communication interne permettant lchange des
donnes et des commandes entre les diffrentes parties du microprocesseur.
Les registres
Ce module est charg de lexcution de tous les calculs que peut raliser le microprocesseur. Cette unit est constitue de lensemble des circuits arithmtiques et
logiques permettant au processeur deffectuer les oprations lmentaires ncessaires lexcution des instructions machine. Elle inclut donc les circuits daddition,
de soustraction, de multiplication, de comparaison, etc. Dans ce module se trouvent
galement des registres dont lobjet est de contenir les donnes sur lesquelles vont
porter les oprations effectuer. Dans notre exemple, lUAL possde deux registres
dentre (E1 et E2) et un registre de sortie (S).
Pour faire une addition :
la premire donne est place dans E1 via le bus interne de donnes;
la seconde donne est place dans E2 via le bus interne de donnes;
la commande daddition est dlivre au circuit daddition via le bus interne de
commandes;
le rsultat est plac dans le registre S.
Sur notre machine on note galement un registre particulier, le PSW (Program
Status Word), qui joue un rle fondamental de contrle de lexcution dun programme
et qui tout instant donne des informations importantes sur ltat de notre microprocesseur. Par exemple puisque nous travaillons sur des mots de longueur finie la valeur
dun entier cod sur un mot ne peut dpasser la valeur maximale reprsentable sur ce
mot. Lorsque nous faisons laddition de deux entiers le rsultat peut avoir une valeur
qui nest pas reprsentable sur un mot mmoire : il y a alors dpassement de capacit. Ce dpassement de capacit doit tre signal et not pour ne pas perturber le
fonctionnement de lordinateur. Ce type dinformation est stock dans le PSW.
Lunit de commande
Elle excute les instructions machines et pour cela utilise les registres et lUAL du
microprocesseur. On y trouve deux registres pour la manipulation des instructions
(le compteur ordinal CO, le registre dinstruction RI), le dcodeur, le squenceur et
deux registres (le registre dadresses RAD et le registre de donnes RDO) permettant
12
la communication avec les autres modules via le bus. Enfin, via le bus de commandes,
elle commande la lecture et/ou lcriture dans la mmoire centrale.
Le compteur ordinal CO
13
On dit que pour transfrer une information dun module lautre le microprocesseur tablit un chemin de donnes permettant lchange dinformations. Par exemple
pour acqurir une instruction depuis la mmoire centrale, le chemin de donnes est
du type : CO, RAD, commande de lecture puis RDO, RI.
1.3
FONCTIONNEMENT : RELATION
MICROPROCESSEUR / MMOIRE CENTRALE
Mmoire
Instructions
Donnes
3
Horloge
4
Figure 1.9
14
1.4 Un exemple
1.4
15
UN EXEMPLE
Pour rsumer ce que nous venons dtudier, nous allons prendre un exemple de
problme rsoudre avec un ordinateur. Nous dfinissons tout dabord le problme
et lordinateur cible cest--dire son langage de programmation (langage machine).
Puis nous construisons le programme machine excutable par cet ordinateur. Enfin
nous plaons ce programme en mmoire centrale. Il peut alors tre excut par le
microprocesseur.
1.4.1 Le problme
Notre problme consiste raliser laddition de X qui vaut 4 avec Y qui vaut 1 et
placer le rsultat dans Z. Nous souhaitons donc, laide de notre ordinateur, raliser
lopration : Z = X + Y avec X = 4 et Y = 1.
1.4.2 Lordinateur
Cet ordinateur a la structure gnrale dfinie dans la figure 1.11. Les mots de la
mmoire sont des octets (8 bits), tous les registres du microprocesseur ont une largeur
de 8 bits, les instructions et les donnes entires sont codes sur un mot mmoire.
Donnes : X est cod : 000001002 ; Y est cod : 000000012.
1.4.3 Le langage machine
Le code opration est cod sur 4 bits, le champ oprande sur 4 bits. Le champ oprande
ne rfrence quune donne. Ainsi pour faire laddition de deux nombres un tel
langage suppose que la premire donne est spcifie dans linstruction et la seconde
occupe une adresse implicite. Dans de nombreuses machines cette adresse implicite
est un registre appel registre Accumulateur (not A). Laddition porte alors sur la
donne spcifie dans linstruction et le contenu de A, le rsultat tant plac dans A.
Code opration
Champ oprande
0001
0100
0001
0100
0010
0101
0011
0110
0000
Stopper le programme
Figure 1.10
Le langage de la machine.
16
Les instructions du langage sont dfinies dans la figure 1.10. La figure 1.11 rsume
les diffrentes phases amenant lexcution du programme machine solution de notre
problme sur cette machine :
les donnes ont t charges aux adresses 0100 (pour X), 0101 (pour Y), le rsultat
ladresse 0110 (pour Z);
le programme machine est charg ladresse 0111;
le compteur ordinal est charg avec ladresse 0111.
titre dexercice vrifiez que lexcution du programme machine rsout bien notre
problme.
Faire laddition
de X qui vaut 4
et de Y qui vaut 1,
placer le rsultat
dans Z
0001 0100
0010 0101
0011 0110
0000
Z=X+Y
Programme
machine
Chargement
en mmoire
centrale
Mmoire
Instructions
Adresses
Donnes
Horloge
Excution
RI
CO
RAD
RDO
Figure 1.11
1.5
0011
0100
0101
0110
0111
1000
1001
1010
11001001
00000100
00000001
00000000
00010100
00100101
00110110
0000
X=4
Y=1
Z=X+Y
Le programme solution.
1.6 Conclusion
17
les changes entre mmoire centrale et unit dchange. On trouve des instructions dcriture permettant au microprocesseur de placer des informations dans
lunit dchange et des instructions de lecture permettant au microprocesseur
dacqurir des informations partir des units dchanges. De plus des doutils de
synchronisation permettant dharmoniser les activits du processeur avec celles
des priphriques quil pilote sont ncessaires : il ne faut, par exemple, envoyer
des caractres vers une imprimante que si celle-ci est prte imprimer et attendre
dans le cas contraire. Dans nos ordinateurs les units dchanges ne communiquent pas directement avec le bus interne du processeur mais au travers de bus,
dits bus dextension. Il existe une assez grande varit de ces bus dextension
(ISA, USB, FireWire, Fiberchanel, PCI) qui satisfont des fonctionnalits diverses
et plus ou moins gnrales. Nous reviendrons plus en dtail sur cette question
dans le chapitre traitant des questions de communication;
elle est en communication avec les priphriques et ce titre doit tre capable de
les piloter.
1.6
CONCLUSION
Dans ce chapitre nous avons fait le tour de toutes les tapes importantes ncessaires
la rsolution dun problme avec un ordinateur. La figure 1.12 rsume ces diffrentes tapes.
Problme
me
st
y
S
Algorithme
Co
il
mp
(
on
ati
programme
Langage de haut niveau
(exemple C)
x
de
n)
tio
a
t
i
plo
(Systme
dexploitation)
(Processeur)
Programme
machine
(squence
dinstructions
machine)
Figure 1.12
Programme assembleur/machine
Chargement (SE)
Programme machine en mmoire
chargement Compteur Ordinal (CO)
(adresse de la premire instruction)
18
Nous voyons quune des tapes consiste exprimer lalgorithme avec un langage
de haut niveau. En fait il existe plusieurs niveaux de langage de programmation :
les langages de haut niveau (C, C++ , ADA, JAVA, COBOL, PASCAL, PYTHON)
ne sont pas directement excutables par le processeur cible que nous utilisons :
lordinateur. Il faut donc traduire les programmes exprims dans ces langages
afin dobtenir le programme machine excutable par le processeur cible. Cest
lobjet de la compilation et/ou de linterprtation. Les compilateurs (interprteurs) sont des programmes (du Systme dExploitation : SE) qui ont la connaissance de la syntaxe des langages de haut niveau et qui connaissent le langage
machine de la machine cible. Ces langages sont ncessaires car on ne sait pas
traduire directement le langage naturel en langage machine alors que lon sait
construire des traducteurs pour ces langages de haut niveau;
les langages de bas niveaux sont des langages directement excutables par un
microprocesseur. Ce sont les langages machines. Ils se prsentent sous deux formes :
les langages machine cods binaires. Ce sont les seuls rellement excutables
par le processeur. Cods sous forme binaire ils sont difficiles manipuler;
les langages dassemblage. Ce sont des langages machines symboliques au sens
o les codes opration et les champs oprande dune instruction sont exprims
laide de symboles.
Par exemple dans la petite machine qui nous a servis dexemple, 00010010 est une
instruction machine demandant de charger le contenu de ladresse mmoire 0010 dans
le registre accumulateur A du microprocesseur. Il existe dans le langage dassemblage de cette machine une instruction qui a la forme Load X o Load exprime
laide de symboles alphanumriques le code opration cod binaire 0001 et X exprime
symboliquement ladresse mmoire de la donne X. Ce type de langage est beaucoup plus simple utiliser que le langage machine cod binaire. Bien sr un programme
crit en langage dassemblage nest pas directement excutable par le microprocesseur. Cependant la traduction, langage dassemblage, langage machine pur, est simple
car chaque instruction du langage machine correspond une instruction du langage
dassemblage. Le traducteur de tels langages sappelle lassembleur. Une programmation dans ce type de langage est possible mais de moins en moins frquente. Elle se
justifie encore lorsque lon recherche une grande efficacit, par exemple, dans la
programmation des jeux vidos ou des interfaces graphiques.
Le traducteur (compilateur/interprteur) place le rsultat de sa traduction (programme
machine) sur le disque magntique. Le programme machine doit tre charg en
mmoire centrale pour tre excut par le microprocesseur. Cest un programme du
systme dexploitation, le chargeur, qui ralise ce chargement en mmoire. Le chargeur connat ladresse de la premire instruction du programme machine, il peut
ainsi initialiser le compteur ordinal pour lancer lexcution. partir de ce moment les
instructions, une une, sont prises en charge par le microprocesseur qui les excute.
La premire partie de cet ouvrage est consacre au passage du problme au
programme machine; elle prsente en dtail le fonctionnement du compilateur et des
autres outils permettant de construire un programme machine. Elle approfondit
1.6 Conclusion
19
20
PARTIE 1
PRODUCTION
DE PROGRAMMES
Lensemble des chapitres de cette partie est centr autour de la notion de chane de
production de programmes. partir de la description du rle premier dun ordinateur, nous prsentons succinctement les notions fondamentales dalgorithmes, de
programmation ainsi que les diffrents niveaux de langages disponibles sur un ordinateur. Nous abordons ainsi les concepts de langage machine et langage haut niveau,
puis nous nous intressons aux diffrentes tapes permettant la traduction dun
programme crit en langage haut niveau vers son quivalent crit en langage machine
et excutable par lordinateur.
Le chapitre 2 introduit la notion dalgorithme et les diffrents niveaux de langages
disponibles sur un ordinateur. Le chapitre 3 dcrit la chane de production de
programmes et prsente les diffrentes tapes qui la composent, cest--dire la compilation, ldition de liens et le chargement. Enfin, le chapitre 4 prsente la notion de
langage machine, de langage dassemblage et dcrit les principales conventions de
reprsentation des informations (nombres, caractres) sur la machine. Le chapitre 5
est consacr aux diffrents circuits logiques qui constituent la partie matrielle de
lordinateur et la technologie mise en uvre pour leur fabrication. Cette partie
sachve avec un ensemble dexercices corrigs.
Mots-cls : algorithme, compilation, dition des liens, langage machine, reprsentation binaire, circuits logiques, transistors.
Chapitre 2
Du problme
au programme machine
2.1
DU PROBLME AU PROGRAMME
24
sur ces donnes en vue de rsoudre un problme. Lordinateur offre ltre humain
une puissance de stockage, de calcul et de traitement bien suprieure ce quoi il
peut prtendre par lui-mme. Prenons trois exemples :
en palontologie, lanalyse cladistique a pour but de mettre en vidence les liens
de parent existants entre diffrents organismes afin didentifier des clades1 et de
construire les arbres volutifs. Pour parvenir ce but, le palontologue doit identifier entre plusieurs organismes la possession en commun de caractres drivs
due une ascendance commune. Une telle recherche ne peut se faire que par une
comparaison simultane dune grande quantit de donnes, cest--dire de caractres et despces, quil est inenvisageable de raliser sans le concours de lordinateur. En effet la quantit de donnes comparer est telle que pour un tre
humain tablir un seul arbre demanderait un temps considrable. Grce lordinateur, il est possible dtablir et de calculer des millions darbres possibles en un
temps raisonnable2 ;
en informatique de gestion, les systmes de bases de donnes permettent de
stocker, classer et grer des millions de donnes dans un espace bien plus rduit
quau temps o seul le support papier existait. Par ailleurs, les performances des
mthodes dinterrogations lies ces systmes rendent possibles des extractions
de donnes suivant des objectifs multicritres dans des temps rduits, l o il
faudrait un traitement manuel de plusieurs heures. Songez au catalogue informatique de la bibliothque municipale de votre ville, comme il est ais de demander
lordinateur de rechercher dans lensemble des livres traitant de la musique
baroque, les seuls ouvrages consacrs la fois Haendel et Vivaldi. Vous navez
plus alors qu vous diriger vers le rayon dsign, prendre le livre correspondant
la cote fournie; l o il vous aurait fallu soit compulser le classeur papier tri par
ordre alphabtique ou chacun des livres du rayon musique;
dans le domaine du contrle de procd, lordinateur supple lhumain en
offrant une plus grande vitesse de raction aux vnements et une plus grande
fiabilit dans le contrle ralis. La complexit de pilotage dun avion de chasse,
par exemple, est telle, la quantit dinformations remontes au cockpit si importante (informations de pilotage, informations radios, informations lies au systme
darmes, informations lies au systme de dfense antimissiles), que le pilote ne
peut pas piloter son appareil sans le concours de linformatique embarque. Celleci lui permet entre autre une vitesse de raction suprieure en prenant elle-mme
en main des rponses automatises : ainsi le systme de dfense antimissiles est
capable danalyser de lui-mme le type de missiles intercepter (thermique ou
radar), de lancer les leurres adapts (fuses clairantes ou feuilles mtalliques)
avant de remonter linformation au pilote pour que celui-ci dvie son avion afin
dviter limpact.
1. Une clade (du grec klados rameau ) dsigne une branche dun arbre volutif comprenant un
anctre et ses descendants.
2. TASSY Pascal, Le palontologue et lvolution, Collection Quatre Quatre, ditions Le PommierFayard, septembre 2000, 158 pages.
25
primtre ?
2.
26
2.2
COMPILATEUR
perimetre : pop Rg1 R1
pop Rg1 R2
mul Im R1 2
mul Im R2 2
add Rg2 R1 R2
push Rg1 R1
ret
ASSEMBLEUR
MMOIRE
CPU
01101110111110011
01111010001011100
10111101110111111
00111011110111011
00111111000111101
BUS
Figure 2.2
Programme excuter :
instructions machine et valeurs en binaire
Traduction
Les diffrents niveaux de programmation.
27
adresse
code opration
Instruction machine.
Chaque instruction est par ailleurs repre par une adresse qui mmorise la position de linstruction dans le programme.
Ce niveau de programmation est videmment trs fastidieux, voire impraticable
par ltre humain.
28
code opration
code opration
ADD
oprandes
Rg2 R0, R1
code opration
00000000
Figure 2.4
oprandes
111 0000 0001
29
les instructions machine correspondantes. Cette phase de traduction est ralise par
un outil appel lassembleur1.
2.2.3 Langage de haut niveau ou volu
Ltape suivante est venue de la gense des langages volus ou langages de haut
niveau. Ces langages se caractrisent principalement par le fait quils sont, contrairement aux deux autres types de langage que nous venons daborder, totalement indpendants de larchitecture de la machine et du processeur. Par ailleurs, ils offrent un
pouvoir dexpression plus riche et plus proche de la pense humaine, rendant ainsi
plus aise la traduction des algorithmes tablis pour rsoudre un problme. Ces langages
de fait sont davantage dfinis par rapport aux besoins dexpression du programmeur
que par rapport aux mcanismes sous-jacents de la machine physique. Ils intgrent
ainsi des structures opratoires semblables celles des algorithmes telles que les
itrations, les boucles, les conditionnelles.
Ainsi les langages de haut niveau sont plus ou moins spcialiss par rapport une
classe de problmes rsoudre : COBOL est destin aux applications de gestion tandis
que FORTRAN est plutt orient vers le domaine du calcul scientifique. Dautres
langages sont plus universels tels que C, C++ , Ada, Java ou encore Pascal.
De nos jours, les langages haut niveau sont classs selon plusieurs grandes familles.
Deux familles de langages importants et courants sont la famille des langages dits
procduraux et la famille des langages dits objets :
le langage procdural : lcriture dun programme est base sur les notions de procdures et de fonctions, qui reprsentent les traitements appliquer aux donnes du
problme, de manire aboutir la solution du problme initial. Les langages C
et Pascal sont deux exemples de langages procduraux;
le langage objet : lcriture dun programme est base sur la notion dobjets, qui
reprsentent les diffrentes entits entrant en jeu dans la rsolution du problme.
chacun de ces objets sont attaches des mthodes, qui lorsquelles sont actives, modifient ltat des objets. Les langages Java et Eiffel sont deux exemples
de langages objets.
Les langages volus tant indpendants de la machine, ils ne peuvent tre directement excuts par la machine. Un programme crit en langage haut niveau doit
donc tre converti vers son quivalent en langage machine. Cest le rle du traducteur de langage, qui est spcifique chaque langage volu utilis.
Les traducteurs sont diviss en deux catgories : les compilateurs et les interprteurs.
un compilateur traduit une fois pour toutes le langage volu en langage machine
et construit ainsi un programme qualifi de programme objet qui est stock sur un
support de masse tel quun disque;
1. Par abus de langage, le terme assembleur dsigne tout la fois le langage dassemblage luimme et loutil de traduction.
30
un interprteur lit une une les instructions du langage volu, puis il les convertit
immdiatement en langage machine avant quelles ne soient excutes au fur et
mesure. Il ny a pas de gnration dun fichier objet conservant la traduction des
instructions en langage volu vers le langage machine et la traduction doit donc
tre refaite chaque nouvelle demande dexcution du programme.
Plus gnralement, le passage dun programme dit programme source crit en
langage de haut niveau vers un programme excutable en langage machine est assur
par un processus comportant plusieurs tapes dont lune est la compilation, que lon
qualifie de chane de production de programmes.
2.3
diteur
Programme source
langage volu
Compilateur
Compilateur
Langage dassemblage
Assembleur
Programme objet
langage machine
mmoire
centrale
diteur de liens
cpu
Programme translat
langage machine
Programme translatable
langage machine
Chargeur
Figure 2.5
2.4 Un exemple
31
2.4
UN EXEMPLE
Considrons que nous souhaitions crire un programme qui permet le calcul du primtre ou de la surface soit dun cercle de rayon r, soit dun carr de ct a, soit dun
rectangle de cts a et b, soit dun triangle quilatral de ct a et de hauteur h. La
premire tape consiste donc crire un algorithme correspondant ce programme,
cest--dire donner une solution possible au problme. Dans une analyse base sur
lutilisation finale dun langage procdural tel que C par exemple, la solution va
sattacher identifier les fonctions raliser : ici, par exemple, nous pouvons identifier deux fonctions, la premire permettant le calcul dun primtre, la seconde
permettant le calcul dune surface, sachant que :
le primtre du carr est gal 4 a, celui du rectangle est gal 2 a + 2 b,
celui du triangle est gal 3 a et celui du cercle est gal 2 r;
la surface du carr est gale a2, celle du rectangle est gale a b, celle du
triangle est gale (h a)/2 et celle du cercle est gale r2.
Lalgorithme suivant pourra tre crit par exemple pour la fonction primtre :
fonction primtre :
paramtres entrants : type de lobjet (triangle, carr, rectangle ou cercle)
caractristiques de lobjet : valeur de a, r, h, b
selon lobjet
retourne un entier qui est la valeur du primtre.
dbut
cas objet :
triangle : retourner (3 a);
cercle : retourner (2 r);
carr : retourner (4 a);
rectangle : retourner (2 a + 2 b);
fin cas;
fin
32
triangle 1
cercle 2
carre 3
rectangle 4
Dans une analyse base sur lutilisation finale dun langage objet tel que C++ par
exemple, la solution va sattacher identifier les objets concerns : ici, par exemple,
nous identifierons 4 objets, le cercle, le triangle, le carr et le rectangle, chacun tant
associ deux mthodes, la mthode perimetre et la mthode surface qui lorsquelles
sont appeles rendent respectivement le primtre ou la surface de lobjet concern.
Le carr et le rectangle sont quant eux tous les deux des quadrilatres pour lesquels
le calcul de la surface et du primtre seffectue de manire identique (le carr est un
rectangle de cts a et b pour lequel a = b).
Dans cette analyse, nous allons dfinir une classe quadrilatere, une classe cercle
et une classe triangle. Une classe dfinit une collection dobjets qui partagent les
mmes proprits et sur lesquels les mmes traitements peuvent tre excuts. Nous
crons ensuite deux objets carre et rectangle, instances de la classe quadrilatere,
un objet rond instance de la classe cercle et un objet triangle_iso, instance de la
classe triangle.
Lalgorithme qui en dcoule peut tre de la forme suivante :
dfinition classe quadrilatre (
entier a, b; les cts du quadrilatre;
fonction primtre :: retourner (2 a + 2 b);
fonction surface :: retourner (a b);)
dfinition classe triangle (
entier a, h; le ct et la hauteur du triangle;
fonction primtre :: retourner (3 a);
fonction surface :: retourner ((a h)/2);)
dfinition classe cercle (
entier r;
le rayon du cercle;
fonction primtre :: retourner (2 r);
fonction surface :: retourner ( r2);)
2.5 Conclusion
33
Viennent ensuite les dfinitions les objets rectangle, carre, rond et triangle_iso.
Cet algorithme peut se traduire par exemple en langage C++ par le programme
suivant o lon ne tient compte que de la classe quadrilatere et pour lequel par
souci de simplification, les paramtres du rectangle et du carr sont fixs lors de la
dclaration des objets associs :
class quadrilatere
{
int a, b;
public :
int perimetre (void);
int surface (void);
};
int quadrilatere :: perimetre (void)
{
return (2 * a + 2 * b);
}
int quadrilatere :: surface (void)
{
return (a * b);
}
int main()
{
quadrilatere carre (5, 5);
quadrilatere rectangle (7, 9);
int surfacec, perimetrec, surfacer, perimetrer;
surfacec =
perimetrec
surfacer =
perimetrer
carre.surface();
= carre.perimetre();
rectangle.surface();
= rectangle.perimetre();
2.5
CONCLUSION
34
Chapitre 3
La chane de production
de programmes
3
diteur de texte
prog.c
source
Compilateur
prog.o
objet
Bibliothques
diteur de liens
prog.exe
programme excutable
stock sur disque
prog.exe
programme excutable
sock en mmoire centrale
Figure 3.1
Chargeur
Chane de production de programmes.
36
Nous abordons ensuite le fonctionnement dun outil trs courant pour simplifier la
construction dun programme excutable partir de plusieurs modules sources :
lutilitaire Make.
3.1
LA COMPILATION
Exemple
La compilation dun programme crit en langage C sobtient en tapant la commande
cc o prog.c et produit un fichier objet de nom prog.o. De mme la compilation
dun programme crit en Fortran sobtient en tapant la commande xlf c fichier.f
et produit un fichier objet fichier.o.
Le travail du compilateur se divise en plusieurs phases :
lanalyse lexicale (reconnaissance des mots du langage, cest--dire apprhension
du vocabulaire);
lanalyse syntaxique (vrification de la syntaxe, cest--dire apprhension de la
grammaire);
lanalyse smantique (vrification de la smantique, cest--dire apprhension
du sens) ;
loptimisation et la gnration du code objet.
3.1.1 Grammaire et structure dun langage de haut niveau
Structure dun langage de haut niveau
3.1 La compilation
37
des phrases ou instructions : une phrase est un groupe de lexmes du langage dont
la structure est elle aussi donne par une grammaire. Cette structure peut tre dcrite
par un arbre qualifi darbre syntaxique.
Par exemple, A1 est un mot du langage compos des symboles lmentaires A et 1.
A1 = 3; constitue une phrase du langage.
Finalement, un programme est constitu comme tant une suite de phrases du
langage, chacune des phrases respectant une syntaxe donne par la grammaire associe au langage. Formellement, une grammaire est dfinie par :
un ensemble de symboles terminaux qui sont les symboles lmentaires admis dans
le langage (exemples : DEBUT, FIN, *, + , = , );
un ensemble de symboles non terminaux (exemples : <nombre>, <terme>, );
un ensemble de rgles syntaxiques encore appeles productions (exemple :
<nombre> :: = <chiffre> | <nombre> <chiffre>).
Pour dcrire la syntaxe dun langage et spcifier les rgles de production de la
grammaire associe, on utilise couramment la notation dite notation de Backus-Naur
ou BNF (Backus-Naur Form), dveloppe lorigine pour dcrire la syntaxe du langage
Algol 60. Avec ce formalisme, une rgle de production scrit :
<objet_1 du langage> :: = <objet_2 du langage> | <objet_3 du langage>
et dcrit la syntaxe de lobjet_1 du langage comme tant soit lobjet_2 du langage,
soit lobjet_3 du langage. | code lalternative et :: = spare un objet de sa
description.
Exemple
Soient les deux rgles suivantes :
<nombre> :: = <chiffre> | <nombre> <chiffre>
<chiffre> :: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Le nombre 125 peut tre dcompos comme suit :
<nombre> 125 :: = <nombre> 12 <chiffre> 5
<nombre> 12 :: = <nombre> 1 <chiffre> 2
<nombre> 1 :: = <chiffre> 1
Un exemple
38
Ainsi, la premire rgle spcifie que lobjet programme est construit partir du
symbole terminal PROGRAM suivi dun objet <identificateur> et dun objet <corps
de programme>. Un objet <identificateur> est lui-mme dcrit comme tant compos
soit dune lettre seule, soit dune lettre suivie dun chiffre. Les lettres admises sont
les 26 lettres majuscules de lalphabet et les chiffres admis sont les chiffres allant
de 0 9. Lobjet <corps de programme> est par ailleurs dfini comme tant un objet
<suite de dclarations> suivi du symbole terminal DEBUT, suivi dun objet <suite
daffectations> suivi du symbole FIN. Et ainsi de suite
Le programme Z suivant a t crit en respectant la syntaxe dicte par ces rgles.
PROGRAM Z
INT A;
INT B;
INT C2;
DEBUT
A = 4;
B = A / 2;
C2 = B + A;
FIN
3.1 La compilation
39
Lexmes
P
r
o
g
r
a
m
m
e
Suite
de caractres
Suite
de symboles
Analyseur lexical
Analyseur lexical.
Ainsi, les lexmes du langage L_exemple peuvent tre cods sur lensemble Z des
nombres entiers positifs, ngatifs ou nuls en appliquant les rgles suivantes :
cas (type_lexme reconnu) :
entier : codage_lexme = valeur de lentier;
symbole + : codage_lexme = 1;
symbole : codage_lexme = 2;
symbole * : codage_lexme = 3;
symbole / : codage_lexme = 4;
symbole = : codage_lexme = 5;
symbole ; : codage_lexme = 6;
symbole PROGRAM : codage_lexme = 7;
symbole DEBUT : codage_lexme = 8;
symbole FIN : codage_lexme = 9;
symbole INT : codage_lexme = 10;
identificateur lettre seule : (position_lettre_alphabet + 10);
identificateur lettre chiffre : ((position_lettre_alphabet + 10) +
26 (chiffre + 1));
fin cas;
Avec ce codage qui est totalement bijectif :
un lexme entier reoit une valeur positive ou nulle;
un lexme symbole du langage reoit une valeur dans lensemble [ 10, 1];
un identificateur reoit une valeur dans lensemble [ 296, 11] : en effet, lidentificateur A est cod par la valeur 11 tandis que lidentificateur Z9 est cod par
la valeur (36 + 260).
Le programme Z correspondra lissue de lanalyse lexicale la suite dentiers :
7 (PROGRAM), 36 (Z), 10 (INT), 11 (A), 6 (;), 10 (INT), 12 (B), 6 (;),
10 (INT), 91 (C2), 6 (;), 8 (DEBUT), 11 (A), 5 (=), 4 (4), 6 (;), 12 (B),
5 (=), 11 (A), 4 (/), 2 (2), 6 (;), 91 (C2), 5 (=), 12 (B), 1 (+), 11 (A),
6 (;), 9 (FIN).
40
l
e
x
i
c
a
l
Suite
de symboles
Arbres
syntaxiques
Analyseur syntaxique
Erreurs de syntaxe
Figure 3.3
Analyseur syntaxique.
Larbre syntaxique est construit par application successive des rgles de BackusNaur dfinissant la syntaxe du langage, lensemble des symboles issus de lanalyse
lexicale. Cette construction se poursuit soit jusqu ce que le dernier symbole ait t
pris en compte avec succs (la syntaxe est correcte), soit jusqu ce quil ne soit plus
possible de faire correspondre aucune des rgles de Backus-Naur existantes avec la
suite de symboles restants (la syntaxe est errone).
Le programme Z donn en exemple au paragraphe 3.1.1 conduit larbre syntaxique
donn par la figure 3.4.
Reprenons prsent la phrase G 5 = 2; reconnue par lanalyseur lexical comme
tant quivalente la suite : 17 (G) 5 (5) 5 (=) 2 (2) 6 (;). Larbre syntaxique
3.1 La compilation
41
PROGRAM Z
INT A ;
INT B ;
INT C2 ;
DEBUT
A=4;
B=4/2;
C2 = B + A ;
FIN
<programme>
PROGRAM
<identificateur>
( 7)
Z ( 36)
7 36
10 11 6
10 12 6
10 91 6
8
11 5 4 6
12 5 11 4 2 6
91 5 12 1 11 6
9
<corps de programme>
FIN
( 9)
<suite de dclarations>
DEBUT
( 8)
<suite daffectations>
<declaration>
INT
( 10)
<suite de dclarations>
<affectation>
;
( 6)
;
( 6)
<identificateur>
A ( 11)
<identificateur>
A ( 11)
= <terme>
( 5)
<suite de dclarations>
;
( 6)
<identificateur>
B ( 12)
<suite daffectations>
<affectation>
<entier>
4 (4)
<declaration>
INT
( 10)
<suite daffectations>
=
( 5)
<declaration>
INT
( 10)
<identificateur>
<terme>
C2 ( 91)
<operateur>
;
( 6)
<identificateur>
C2 ( 91)
;
( 6)
<identificateur>
B ( 12)
<affectation>
+
<identificateur> = <terme>
B ( 12)
( 5)
<operateur> <terme>
;
( 6)
( 1)
<terme>
/
( 4)
<identificateur>
A ( 11)
Figure 3.4
<entier>
2 (2)
Arbre syntaxique.
<identificateur>
A ( 11)
42
correspondant une telle phrase ne peut pas tre construit. En effet, la rgle de
production relative un objet de type affectation choue sur le deuxime symbole.
En effet, le symbole 5 est rencontr la place du symbole = . Une erreur
syntaxique est donc leve (figure 3.5).
G 5 = 2 ; 17 5 5 2 6
<corps de programme>
<suite daffectations>
DEBUT
( 8)
<affectation>
<identificateur>
G ( 17)
( 5) ?
NON => erreur
Figure 3.5
3.1 La compilation
43
begin
A : = 5;
B : = A/2;
for (i = 1 to 5)
loop
tab(i) : = B + i;
end loop;
end;
44
Tout au long des trois phases danalyse lexicale, danalyse syntaxique et danalyse
smantique, le compilateur construit une table regroupant toutes les informations
utiles sur les objets apparaissant dans le programme compil. Cette table qui comprend
une entre par objet reconnu est appele la table des symboles. Chaque entre spcifie
les proprits de lobjet associ, cest--dire notamment son type, sa taille et son
adresse. Pour pouvoir affecter une adresse chacun des objets, le compilateur manipule un compteur appel compteur demplacements, initialis 0 pour le premier
objet et incrment ensuite de la taille de chaque objet rencontr. Ladresse dun
objet est gale la valeur du compteur demplacements.
Ainsi le tableau 3.1 suivant peut correspondre la table des symboles construite
lors de la compilation du programme Z.
Tableau 3.1
Nom de lobjet
Type
Taille (octets)
Adresse
entier
(0)16
entier
(4)16
C2
entier
(8)16
3.1 La compilation
PROGRAM Z
INT A;
INT B;
INT C2;
DEBUT
A = 4;
B = A / 2;
C2 = B + A;
FIN
45
Z :
(0)16
(4)16
(8)16
INIT (0)16 4
DIV (4)16 (0)16 2
ADD (8)16 (4)16 (0)16
STOP
Loptimisation de code vise produire un code machine plus performant, cest-dire dune part un code dont lexcution est plus rapide et dautre part un code plus
compact dont lencombrement mmoire est moindre. Diverses amliorations peuvent
tre mises en uvre; elles diffrent grandement dun compilateur lautre. Les plus
courantes sont :
la rduction des expressions constantes : elle consiste effectuer les calculs arithmtiques qui ne comportent que des oprandes constants et remplacer lexpression
arithmtique par son rsultat. Par exemple, dans le programme Z, lexpression
B = A/2; peut tre calcule puisque la valeur de A est connue comme tant gale
4. B = A/2; est donc remplace par B = 2;
simplification des boucles et pr-valuation des expressions constantes : elle consiste
sortir les expressions invariantes des corps de boucles et les placer juste devant
ceux-ci. Ainsi, la boucle suivante :
for i = 1 to n
loop
j : = 3;
i : = i + 1;
end loop;
est transforme de la manire suivante :
j : = 3;
for i = 1 to n
loop
i : = i + 1;
end loop;
simplification des boucles et rduction de puissance des oprateurs : elle consiste
remplacer au sein dune boucle une opration puissante et juge plus coteuse
telle que la multiplication par une opration plus simple et moins coteuse telle
que laddition. Ainsi le code suivant :
for i = 1 to n
loop
a = i * 5;
end loop;
46
Ltape finale est celle de gnration du code final. Les macros sont remplaces par
les instructions machine correspondantes avec utilisation des registres et les objets
sont remplacs par leur adresse. Les adresses gnres (donnes ici en base 16) sont
calcules partir de la valeur 0.
Z :
adresse
instruction
commentaire
(0)16
(0)16
(4)16
(4)16
(8)16
(8)16
INIT (0)16 4 (C)16
00000 000 0001 0000000000000100 R1 4
(10)16 00001 001 0001 0000000000000000 R1 (0)16
INIT (4)16 2 (14)16 00000 000 0001 0000000000000010 R1 2
(18)16 00001 001 0001 0000000000000100 R1 (4)16
INIT (8)16 6 (1C)16 00000 000 0001 0000000000000110 R1 6
(20)16 00001 001 0001 0000000000001000 R1 (8)16
STOP
3.2
47
Exemple
Considrons une application de recherche et de rservation de livres dans le catalogue informatique dune bibliothque. Le logiciel a t structur sous la forme de
trois modules sources distincts :
le module interface contient la procdure charge du dialogue avec le client;
le module recherche contient les procdures de recherche dans le catalogue de la
bibliothque et la procdure de rservation dun livre;
le module affichage contient les procdures permettant laffichage des rsultats
des recherches menes dans le catalogue.
Voici un code source pour chacun des modules, volontairement incomplet et
simplifi, qui porte laccent sur les dpendances entre les modules.
48
module interface
programme principal;
dbut
chane de caractres rponse, cote_livre, mot_cl;
liste liste_livre;
tant que (rponse < > 3)
faire
poser_question (" que voulez-vous faire ?
chercher un livre ? 1
rserver un livre ? 2
quitter ? 3");
lire_rponse(rponse);
cas (rponse) :
1 : poser_question ("donnez un mot-cl :");
lire_rponse (mot_cl);
chercher_livre(liste_livre, mot_cl);
afficher(liste_livre);
2 : poser_question ("donnez la cote du livre :");
lire_rponse (cote_livre);
rserver_livre(cote_livre);
3 : rien;
fin cas;
fin tant que;
fin
procdure lire_rponse (out chane : chane de caractres);
dbut
code qui lit une chane de caractres au clavier
appelle une fonction lit_clavier de la bibliothque du langage
fin
procdure poser_question (in chane : chane de caractres);
dbut
code qui crit une chane de caractres sur lcran
appelle une fonction affiche_cran de la bibliothque du langage
fin
fin module;
module recherche;
export chercher_livre, rserver_livre;
procdure chercher_livre(out liste liste_livre, in chane de caractres
mot_cl);
dbut
code qui effectue une recherche dans le catalogue de la bibliothque
appelle une fonction lire_fichier de la bibliothque du langage
fin;
49
50
INTERFACE
exportation
AFFICHAGE
exportation
afficher
afficher
affiche_ecran
chercher_livre
rserver_livre
affiche_cran
lit_clavier
BIBLIOTHQUE
RECHERCHE
exportation
exportation
affiche_cran
rserver_livre
crire_fichier
chercher_livre
lire_fichier
crire_fichier
lit_clavier
lire_fichier
Figure 3.6
51
Dans un langage tel que Ada, le concept de module se traduit par celui de paquetage.
Un paquetage est divis en deux parties : une partie spcification qui contient la
dclaration des objets du paquetage accessible depuis dautres modules et une partie
corps qui contient la dfinition des objets eux-mmes, quils soient exports ou restent
privs. Dans ces paquetages, limportation dobjets externes provenant de bibliothques du langage seffectue grce la clause dimportation with. Ainsi, le module
recherche scrit :
package recherche is
procedure chercher_livre (liste_livre : out liste, mot_cle :
in string(1.20));
procedure reserver_livre (cote_livre : in string(1.20));
end;
with la_bibliotheque; importation des objets de la bibliotheque
package body recherche is
procedure chercher_livre (liste_livre : out liste, mot_cle :
in string(1.20)) is
begin
corps de la procedure qui utilise la fonction lire_fichier
de la bibliotheque la_bibliotheque :
appel sous forme la_bibliotheque.lire_fichier
end;
procedure reserver_livre (cote_livre : in string(1.20)) is
begin
corps de la procedure qui utilise la fonction ecrire_fichier
de la bibliotheque la_bibliotheque :
appel sous forme la_bibliotheque.ecrire_fichier
end;
end;
Dans un langage tel que C, lexportation des objets seffectue par le biais de la
clause extern. Lobjet export ainsi est rendu accessible tout autre module.
Dfinition des notions de liens utilisables et de liens satisfaire
Trois catgories dobjets peuvent donc tre rpertories au sein dun module :
les objets internes au module, inaccessibles de lextrieur car ils ne sont pas exports
(objet priv). ces objets, le compilateur ne fait correspondre aucun lien (exemple
lobjet lire_reponse dans le module interface);
les objets internes au module mais accessibles de lextrieur (objet export ou public).
ces objets, le compilateur fait correspondre un lien utilisable (LU) (exemple
lobjet chercher_livre dans le module recherche);
52
les objets nappartenant pas au module, mais utiliss par le module (objet import
ou externe). ces objets, le compilateur fait correspondre un lien satisfaire
(LAS) (exemple lobjet chercher_livre dans le module interface).
Cest donc le compilateur qui gnre les liens satisfaire et les liens utilisables en
fonction des catgories dobjets quil rencontre lors de la compilation dun module.
Les liens satisfaire et les liens utilisables sont placs en entte du module. Leur
forme est la suivante :
pour un lien utilisable, cest un couple <nom_de_lobjet, valeur> o valeur est
ladresse de lobjet dans le module qui contient sa dclaration;
pour un lien satisfaire, cest un couple <nom_de_lobjet, adr_1, adr_2, .., adr_last >
o adr_1, adr_2, .., adr_last sont les adresses dans le module o lobjet est utilis.
Outre ces informations, le compilateur indique galement en en-tte de chaque
module sa taille en octets.
Les modules interface, recherche et affichage lissue de la compilation sont
prcds des en-ttes suivants :
module interface.o;
taille (module) = 512 Ko
LAS <chercher_livre, adr_m_interface_1>
LAS <afficher, adr_m_interface_2>
LAS <rserver_livre, adr_m_interface_3>
LAS <lit_clavier, adr_m_interface_4>
LAS <affiche_cran, adr_m_interface_5>
code objet translatable correspondant au module dans lequel les adresses
adr_m_interface_1, adr_m_interface_2, adr_m_interface_3, adr_m_interface_4
et adr_m_interface_5 correspondent aux appels vers les 5 procdures
chercher_livre, afficher, rserver_livre, lit_clavier, et affiche_cran.
fin module;
module recherche.o;
taille (module) = 140 Ko
LU <chercher_livre, adr_m_recherche_1>
LU <rserver_livre, adr_m_recherche_2>
LAS <lire_fichier, adr_m_recherche_3>
LAS <crire_fichier, adr_m_recherche_4>
code objet translatable correspondant au module dans lequel les adresses
adr_m_recherche_1, adr_m_recherche_2 correspondent ladresse
des procdures chercher_livre et rserver_livre dans le module
et o adr_m_recherche_3 et adr_m_recherche_4 correspondent aux appels
vers les procdures lire_fichier et crire_fichier.
fin module;
module affichage.o;
taille (module) = 128 Ko
LU <afficher, adr_m_affichage_1>
53
Le rle de lditeur de liens consiste donc associer chaque lien satisfaire avec le
lien utilisable correspondant de manire pouvoir assigner une adresse chacun des
objets prsents dans les modules. Lditeur de liens est appel en lui fournissant en
paramtre les noms de chacun des modules objets entrant en compte dans la construction du programme excutable final.
Exemple
La commande ld o fich_exe module1.o module2.o permet la construction du
programme excutable fich_exe partir des modules objets module1.o module2.o
sous un systme de type Unix.
La commande ald module_principal permet la construction dun programme
excutable partir de modules objets issus dune compilation Ada. Tous les modules
ont t au moment de la compilation rangs dans une bibliothque adalib cre au
moyen de la commande amklib adalib et module_principal est le nom du module
objet dans la bibliothque contenant le programme principal.
Ldition des liens pour un ensemble de modules objets aboutissant la construction dun programme excutable se droule en trois tapes : la construction de la
carte dimplantation du programme final, la construction de la table des liens et la
construction du programme excutable final.
La premire tape de ldition des liens est donc la construction de la carte dimplantation du programme final. Cette tape consiste placer les uns derrire les autres les
diffrents modules relogeables gnrs par le compilateur et calculer les adresses
dimplantation de ces modules, cest--dire ladresse du premier octet de chacun des
modules. Le premier module garde une adresse dimplantation gale 0 car il est le
premier dans la carte. Les modules suivants par contre ont une adresse dimplantation
qui est translate de la taille en octets des modules qui les prcdent. La taille des
modules objets est une information dlivre par le compilateur. Ainsi sur la figure 3.7,
le module B garde une adresse dimplantation gale 0. Le module C a une adresse
dimplantation translate de taille (B) et le module A a une adresse dimplantation
qui est translate de taille (B) + taille (C).
Si nous considrons la construction du programme excutable final permettant
daccder au catalogue de notre bibliothque partir des trois modules interface.o,
54
Carte dimplantation
Module B
taille (B)
Module A
taille (A)
0
Module C
taille (C)
taille (B)
Module A
taille (A)
taille (B) + taille (C)
Module B
taille (B)
0
Module C
taille (C)
0
Figure 3.7
Carte dimplantation.
recherche.o et affichage.o, en les supposant placs dans cet ordre dans la carte
dimplantation du programme, les adresses dimplantation suivantes sont obtenues :
La deuxime tape soccupe de construire la table des liens : cette table a pour rle de
permettre la rsolution des liens cest--dire la mise en relation des liens satisfaire
avec les liens utilisables correspondants. Chaque entre de la table des liens est constitue de deux champs : le nom du lien cest--dire le nom de lobjet rfrenc par ce
lien et son adresse dans la carte dimplantation construite ltape prcdente. La table
est construite par la prise en compte dans chacun des modules entrant dans la composition finale du programme excutable des liens satisfaire et des liens utilisables.
Lalgorithme suivant explicite le droulement de cette tape pour un ensemble de
modules entrant dans la construction dun programme excutable final.
structure entre_table_des_liens une entre de la table des liens
nom_objet : chane de caractres;
adresse_objet : type_adresse;
fin structure;
structure lien
un lien de type LAS ou LU
genre : type_genre;
LAS ou LU
nom_objet : chane de caractres;
adresse_objet : type adresse;
fin structure;
55
56
Nom de lobjet
Commentaire
chercher_livre
indfinie
LAS
afficher
indfinie
LAS
rserver_livre
indfinie
LAS
lit_clavier
indfinie
LAS
affiche_cran
indfinie
LAS
Nom de lobjet
Commentaire
chercher_livre
adr_m_recherche_1 + 512 Ko
Rsolution LAS/LU
afficher
indfinie
LAS
rserver_livre
adr_m_recherche_2 + 512 Ko
Rsolution LAS/LU
lit_clavier
indfinie
LAS
affiche_cran
indfinie
LAS
lire_fichier
indfinie
LAS
crire_fichier
indfinie
LAS
Nom de lobjet
Commentaire
chercher_livre
adr_m_recherche_1 + 512 Ko
Rsolution LAS/LU
afficher
adr_m_affichage_1 + 652 Ko
Rsolution LAS/LU
rserver_livre
adr_m_recherche_2 + 512 Ko
Rsolution LAS/LU
lit_clavier
indfinie
LAS
affiche_cran
indfinie
LAS
lire_fichier
indfinie
LAS
crire_fichier
indfinie
LAS
57
58
module la_bibliothque;
taille (module) = 2 048 Ko
LU <crire_fichier, adr_m_bibliotheque_1>
LU <lire_fichier, adr_m_bibliotheque_2>
LU <affiche_cran, adr_m_bibliotheque_3>
LU <lit_clavier, adr_m_bibliotheque_4>
Et dautres LU correspondant aux autres fonctions prsentes
dans la bibliothque
code objet translatable des fonctions incluses dans la bibliothque
la taille en octets des fonctions est connue :
taille(crire_fichier) = 30 Ko
taille (lire_fichier) = 15 Ko
taille(affiche_cran) = 20 Ko
taille (lit_clavier) = 5 Ko
fin module;
lissue de la prise en compte de la bibliothque la_bibliothque, la carte dimplantation du programme est devenue :
LA_BIBLIOTHQUE.
Nom de lobjet
Commentaire
chercher_livre
adr_m_recherche_1 + 512 Ko
Rsolution LAS/LU
afficher
adr_m_affichage_1 + 652 Ko
Rsolution LAS/LU
rserver_livre
adr_m_recherche_2 + 512 Ko
Rsolution LAS/LU
lit_clavier
780 Ko
Rsolution LAS/LU
affiche_cran
785 Ko
Rsolution LAS/LU
lire_fichier
805 Ko
Rsolution LAS/LU
crire_fichier
820 Ko
Rsolution LAS/LU
On constate ici que toutes les entres de la table des liens sont rsolues.
3.3 Le chargement
59
nom de lien
Module B
<LAS nom de lien>
Module C
Module A
taille (B)
adresse
Figure 3.8
3.3
LE CHARGEMENT
60
Compilateur
Adresse dimplantation
en mmoire centrale
adr
chargeur
adresse
dimplantation
diteur de liens
0 adr
Programme relogeable
Excutable sur disque
Figure 3.9
3.3 Le chargement
61
DITION
DE LIENS DYNAMIQUE
Bibliothque math.lib
Fonction SQRT()
Module A
appel SQRT()
Fonction SQRT()
Module A
appel SQRT()
Module B
appel SQRT()
Module B
appel SQRT()
Fonction SQRT()
Figure 3.10
a
l u
i
e c
n h
a
r r
g
s e
o m
l e
u n
t
62
A contrario, rsoudre les liens vers les objets des bibliothques au moment du
chargement ralentit cette phase de la chane de production de programmes. On notera
par ailleurs que la rsolution des liens vers les bibliothques peut mme tre retarde
jusqu lexcution du programme et jusquau moment de lutilisation de lobjet non
rsolu. Dans ce cas, cest lexcution mme du programme qui est ralentie.
3.4
LUTILITAIRE MAKE
Le Make est un outil qui exploite les dpendances existantes entre les modules
entrant en jeu dans la construction dun programme excutable pour ne lancer que les
oprations de compilations et ditions de liens ncessaires, lorsque ce programme
excutable doit tre reconstruit suite une modification intervenue dans les modules
sources.
Exemple
Dans le programme suivant x.c, linclusion du fichier defs par lordre #include
"defs" cre une dpendance entre ces deux modules.
/* fichier x.c */
#include "defs"
main()
{
Prenons comme exemple le cas suivant : le programme excutable prog est construit partir dune tape ddition des liens prenant en compte les trois modules
objets x.o, y.o et z.o. Le module objet z.o est issu de la compilation dun programme
source z.c. Les modules x.o et y.o sont leur tour issus de la compilation respective
des modules source x.c et y.c. Ces deux derniers modules utilisent un module defs
63
excutable
y.o
x.o
objets
Compilation
x.c
defs
Figure 3.11
y.c
z.c
sources
La seconde et la troisime rgle stipulent que le fichier objet x.o (respectivement y.o)
dpend la fois du fichier x.c (respectivement y.c) et du fichier defs. Les fichiers
y.o ou x.o sont construits par compilation des fichiers.c correspondants.
Enfin, la dernire rgle spcifie que le fichier z.o dpend uniquement de la compilation du fichier z.c.
3.4.2 Fonctionnement de lutilitaire Make
Loutil Make utilise le fichier Makefile et les dates de dernires modifications des
modules pour dterminer si un module est jour. Un module est jour si : le module
existe et si sa date de dernire modification est plus rcente que les dates de dernire
modification de tous les modules dont il dpend ou bien elle est gale.
Si un module nest pas jour, la commande associe ses dpendances est excute
pour reconstruire le module.
Considrons par exemple que le module z.c soit modifi. Lutilitaire Make va
dtecter que ce module est devenu plus rcent que le module objet z.o. Il va donc
64
3.5
CONCLUSION
Chapitre 4
Le langage machine
et la reprsentation
des informations
4
La donne de base manipule par la machine physique est le bit (Binary Digit) qui
ne peut prendre que deux valeurs : 0 et 1. Au niveau physique, toutes les informations (nombres, caractres et instructions) ne peuvent donc tre reprsentes que par
une combinaison de 0 et 1, cest--dire sous forme dune chane binaire. Nous allons
tudier les principales conventions de reprsentations des informations concernant les
nombres signs, les nombres flottants et les caractres. Puis nous nous intresserons
plus particulirement au format des instructions composant le langage machine, et sa
forme symbolique, le langage dassemblage.
4.1
66
dune longueur de n bits, le bit ou Binary Digit, tant le plus petit lment manipulable par la machine ne pouvant prendre pour valeur que 0 ou 1. Une chane de 4 bits
est appele un quartet tandis quune chane de 8 bits est appele un octet. Le bit le
plus droite de la chane binaire est qualifi de bit de poids faible tandis que le bit le
plus gauche de la chane binaire est qualifi quant lui de bit de poids fort.
Il existe plusieurs normes ou conventions pour la reprsentation des informations
au niveau physique :
la reprsentation des nombres entiers signs peut se faire selon la norme de la
valeur signe ou selon la norme du complment 2. Un autre format de reprsentation existant est galement le codage DCB (Dcimal Cod Binaire);
la reprsentation des nombres flottants admet de nombreuses variantes. Nous prsentons uniquement la convention normalise par lorganisme IEEE connue sous le
nom de forme IEEE 754;
la reprsentation des caractres admet elle aussi de nombreuses variantes que sont
les codes ASCII, EBCDIC et UNICODE.
4.1.1 Numration binaire, octale et hexadcimale
Nous commenons par faire quelques rappels concernant la reprsentation des nombres
dans une base X. Dans le cadre de la reprsentation des informations au niveau de la
machine physique, la base utilise est, comme nous lavons dj voqu, la base 2
(systme binaire). Cependant, comme les chanes binaires ne sont pas aisment manipulables par lesprit humain, deux autres bases sont trs souvent utilises : la base 8
(systme octal) et la base 16 (systme hexadcimal).
Reprsentation dun nombre N en base X
d X avec n i m
i
Base 2 : chiffre 0 et 1.
Base 8 : chiffre 0, 1, 2, 3, 4, 5, 6, 7.
Base 16 : chiffre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
avec A = 1010, B = 1110, C = 1210, D = 1310, E = 1410, F = 1510.
67
base 10. En effet, ce mme nombre, de par les chiffres qui le composent, pourrait tout
fait tre un nombre exprim par exemple en base 16; sa valeur serait alors tout
fait diffrente et gale (1 163 + 9 162 + 7 161 + 5 160 + 5 16 1 + 7 16 2).
Conversion du nombre N exprim en base 10 vers une base X (2, 8, 16)
Conversion dun nombre entier
Il existe deux mthodes pour convertir un nombre entier N exprim en base 10 vers
une base X, avec X = 2, 8 ou 16 : la premire mthode est appele mthode des
divisions successives et la seconde mthode est appele mthode des soustractions
successives.
2
117
1
2
58
0
2
29
1
2
14
0
7
1
2
3
1
2
1
1
2
0
Figure 4.1
68
Exemple
Convertir 23510 en base 8 :
On sait que 80 = 1; 81 = 1; 82 = 64; 83 = 512.
235 64 = 171; 171 64 = 107; 107 64 = 43; 43 8 = 35; 35 8 = 27;
27 8 = 19; 19 8 = 11; 11 8 = 3; 3 1 = 2; 2 1 = 1; 1 1 = 0
do 23510 = 3 64 + 5 8 + 3 1 = 3538.
Conversion dun nombre fractionnaire
Exemples
Convertir 0,4510 en base 2 :
do 0,4510 = 0,011100112
Le dveloppement sarrte lorsque la prcision voulue est obtenue.
Convertir 0,4510 en base 16 :
0,45 16 = 7,20 = 7 + 0,2
0,20 16 = 3,2 = 3 + 0,2
do 0,4510 = 0,7316
Conversion du nombre N exprim en base X (2, 8, 16) vers la base 10
69
Exemple
010101102 = 0 20 + 1 21 + 1 22 + 0 23 + 1 24 + 0 25 + 1 26 + 0 27
= 2 + 4 + 16 + 64 = 8610
Conversion du nombre N exprim dans la base 8 ou 16 vers la base 2
(et vice versa)
Conversion de la base 8 vers la base 2 (et vice versa)
Les chiffres de la base 8 sont les chiffres allant de 0 7, soit un total de 8 chiffres. En
binaire, un ensemble de n bits permet de reprsenter 2n chiffres compris entre les
valeurs 0 et 2n 1. Aussi, pour reprsenter les 8 chiffres de la base 8 en binaire, il suffit
dun ensemble de 3 bits tels que : 0002 = 08 ; 0012 = 18 ; 0102 = 28 ; 0112 = 38 ; 1002 = 48 ;
1012 = 58 ; 1102 = 68 ; 1112 = 78.
Convertir un nombre N exprim en base 8 vers la base 2 seffectue en remplaant
simplement chacun des chiffres du nombre X en base 8 par leur quivalent binaire
sur 3 bits.
Convertir un nombre N exprim en base 2 vers la base 8 seffectue en dcoupant
la chane binaire N en paquet de 3 bits, depuis le bit de poids faible jusquau bit de
poids fort pour la partie entire et inversement pour la partie fractionnaire, et en
remplaant chaque paquet de 3 bits par leur quivalent dans la base 8.
Exemple
4528 = 100 101 0102 et 11 001 111,111 012 = 317,728
Exemple
45 A16 = 0100 0101 10102 et 1100 11112 = CF16
4.1.2 Reprsentation des nombres signs
La reprsentation dun nombre sign seffectue selon une chane binaire dune
longueur fixe n bits. On parlera ainsi dune reprsentation des nombres signs sur
8 bits, 16 bits ou 32 bits.
70
Exemple
Reprsentation de + 7710 sur 8 bits : 010011012.
Reprsentation de 7710 sur 8 bits : 110011012.
Les remarques suivantes peuvent tre faites propos de cette reprsentation :
deux reprsentations de la valeur 0 sont possibles, correspondant dune part un
zro positif (000000002 = (+ 0)10 sur 8 bits), dautre part un zro ngatif (100000002
= ( 0)10 sur 8 bits);
lintervalle des nombres signs reprsentables (tableau 4.1) est born en fonction
de la longueur de la chane binaire utilise pour la reprsentation. Ainsi, sur 8 bits,
lintervalle des nombres reprsentables est [111111112, 0111111112], soit lintervalle [12710, + 12710]. On notera donc ici que larithmtique des machines est
diffrente de celle de ltre humain puisque lintervalle des nombres nest plus
infini, mais dpend de la longueur des chanes de bits manipules par la machine;
la ralisation dune opration de type soustraction ncessite un circuit particulier
diffrent de celui permettant la ralisation des additions.
Tableau 4.1
Intervalle en base 10
8 bits
[ 127, + 127]
16 bits
[ 32 767, + 32 767]
32 bits
p bits
[ 2p 1 1, + 2p 1 1]
71
Convention du complment 2
Complment 2 dun nombre binaire N
Exemple
complment restreint
complment vrai
100010012
011101102
+
12
011101112
Convention du complment 2
Exemple
Reprsentation de + 7710 sur 8 bits : 010011012
Reprsentation de 7710 sur 8 bits : + 7710
010011012
complment restreint
101100102
+
12
7710
complment vrai
101100112
Le bit de poids fort bn 1 de la chane binaire bn 1 b0 peut tre galement interprt comme bit de signe. Ainsi :
si bn 1 = 0, alors la chane binaire bn 1 b0 reprsente un nombre positif + N
dont la valeur dcimale est donne directement par la conversion de la chane
depuis la base 2 vers la base 10;
si bn 1 = 1, alors la chane binaire bn 1 b0 reprsente un nombre ngatif N dont
la valeur dcimale est celle du nombre positif associ + N obtenu en complmentant 2 la chane bn 1 b0.
Exemple
La chane 001100112 code un nombre positif qui a la valeur :
+ (20 + 21 + 24 + 25)10 = + 5110
La chane 101100112 code un nombre ngatif dont la valeur est obtenue en prenant
son complment 2, soit :
+
101100112
010011002
12
010011012 = + (20 + 22 + 23 + 26)10 = + 7710
do 101100112 = 7710.
72
Intervalle en base 10
8 bits
[ 128, + 127]
16 bits
[ 32 768, + 32 767]
32 bits
p bits
[ 22p 1, + 2p 1 1]
Chaque chiffre du nombre N10 est cod par son quivalent binaire. Comme les chiffres de la base 10 admettent 10 valeurs diffrentes, le codage doit se raliser sur 4 bits.
Ainsi : 00002 = 010 ; 00012 = 110 ; 00102 = 210 ; 00112 = 310 ; 01002 = 410 ; 01012 = 510 ;
01102 = 610 ; 01112 = 710 ; 10002 = 810 ; 10012 = 910.
Le codage du signe peut suivre diffrentes conventions. La plus courante consiste
coder le signe + par la valeur 10112 et le signe par la valeur 11012.
Exemple
Reprsentation de + 7710 : 1011 0111 01112.
Reprsentation de 7710 : 1101 0111 01112.
Lun des inconvnients de ce codage est quil ne se prte pas directement aux oprations arithmtiques : en effet, laddition de deux valeurs dont la somme est comprise
entre 1010 et 1510 donne un code binaire sans signification. Aussi, lorsque la somme
de deux chiffres dcimaux est suprieure 910, la machine doit effectuer un ajustement dcimal, consistant ajouter la valeur + 610 la somme des deux chiffres.
Exemple
Ralisons lopration 8110 + 2210 :
1000 00012
+ 0010 00102
1010 00112
73
Le deuxime quartet 10102 a une valeur suprieure 910 qui est sans signification; la
valeur 01102 lui est ajoute.
1010 00112
+ 01102
1 0000 00112
Lors dune opration arithmtique effectue sur des nombres de p bits, un p + 1er bit
peut tre gnr. Ce bit supplmentaire de poids fort nest pas perdu et est mmoris
comme tant le bit de carry. Cette mmorisation seffectue dans un registre du
processeur appel registre dtat (PSW) qui comporte plusieurs indicateurs de 1 bit,
dont lun not C, est justement positionn par loccurrence dun carry lors dune
opration arithmtique.
Exemple
Sur 8 bits, nous effectuons laddition des nombres + 7210 et + 310 reprsents selon la
convention du complment 2 :
0100 10002
+ 0000 00112
0100 10112
Il ny a pas de carry.
Sur 8 bits, nous effectuons maintenant laddition des nombres + 12710 et 210
reprsents selon la convention du complment 2 :
0111 11112
+ 1111 11102
1 0111 11012
Lors dune opration arithmtique mettant en jeu des nombres de p bits et de mme
signe, le rsultat peut se rvler tre trop grand ou trop petit pour tre reprsentable
par la machine, cest--dire que ce rsultat est en dehors de lintervalle des nombres
reprsentables sur p bits par la convention choisie pour la reprsentation de ces
nombres signs. Le rsultat obtenu est alors erron au regard de son interprtation.
On parle alors doverflow ou de dpassement de capacit. linstar du carry,
loccurrence dun overflow est mmorise dans le registre dtat (PSW) du processeur par lintermdiaire dun indicateur de 1 bit not O.
74
Exemple
Sur 8 bits, nous effectuons laddition des nombres + 12710 et + 210 reprsents selon
la convention du complment 2 :
0111 11112
+ 0000 00102
1000 00012
Le rsultat obtenu est un nombre ngatif qui a pour valeur 12710 et non pas la
valeur attendue + 12910. Il y a dpassement de capacit; en effet, lintervalle des
nombres reprsentables sur 8 bits selon la convention du complment 2 est
[ 12710, + 12710].
4.1.3 Reprsentation des nombres flottants
Principe gnral
Un nombre est reprsent en virgule flottante dans la base X sil est mis sous la
forme : M1, M2 X c o M1, M2 est appel la mantisse du nombre, c est la caractristique ou exposant.
Un nombre reprsent en virgule flottante est normalis sil est sous la forme :
0,M X c o M est un nombre dont le premier chiffre est non nul.
Exemple
+ 59,4151 10 5 est normalis sous la forme + 0,594151 10 3.
Il sagit de reprsenter la mantisse et son signe, ainsi que lexposant et son signe.
Reprsentation de la mantisse et de son signe : 0,M
Seul le nombre M est reprsent, soit selon la convention de la valeur signe, soit
selon la convention du complment 2, soit en base 2 non signe.
Reprsentation de lexposant et de son signe : c
La reprsentation des nombres flottants pour les architectures IBM 370 (figure 4.2)
admet trois formats : un format court sur 32 bits, un format long sur 64 bits et un format
tendu sur 128 bits. Le nombre flottant est normalis sous la forme 0,M16 16c.
Chacun des trois formats adopte la codification suivante :
75
le signe de la mantisse est cod sur le premier bit de loctet de poids fort. Ce bit
vaut 0 si la mantisse est positive, 1 si elle est ngative;
les 7 bits restants de loctet de poids fort codent la caractristique c. Cest une
puissance de 16 code en interne avec un excentrement gal 6410 ;
les bits restants codent la mantisse, cest--dire le nombre M exprim en base 16.
Lintervalle des nombres pouvant tre reprsents dans ce format est lintervalle
[16 64, 16+ 63].
0 + puissance de 16
1 excdent 6410
S
M en base 16
32 bits
Figure 4.2
24 bits
Exemple
Reprsentons le nombre 10,12510 selon le format court sur 32 bits.
10,12510 = 1010,0012 = A,216 = 0,A2 161
Lexposant c = 1 est translat de la valeur 64. c = 6510 = 010000012.
Le signe de la mantisse est ngatif et vaut donc 1.
Le codage donne donc la chane binaire :
1 01000001 101000100000000000000002 = A0D1000016
La norme IEEE 754
Format normalis dun nombre
La norme IEEE 754 dfinit un format standardis qui vise unifier la reprsentation
des nombres flottants, qui est trs diverse selon les constructeurs.
Cette norme propose deux formats de reprsentation : un format simple prcision
sur 32 bits et un format double prcision sur 64 bits (figure 4.3).
0 + puissance de 2
1 excdent 12710
S
23 bits
32 bits
Simple prcision
0 + puissance de 2
1 excdent 102310
S
11
Double prcision
76
Exemple
Reprsentons le nombre 10,12510 selon le format IEEE 754 simple prcision.
10,12510 = 1010,0012 = 1,0100012 23
Lexposant c = 3 est translat de la valeur 127.
c = 13010 = 100000102
Le signe de la mantisse est ngatif et vaut donc 1.
Le codage donne donc la chane binaire :
1 10000010 010001000000000000000002 = C122000016
Reprsentation du zro, des infinis, reprsentations dnormalises
En dehors du format normalis, le norme IEEE admet des codages spciaux pour la
reprsentation de la valeur 0, des valeurs + et , ainsi que des reprsentations
dnormalises (tableau 4.3) :
reprsentation du zro : la valeur 0 est reprsente avec un exposant c = 12710 et
une mantisse M = 0. Le signe S est quelconque; il y a donc existence dun zro
positif et dun zro ngatif;
reprsentation de + et : les valeurs + et sont reprsentes avec un
exposant c = + 12810 et une mantisse M = 0. Le signe S est fonction de linfini
reprsent;
reprsentation dnormalise : la reprsentation dnormalise permet de reprsenter
des nombres plus petits que ceux admis par le format IEEE normalis. Dans ce
cas, les nombres dnormaliss sont reprsents avec un exposant c = 12710 et
une mantisse sous la forme 0,M 2 c. Par ailleurs, la norme admet galement la
reprsentation de codes permettant la signalisation derreurs (par exemple, rsultat
dune division par 0). Ce sont les NaNs (Not a Number) cods avec un exposant
c = + 12810 et une mantisse M non nulle.
Tableau 4.3
77
Format
Valeurs reprsentes
2 126 2128
c = 127, M = 0, S = + ou
+ 0 ou 0
c = + 128, M = 0, S = + ou
+ ou
c = 127, M 0, S = + ou
dnormalis
c = + 128, M 0, S = + ou
NaNs
Le code ASCII
Figure 4.4
78
Figure 4.5
Le code UNICODE
79
Figure 4.6
4.2
Une instruction (figure 4.7) dsigne un ordre donn au processeur et qui permet
celui-ci de raliser un traitement lmentaire. Linstruction machine est une chane
binaire de p bits compose principalement de deux parties :
le champ code opration compos de m bits : il indique au processeur le type de
traitement raliser (addition, lecture dune case mmoire, etc.). Un code oprap bits
adresse
Code opration
80
81
Exemple
code opration mode adressage immdiat
code opration
code opration
code opration
Figure 4.8
64
128
128
Modes dadressages.
82
Lorsque loprande est une valeur immdiate, le mode dadressage associ loprande
est le mode dadressage immdiat. Linformation complmentaire est loprande luimme (figure 4.8).
Lorsque loprande est contenu dans un registre, alors le mode dadressage associ
est un mode dadressage registre ou implicite. Linformation complmentaire est le
numro du registre qui contient loprande.
Lorsque loprande est un mot mmoire, lun des modes dadressage associs peuttre le mode dadressage direct. Dans ce cas, linformation complmentaire dsigne
ladresse du mot mmoire contenant loprande concern par lopration. Un autre
mode dadressage associ peut tre le mode dadressage indirect. Dans ce cas, linformation complmentaire dsigne galement ladresse dun mot mmoire, mais ce mot
mmoire contient lui-mme une adresse qui est ladresse du mot mmoire contenant
loprande concern par lopration.
4.2.3 Un exemple
Imaginons une machine qui admet des instructions sur 32 bits de type registre/mmoire.
Le format dune instruction est donn par la figure 4.9.
COP
0
reg1
8
Figure 4.9
reg2
12
champ2
16
31
Ce format comprend :
COP est le Code OPration cod sur 5 bits;
m est le mode dadressage cod sur 3 bits;
reg1 et reg2 codent un numro de registre sur 4 bits (de 00002 11112);
champ2 est une valeur immdiate, une adresse mmoire ou un dplacement cod
sur 16 bits.
Le code opration est une chane de 5 bits ce qui permet de coder 32 oprations
diffrentes. Le tableau 4.4 donne quelques codes oprations :
83
Tableau 4.4
Nature de lopration
Code binaire
00000
00001
addition
00101
complment 2
00110
et logique
01000
ou logique
01001
01100
Le champ m code le mode dadressage utilis vis--vis des oprandes. m tant cod
sur 3 bits, il autorise 8 modes dadressage diffrents. Le tableau 4.5 donne lexemple
de quelques modes dadressage.
Tableau 4.5
Mode dadressage
Valeur
immdiat
m = 000
direct
m = 001
indirect
m = 011
Pour les valeurs de m comprises entre 0 et 5, le code opration travaille sur deux
oprandes; le premier est un registre dont le numro est cod par le champ reg1; le
deuxime est soit une valeur immdiate, soit une adresse dduite de champ2 et m.
Les valeurs m = 110 et m = 111 sont utilises pour les oprations sur des registres :
110 : la valeur champ2 ainsi que celle du champ reg2 ne sont pas significatives; le
code opration travaille sur un seul oprande, le registre reg1;
111 : le code opration travaille sur deux registres reg1 et reg2. La valeur champ2
nest pas significative.
Les valeurs des champs reg
Les valeurs reg(1ou2) = 0000 1111 codent les numros de registres du processeur.
84
Prenons deux exemples dinstructions machine dans le contexte que nous venons de
dfinir :
COP
m
00101 000
reg1 reg2
champ2
0000 xxxx 00000000000001000
reg1 reg2
champ2
0000 xxxx 00000000000100000
4.3
signification
contenu de R1
R1 0
R1 R1 + 1
(0)16 R1
816
85
Pour pouvoir tre excut par la machine, le programme crit en langage dassemblage doit tre traduit en langage machine. Cette traduction est effectue par un outil
appel lassembleur.
4.3.1 Format dune instruction du langage dassemblage
Une instruction du langage dassemblage est compose de champs, spars par un
ou plusieurs espaces. On identifie un champ tiquette, un champ code opration, un
champ oprandes pouvant effectivement comporter plusieurs oprandes spars par
des virgules et un champ commentaires (figure 4.10).
Nous allons tudier plus en dtail le format des instructions du langage dassemblage
et la composition du langage dassemblage en considrant que ce langage dassemblage est celui associ au langage machine de lexemple prcdent.
tiquette
Code opration
Oprandes
Commentaires
boucle :
ADD
rg2
Addition
R0, R1
Codes oprations
Le code opration est une chane de caractres mnmonique du code opration binaire.
Le tableau 4.6 donne lexemple de quelques mnmoniques.
Tableau 4.6
Nature de lopration
Code binaire
LOAD
00000
STORE
00001
addition
ADD
00101
complment 2
CP2
00110
et logique
ET
01000
ou logique
OU
01001
JMP
01100
Les tiquettes
Une tiquette est une chane de caractres permettant de nommer une instruction ou
une variable. Une tiquette correspond une adresse dans le programme, soit celle
de linstruction, soit celle de la variable.
86
Exemple
Ltiquette boucle remplace ladresse binaire de linstruction ADD Rg2 R1, R0 :
boucle : ADD Rg2 R1, R0
ADD Rg2 R1, R3
JMP Im boucle
Mode
dadressage
Mnmonique
Valeur
binaire
immdiat
Im
m = 000
direct
m = 001
indirect
m = 011
registre seul
Rg1
m = 110
deux registres
Rg2
m = 111
Les directives
Les directives sont des pseudo-instructions : elles ne correspondent aucune instruction machine; ce sont des ordres destins au traducteur assembleur.
Les directives servent notamment la dfinition des variables : ainsi la directive DS n
permet de rserver n mots mmoire pour une variable. Associer une tiquette une
dclaration de variable permet ensuite daccder cette donne par le biais dun nom
symbolique (en loccurrence ltiquette). De mme, la directive DC n permet de dclarer
une constante prenant la valeur n. La directive STOP indique la fin dun programme.
87
Exemple
vecteur : DS 50 dfinition de la variable vecteur et rservation de 50 mots
un : DC 1 dfinition dune constante nomme un ayant pour valeur 1
Exemple
JMP boucle
boucle :
88
Exemple
On considre le programme en langage dassemblage suivant qui correspond au
programme machine vu prcdemment :
var : DS 1 dfinition de la variable var et rservation dun mot mmoire
un : DC 1 dfinition de la constante 1 nomme un
LOAD Im R1, 0
boucle :
ADD Im R1, un
STORE D R1, var
JMP boucle
STOP
var
un
boucle
Exemple
Le programme en langage dassemblage suivant :
var : DS 1 dfinition de la variable var et rservation dun mot mmoire
un : DC 1 dfinition de la constante 1 nomme un
LOAD Im R1, 0
boucle :
ADD Im R1, un
STORE D R1, var
JMP D boucle
STOP
4.4 Conclusion
89
4.4
CONCLUSION
Ce chapitre nous a permis dtudier les diffrentes normes de codage existantes pour
reprsenter au sein de lordinateur les diffrentes informations manipules par celui-ci.
Ce sont :
les donnes qui peuvent tre des nombres signs, des nombres flottants et des
caractres;
les instructions machine composes dun code opration qui spcifie la nature de
lopration raliser et doprandes qui spcifient les donnes sur lesquelles lopration doit tre effectue. Les oprandes sont dcrits selon un mode dadressage qui
permet dindiquer la nature de loprande et la faon de le trouver.
Chapitre 5
La donne de base manipule par la machine physique est le bit (binary digit) qui ne
peut prendre que deux valeurs : 0 et 1. Ces 0 et 1 correspondent aux deux niveaux de
voltage (0-1 et 2-5 volts) admis pour les signaux lectriques issus des composants
lectroniques (transistors) qui constituent les circuits physiques de la machine. Ces
circuits physiques sont construits partir de circuits logiques, cest--dire de circuits
intgrs spcialiss, destins raliser une opration boolenne.
5.1
5.1.1 Dfinition
Un circuit logique est un circuit intgr spcialis destin raliser une opration
boolenne. Pour un tel circuit, on fait correspondre aux signaux lectriques existants
en entre et en sortie, un tat logique valant 0 ou 1. Ltat 0, correspondant la
prsence dune tension gale ou infrieure au tiers environ de la tension dalimentation, correspond ltat bas tandis que ltat 1, correspondant la prsence dune
tension gale ou suprieure aux deux tiers environ de la tension dalimentation1, est
appel ltat haut2.
1. Les plages des tensions correspondant aux deux tats dpendent de la technologie utilise pour
la ralisation des circuits (TTL, CMOS, etc.).
2. Dans le cas de la logique dite positive. Dans le cas de la logique ngative, la valeur 1 est attribue ltat bas et la valeur 0 est attribue ltat haut.
91
Une variable boolenne ou variable logique est une variable dont la valeur appartient
lensemble {0, 1}.
Une fonction logique de n variables dfinies dans le rfrentiel E, note f (an,
an 1, , a0), est une fonction dfinissant toute partie du rfrentiel E par la combinaison des variables (an, an 1, , a0), au moyen des oprations somme logique,
produit logique et complmentation.
Somme logique
et A A = 0.
Exemple
92
Exemple
La fonction NON est une fonction une variable a qui fait correspondre celle-ci,
son complment a. Elle est galement appele inverseur. Sa table de vrit est
(tableau 5.2) :
Tableau 5.2
NON
Figure 5.1
Circuit NON.
f(a, b) = a b + a b + a b
= a (b + b) + a b
= a +ab
= a + b (loi dabsorption)
Tableau 5.3
93
OU
a
a+b
b
Figure 5.2
Circuit OU.
La fonction ET est une fonction deux variables a et b qui fait correspondre celles-ci,
le produit logique de a et b, soit a b. Sa table de vrit est (tableau 5.4) :
Tableau 5.4
ET
a
ab
b
Figure 5.3
Circuit ET.
La fonction OU exclusif est une fonction deux variables a et b qui fait correspondre
celles-ci, une sortie 1 si les valeurs des deux variables sont diffrentes. Elle est
note a b. Sa table de vrit est (tableau 5.5) :
Tableau 5.5
Dunod La photocopie non autorise est un dlit.
DE LA FONCTION
TABLE DE VRIT
XOR(A, B) = A B.
XOR
f(a, b) = a b + a b = a b
Et la figure 5.4 donne le circuit associ.
a
a+b
b
Figure 5.4
Circuit XOR.
94
TABLE DE VRIT
a0
b0
c0
r0
a0
c0 = a 0 + b 0
b0
r0 = a 0 b 0
Figure 5.5
Circuit additionneur
de poids faible.
Il en dcoule : c 0 = a 0 b0 + a 0 b0 = a 0 b0 et r0 = a 0 b0 .
Le circuit logique associ est donc form dune porte XOR et dune porte ET
(figure 5.5). Comme ce circuit ne tient pas compte dune retenue propage depuis le
rang infrieur, il est qualifi de demi-additionneur.
Additionneur 1 bit pour les bits de poids fort ai et bi
Laddition des bits de poids fort ai et bi doit tre faite en tenant compte de la retenue
ri 1 propage depuis le rang i 1 infrieur. Cette addition dlivre deux rsultats : le
bit rsultat ci et la retenue propage vers le rang suprieur ri.
ri
ri 1
ai +1
ai
ai 1
+ bi + 1
bi
bi 1
rsultat c i
95
ai
bi
ri 1
ci
ri
ri 1
ai
ci
bi
ri
Figure 5.6
Il en dcoule :
c i = a i b i ri 1 + a i b i ri 1 + a i b i ri 1 + a i b i ri 1
= ri 1 (a i b i + a i b i ) + ri 1 (a i b i + a i b i )
= ri 1 (a i b i ) + ri 1 (a i b i )
= ai bi ri1
ri = a i b i ri 1 + a i b i ri 1 + a i b i ri 1 + a i b i ri 1
= ri 1 (a i b i + a i b i ) + a i b i (ri 1 + ri 1 )
= ri 1 (a i b i ) + a i b i
96
a2 b2
r3
a1 b1
r2
a0 b0
r1
c3
r0
c2
Figure 5.7
c1
c0
Additionneur 4 bits.
Indicateur de carry
Nous avons vu au chapitre prcdent que lors dune opration arithmtique effectue
sur des nombres de n bits, un n + 1e bit, appel bit de carry, peut tre gnr. Ce bit
de carry, mmoris par lindicateur C du registre dtat du processeur, le PSW,
correspond tout simplement au niveau de ladditionneur n bits, une retenue rn 1
gale 1 pour ladditionneur complet 1 bit de plus haut niveau (figure 5.8).
a3 b 3
r3
a2 b2
r2
c3
a1 b1
r1
c2
a0 b0
r0
c1
c0
Registre dtat
Figure 5.8
Indicateur doverflow
De mme, nous avons vu au chapitre prcdent que lors dune opration arithmtique mettant en jeu des nombres de n bits et de mme signe, le rsultat peut tre en
dehors de lintervalle des nombres reprsentables sur n bits par la convention choisie
97
pour la reprsentation de ces nombres signs. Ce dpassement de capacit est mmoris dans le registre dtat du processeur, le PSW, par lintermdiaire dun indicateur
de 1 bit not O.
Un dpassement de capacit ne peut se produire que lors de laddition de deux
nombres de mme signe, cest--dire soit deux nombres positifs, soit deux nombres
ngatifs. Examinons ce que cela signifie en considrant que lopration A + B = C
est effectue :
Cas 1 : deux nombres positifs, alors on a an 1 = bn 1 = 0.
Il se produit un overflow si le rsultat de laddition est ngatif, cest--dire si on a
cn 1 = 1.
On a : an 1 = bn 1 = 0 = > an 1 + bn 1 = 0 = > rn 1 = 0; do cn 1 ne peut tre gal
1 que si rn 2 = 1; on peut noter que rn 2 rn 1.
Cas 2 : deux nombres ngatifs, alors on a an 1 = bn 1 = 1.
Il se produit un overflow si le rsultat de laddition est positif, cest--dire si on a
cn 1 = 0.
On a : an 1 = bn 1 = 1 = > rn 1 = 1; do cn 1 ne peut tre gal 0 que si rn 2 = 0;
on peut noter que rn 2 rn 1.
prsent, observons quelle est la relation existante entre rn 2 et rn 1 si les deux
nombres additionner sont de signes diffrents, cest--dire si on a an 1 bn 1.
Si an 1 bn 1, alors an 1 + bn 1 = 1.
Si rn 2 = 1, cn 1 = 0 et rn 1 = 1.
Si rn 2 = 0, cn 1 = 1 et rn 1 = 0.
On peut noter que rn 2 = rn 1.
Conclusion : un overflow peut tre dtect en effectuant un test de comparaison
entre rn 2 et rn 1. Il y a overflow si rn 2 rn 1.
Regardons prsent quel circuit peut traduire cette condition. La table de vrit
associe rn 2 rn 1 est (tableau 5.8) :
Tableau 5.8
TABLE DE VRIT
O.
rn 1
rn 2
98
Registre dtat
a3 b 3
r3
a 2 b2
r2
c3
a1 b1
a0 b 0
r1
c2
r0
c1
c0
O
Figure 5.9
Indicateur doverflow.
Multiplexeur
S = a si c = 0
S = b si c = 1
c
a
S1
S2
Dmultiplexeur
S1 = a si c = 1
S2 = a si c = 0
c
Figure 5.10
99
S0
S1
S2
S3
Figure 5.11
Considrons le circuit de la figure 5.12. Une particularit de ce circuit qui le diffrencie des circuits combinatoires prcdents est que la sortie S du circuit est rinjecte lentre du circuit. On parle de rtroaction. Ltat de sortie du circuit va
donc tre influenc par ltat antrieur.
x2
x1
Figure 5.12
Un circuit squentiel.
100
x1
x2
Bascule D
D
S
CLK (horloge)
CLK (horloge)
Q=D
R
0
0
1
1
Bascule JK
J
K
CLK (horloge)
J
0
0
1
1
K
0
1
0
1
Figure 5.13
Q
Q
0
1
Q
Bascules lmentaires.
S
0
1
0
1
Q
Q
0
1
interdit
101
Bascule D
Cette bascule enregistre sur sa sortie Q la donne prsente sur son entre D, chaque
top horloge.
Bascule RS
Cette bascule possde galement deux entres de donnes J et K. Elle a un fonctionnement identique la bascule RS la diffrence prs que ltat (J = 1, K = 1) est
autoris et conduit linversion de ltat de la bascule.
Principe de ralisation dun registre
E2
E3
bascule
1 bit
bascule
1 bit
E5
E4
bascule
1 bit
bascule
1 bit
bascule
1 bit
RAZ
CLK
S1
S2
Figure 5.14
S3
S4
S5
Un registre de 5 bits.
102
Les transistors, quelle que soit la technologie mise en uvre, sont composs par un
assemblage de zones de silicium de type N avec des zones de silicium de type P. On
distingue principalement deux familles de transistors :
la famille TTL (Transistor, Transistor Logic) conue base de transistors bipolaires;
la famille MOS (Metal Oxyde Semi-conductor) conue base de transistors unipolaires MOS.
1. Dans le cas de l logique positive. Lassociation inverse est ralise dans le cadre de la logique ngative.
103
Un transistor bipolaire (figure 5.15) est constitu dun empilement de trois couches
de semi-conducteur, la premire appele lmetteur dope N, la seconde appele la
base dope P et la troisime dnomme le collecteur dope N1.
Ic
N
Collecteur
Base
metteur
Ie
Figure 5.15
Transistor bipolaire.
Ib
E
Sans tension lectrique applique la base, les lectrons de lmetteur sont bloqus
par la barrire de potentiel induite entre les rgions N et P : le transistor est bloqu.
Au contraire, si une tension positive est applique la base, alors la barrire de
potentiel sefface et les lectrons excdentaires de lmetteur transitent vers la zone
collecteur : le transistor est devenu passant (satur).
La technologie TTL base sur ce type de transistors permet des vitesses de fonctionnement leves des portes logiques, au prix cependant dune consommation de
courant relativement importante.
Les transistors unipolaires
Le transistor unipolaire (figure 5.16) est constitu dune zone de silicium dope P (le
substrat), dans laquelle sont implantes deux zones de dopage inverse N, qui constituent la source et le drain2. La rgion intermdiaire la source et au drain est recouverte dune couche isolante de bioxyde de silicium (silice) dans laquelle est insre
une lectrode appele la grille.
Grille G
Dunod La photocopie non autorise est un dlit.
Source S
Drain D
Drain D
Silice
N
Grille G
Substrat P
Figure 5.16
Source S
Transistor unipolaire.
1. Ceci dans le cas dun transistor NPN. On trouve galement des transistors PNP, pour lesquels
lmetteur et le collecteur sont des zones dopes P et la base est une zone dope N.
2. Ceci dans le cas dun transistor canal N. Il existe galement des transistors unipolaires
canal P pour lesquels la source et le drain sont des zones dopes P.
104
Lorsquune tension nulle ou ngative est applique la grille, les lectrons sont
chasss de la surface du substrat ce qui isole lectriquement la source et le drain : le
transistor est bloqu. Au contraire, lorsquune tension positive est applique la
grille, les lectrons du substrat viennent saccumuler la surface, ralisant un canal
dlectrons entre la source et le drain : le transistor est devenu passant.
La technologie MOS consomme moins de courant que la technologie TTL, mais
elle est plus lente que cette dernire. Cette technologie est elle-mme divise en trois
familles :
la technologie PMOS qui ne met en jeu que des transistors MOS canal P;
la technologie NMOS qui ne met en jeu que des transistors MOS canal N, plus
rapide que la prcdente;
la technologie CMOS qui ne met en jeu la fois des transistors MOS canal P et
des transistors MOS canal N. Les circuits rsultants sont peu gourmands en
lectricit. Cest la technologie la plus utilise lheure actuelle.
Un exemple : ralisation dune porte inverseur
Considrons le circuit de la figure 5.17. Dans ce montage, le transistor MOS est charg,
par le drain, avec une impdance de + 5 volts1. La source est par ailleurs relie la
masse (0 volt).
+5V
Charge
Commande
0 V ou + 5 V
Grille G
Drain D
Sortie
Source S
Masse 0 V
Figure 5.17
Une tension nulle est applique la grille : le transistor est donc bloqu. Il se
comporte comme un circuit ouvert. En consquence, la tension sur la porte de sortie
est celle de limpdance de charge, soit + 5 volts.
Une tension de + 5 volts est maintenant applique la grille : le transistor devient
passant. Il se comporte comme un court-circuit. En consquence, la tension sur la
porte de sortie est celle de la masse, soit + 0 volt.
On voit donc ici que ce montage quivaut une porte inverseur.
1. Sur les processeurs pentium, la tension dalimentation des transistors est ramene 3,3 volts.
105
Les transistors, quelle que soit la technologie mise en uvre, sont donc composs
par un assemblage de zones de silicium de type N avec des zones de silicium de type
P. Leur fabrication consiste donc implanter de faon plus ou moins complexe ces
diffrentes zones des endroits trs prcis.
Cette fabrication met en uvre un procd particulier appel microlithographie
optique ou encore photolithographie qui permet de transfrer limage dune plaque
permanente appele le masque sur une rondelle de semi-conducteur appele wafer.
Le masque est usuellement une plaquette de quartz sur laquelle ont t dessins
grce un logiciel de dessin assist par ordinateur, les circuits du microprocesseur.
Le transfert du dessin seffectue travers le masque en illuminant par des rayons
ultraviolets une rsine photosensible qui recouvre le wafer. La rsine expose est
soluble par un solvant, ce qui permet aprs lillumination de dcaper les parties
exposes pour ne laisser sur la wafer que lempreinte des circuits base de silice.
Plus prcisment, les tapes suivantes permettent la cration en parallle de plusieurs
transistors :
la rondelle de silicium qui est dope de type P ou N est enduite dune couche de
bioxyde de silicium (silice), puis de rsine photosensible;
la rondelle de silicium est soumise un rayonnement ultraviolet travers un
masque. La partie de rsine expose la lumire est ensuite limine grce un
solvant, ce qui permet de dcouvrir le dessin des circuits grav sur la silice. La silice
expose est son tour dtruite chimiquement, puis la couche restante de rsine qui
navait pas t expose est dtruite. Il reste donc sur la rondelle de silicium,
lempreinte des circuits base de silice;
une nouvelle couche de silice appele oxyde de grille est nouveau dpose sur la
rondelle, puis recouverte dune couche conductrice de polysilicium et dune
nouvelle couche de rsine. Un nouveau masque est appliqu, qui correspond la
cration de la grille du transistor. Le mtal et loxyde sont attaqus comme prcdemment, ce qui dnude des zones de silicium de part et dautre de la grille cre;
la plaquette de silicium est maintenant soumise un processus de dopage en vue
de la cration du drain et de la source;
enfin, la rondelle est enduite dune couche mtallique visant mettre en contact
les diffrentes parties du transistor et les diffrents transistors entre eux. Un troisime masque est appliqu, puis les parties mtalliques inutiles sont dtruites;
chaque circuit ou puce ainsi ralis est ensuite test puis encapsul dans un botier
rectangulaire en plastique ou en cramique, sur lequel des broches rparties de part
et dautre, permettent dassurer les connexions lectriques de la puce interne. Cette
encapsulation est connue sous le nom de botier DIL ou DIP (Dual Inline Package).
Les botiers PGA (Pin Grid Array) sont quant eux des botiers carrs disposant
de connexions rparties sur les quatre cts (figure 5.18).
Toutes les tapes de cette fabrication sont ralises dans des usines spciales
qualifies de salles blanches dont les particularits sont dune part dtre appauvries
en lumire dans le spectre des bleus et des violets afin de ne pas interfrer avec le
106
Figure 5.18
Botier PGA.
Niveaux dintgration
5.2
LE FUTUR
La densit des transistors prsents sur une puce actuelle est peu prs 1 500 fois
suprieures ce quelle tait au moment de leur invention, dans les annes 1970.
Cette densit, suivant la loi de Moore, augmente de 50 % tous les deux ans.
5.2 Le futur
107
Loi de Moore
La loi de Moore est une loi propose en 1965 par Gordon Moore, cofondateur
dIntel, et dcrivant le taux de croissance du nombre de transistors par unit
de surface, compte tenu des progrs technologiques. Cette loi prvoit un doublement du nombre de transistors sur une mme surface tous les deux ans.
Chapitre 6
Exercices corrigs
PRODUCTION DE PROGRAMMES
6.1
Compilation
6 Production de programmes
109
110
6 Exercices corrigs
6 Production de programmes
111
Utilitaire Make
mod1.o
proc.h
Figure 6.1
mod1.c
mod2.o
const.h
mod2.c
mod3.o
mod3.c
variable.h
Compilation
112
6 Exercices corrigs
Entourez les units lexicales reconnues. Signalez les ventuelles erreurs lexicales
rencontres ce niveau.
3. Pour chaque phrase du programme donne ci-dessous, donnez larbre syntaxique
correspondant. Signalez les ventuelles erreurs syntaxiques rencontres ce niveau.
Phrase
Phrase
Phrase
Phrase
1
2
3
4
A
B
A
B
: REEL := 3,2;
: ENTIER := 3,2;
:= A + 5,1;
:= B * 61,
Conversions
1. On considre une reprsentation des nombres signs sur 16 bits. Donnez la reprsentation interne de :
+ 1 03210 en valeur signe, en complment 2, puis en DCB.
72110 en valeur signe, en complment 2, puis en DCB.
2. On considre une reprsentation des nombres signs sur 16 bits. Donnez la valeur
dcimale des chanes binaires suivantes, en considrant successivement quil sagit
dune reprsentation en valeur signe, en complment 2, puis en DCB :
0101 0000 1100 11012
1010 0001 0011 00112
6 Langage machine
6.7
113
1. On considre une reprsentation des nombres flottants selon la norme IEEE 754
simple prcision. Quelle est la reprsentation interne des nombres suivants ?
Exprimez le rsultat final en base 16.
+ 1 432,4510
721,2510
2. On considre une reprsentation des nombres flottants selon la norme IEEE 754
simple prcision. Quelle est la valeur dcimale des reprsentations internes suivantes ?
C657000016
42EF910016
6.8
Synthse
LANGAGE MACHINE
Dans la srie dexercices qui suit, nous utilisons le langage machine dun processeur
virtuel que nous spcifions maintenant.
Les registres de lunit centrale sont des registres de 32 bits.
On distingue :
un compteur ordinal CO, qui contient ladresse de la prochaine instruction
excuter;
un registre instruction RI, qui contient linstruction couramment excute;
4 registres gnraux : de R0 R3;
1 registre spcialis pour ladressage : RB, le registre de base;
1 registre Pointeur de pile : RSP;
les registres RAD et RDO;
1 registre dtat, PSW, qui contient notamment les indicateurs suivants :
O : positionn 1 si overflow, 0 sinon;
Z : positionn 1 si rsultat opration nul, 0 sinon;
C : positionn 1 si carry, 0 sinon;
S : positionn 0 si rsultat opration positif, 1 sinon;
I : masquage des interruptions : positionn 1 si interruption masque, 0 sinon.
Lunit centrale contient galement une Unit Arithmtique et Logique.
La machine admet des instructions sur 32 bits, selon le format suivant :
un code opration cod sur 8 bits;
un mode dadressage m cod sur 4 bits;
114
6 Exercices corrigs
un champ reg sur 4 bits code un numro de registre (de 0000 1111);
un champ X sur 16 bits code une valeur immdiate, une adresse mmoire, un
dplacement ou un numro de registre.
La machine supporte les modes dadressage mmoire suivants :
Mode
Signification
Mnmonique
Valeur binaire
Immdiat
Im
m = 0000
Direct
Oprande = [adresse]
m = 0001
Indirect
Oprande = [[adresse]]
m = 0010
Bas
m = 0011
Pour les valeurs de m comprises entre 0 et 3, le code opration travaille sur deux
oprandes : le premier est un registre dont le numro est cod par le champ reg; le
second est soit une valeur immdiate, soit une adresse dduite de X et m.
Les valeurs m = 0100 et m = 0101 sont utilises pour les oprations sur des
registres :
0100 (Rg1) : le code opration travaille sur un seul oprande registre reg;
0101 (Rg2) : le code opration travaille sur deux registres, lun cod dans le champ
reg, lautre dans le champ X.
La valeur reg allant de 0000 0011 code les numros de registres gnraux R0 R3.
Les autres valeurs sont rserves pour coder les autres registres du processeur.
Ainsi :
reg = 1110 dsigne le registre RB;
reg = 1111 dsigne la registre PSW.
Ces valeurs de registres sont galement utilises dans le champ X avec un mode
dadressage Rg2.
Le jeu dinstructions du processeur comporte les instructions suivantes :
Les instructions de transfert de donnes
Transfert dun mot mmoire vers un registre banalis
LOAD m reg X
m = B, D, I, Im
Exemples
LOAD D R1 (000A)16 : chargement du registre R1 avec la case mmoire dadresse
(000A)16 adresse en mode direct.
LOAD Im R1 (000A)16 : chargement du registre R1 avec la valeur immdiate (000A)16.
6 Langage machine
115
m = B, D, I
Exemple
STORE D R1 (000A)16 : criture du contenu du registre R1 dans la case mmoire dadresse
(000A)16 adresse en mode direct.
Les instructions de traitement des donnes
ADD m reg X
m = B, D, I, Rg2, Im
X est soit une valeur immdiate,
soit une adresse mmoire,
soit un dplacement, soit un numro
de registre.
MUL m reg X
m = B, D, I, Rg2, Im
X est soit une valeur immdiate,
soit une adresse mmoire,
soit un dplacement, soit un numro
de registre.
Exemple
ADD Im R0 (000A)16 : addition de la valeur immdiate (000A)16 avec le contenu du
registre R0 et stockage du rsultat dans R0.
Fonctions boolennes
AND m reg X
OR m reg X
XOR m reg X
NOT Rg1 reg
m = B, D, I, Rg2, Im
X est soit une valeur immdiate, soit
une adresse mmoire, soit un dplacement, soit un numro de registre.
Exemple
AND Im R0 (000A)16 : ET logique entre la valeur immdiate (000A)16 et le contenu du
registre R0 et stockage du rsultat dans R0.
116
6 Exercices corrigs
Ces instructions permettent deffectuer des sauts dans le code dun programme, vers
une instruction donne. Il existe deux types de sauts : les sauts inconditionnels qui
sont toujours raliss et les sauts conditionnels qui ne sont effectus que si une
condition est vraie au moment o linstruction est excute par le processeur.
Sauts inconditionnels
Cette instruction permet un branchement une adresse donne et ceci inconditionnellement. Le saut est donc toujours effectu.
JMP X
Exemple
JMP (12CF)16 : saut l'adresse (12CF)16.
Sauts conditionnels
JMPP X
Saut si positif.
X est une adresse.
Les champs reg et m sont
sans signification.
JMPN X
Saut si ngatif.
X est une adresse.
Les champs reg et m sont
sans signification.
JMPO X
Saut si overflow.
X est une adresse.
Les champs reg et m sont
sans signification.
JMPC X
Saut si carry.
X est une adresse.
Les champs reg et m sont
sans signification.
JMPZ X
Saut si zro.
X est une adresse.
Les champs reg et m sont
sans signification.
6 Langage machine
117
6.9
Contenu
Registre
Contenu
400
2000
RB
100
404
412
408
412
3000
416
305
Code assembleur :
Dunod La photocopie non autorise est un dlit.
LOAD D R0 400
LOAD Im R1 1002
ADD Rg2 R0 R1
NEG Rg1 R1
ADD I R1 404
STORE B R1 900
6.10
Programme assembleur
118
6 Exercices corrigs
6.11
Manipulation de la pile
La pile constitue une zone particulire de la mmoire centrale gre selon une politique LIFO (Last In, First Out). Cette structure de donnes est caractrise par :
une base qui constitue le fond de la pile;
un sommet dont ladresse est contenue dans un registre particulier du processeur,
le registre RSP (Register Stack Pointer).
Seul le sommet de la pile repr par le registre RSP est accessible en lecture ou en
criture par deux oprations spcifiques : PUSH et POP. Le registre RSP contient
ladresse du prochain mot o crire dans la pile.
Plus prcisment, lopration PUSH oprande crit loprande ladresse mmoire
contenue dans le registre RSP puis incrmente le contenu du registre RSP pour que
celui-ci contienne ladresse du prochain mot o lcriture se fera dans la pile. Lopration POP destination, o destination est un registre, dcrmente le registre RSP pour
que celui-ci contienne ladresse de la donne prsente au sommet de la pile, puis
retire cette donne de la pile pour la placer dans destination.
La politique LIFO applique ici signifie que la dernire donne enregistre dans la
pile est la premire en sortir.
Ainsi la figure 6.2 illustre le principe de ces deux oprations avec une pile dont la
base est constitue par le mot dadresse (0020)16. En reprenant le contexte mmoire
de lexercice prcdent et en considrant une pile dans ltat du dernier dessin de la
figure 6.2, reprsentez lvolution de la pile et du registre RSP au fur et mesure de
lexcution des oprations suivantes :
POP Rg1 R1
POP Rg1 R3
STORE D R3 100
LOAD Im R2 7
ADD D R2 100
PUSH Rg1 R2
003416
003416
003416
003016
003016
003016
002C16
002C16
002C16
810
002816
510
002416
2010
002016
RSP
002C16
002816
R1
R2
610
510
002416
2010
002016
POP Rg1 R1
Figure 6.2
RSP
002816
R1
810
R2
610
610
002816
510
002416
2010
002016
PUSH Rg1 R2
RSP
002C16
R1
810
R2
610
6 Langage machine
6.12
119
Programme assembleur
crivez un programme assembleur qui additionne lentier contenu dans une case de
mmoire centrale dadresse A avec les trois premiers nombres retirs de la pile.
Si lopration daddition produit un carry, alors le calcul est arrt et le rsultat est
stock dans la pile.
Si lopration daddition produit un overflow, alors le calcul est arrt, et le rsultat
de lopration est stock ladresse en mmoire centrale (RB) + 100.
Si lopration daddition ne provoque ni carry, ni overflow le rsultat de lopration est stock ladresse A.
SOLUTIONS
6.1
Compilation
<identificateur>
<corps de programme>
Y3
<suite de dclarations>
<declaration>
<instruction>
<suite de dclarations>
<affectation> <suite dinstructions>
;
<suite dinstructions>
<identificateur>
<identificateur> <terme>
A
A
=
<instruction> <suite dinstructions>
<suite de dclarations>
<entier>
<declaration>
<instruction>
6
<affectation>
<declaration>
;
<iteration>
;
INT
<Instruction>
LOOP
<identificateur> BOOLEAN
<identificateur>
<identificateur>= VRAI ; <expression>
B
<affectation>
C
C
(
;
<identificateur>
<terme>
<terme>
B
<operateur>
=
<identificateur>
C
<operexpr>
<identificateur>
<entier>
*
A
3
ERREUR
INT
Figure 6.3
Arbre syntaxique.
6 Solutions
6.2
121
Module 3
Module 4
Module 1
512
64
100
1024
512
Figure 6.4
576
1700
676
Carte dimplantation.
2. La table des symboles volue comme le dcrivent les 4 tableaux qui suivent
(tableaux 6.2 6.5).
Tableau 6.2
Nom de lobjet
Commentaire
afficher
indfinie
LAS
perimetre
indfinie
LAS
surface
indfinie
LAS
rectangle
64
LU
carre
128
LU
Tableau 6.3
Nom de lobjet
Commentaire
afficher
indfinie
LAS
perimetre
16 + 512
LAS/LU
surface
32 + 512
LAS/LU
rectangle
64
LU
carre
128
LU
Tableau 6.4
Nom de lobjet
Commentaire
afficher
indfinie
LAS
perimetre
16 + 512
LAS/LU
surface
32 + 512
LAS/LU
rectangle
64
LU
carre
128
LU
imprimer
indfinie
LAS
enregistrer
indfinie
LAS
122
6 Exercices corrigs
Tableau 6.5
Nom de lobjet
Commentaire
afficher
128 + 676
LAS/LU
perimetre
16 + 512
LAS/LU
surface
32 + 512
LAS/LU
rectangle
64
LU
carre
128
LU
imprimer
260 + 676
LAS/LU
enregistrer
512 + 676
LAS/LU
lissue de la prise en compte de tous les modules, aucune entre de table des
liens ne demeure indfinie. Ldition des liens est donc correctement ralise.
6.3
Utilitaire Make
1. Le fichier Makefile a la structure suivante :
prog.exe : mod1.o mod2.o mod3.o
ld mod1.o mod2.o mod3.o o prog.exe
mod1.o : proc.h mod1.c const.h
cc c mod1.c
mod2.o : mod2.c mod3.c const.h
cc c mod2.c mod3.c
mod3.o : mod3.c variable.h
cc c mod3.c
Compilation
6 Solutions
123
B : ENTIER := 3,2 ;
A := A + 5,1 ;
B := B * 6 1 ,
FIN
Une erreur lexicale est leve la lecture du symbole / qui ne fait pas partie des
symboles admis dans le langage.
3. La figure 6.5 donne les arbres syntaxiques correspondant aux quatre phrases.
PHRASE 1
PHRASE 2
A : REEL := 3,2 ;
<Dclaration>
<Dclaration>
<Identificateur>
A
PHRASE 3
;
REEL
:=
<valeur relle>
3,2
A := A + 5,1;
<addition>
<Identificateur> := <Identificateur> +
A
A
<Identificateur>
B
PHRASE 4
<Instruction>
<valeur entire>
3,2
erreur, une valeur
entire est attendue
ENTIER :=
B := B + 61,
<Instruction>
;
<valeur relle>
5.1
Figure 6.5
B : ENTIER := 3,2 ;
<multiplication>
<identificateur>
<Identificateur> := <Identificateur> *
6
B
B
ERREUR, 6 n'est pas
un identificateur
Arbre syntaxique.
6.5
Conversions
+ 1 432,4510 vers la base 2 :
+ 1 43210 = 1 024 + 256 + 128 + 16 + 8 = 210 + 28 + 27 + 24 + 23 = 101100110002
0,45 2 = 0,90; 0,90 2 = 1,8; 0,8 2 = 1,6; 0,6 2 = 1,2; 0,2 2 = 0,4; 0,4 2 = 0,8
do 0,4510 = 0111001100112
do + 1 432,4510 = 10110011000, 0111001100112
+ 1 432,4510 vers la base 16 :
+ 1432,4510 = 101 1001 1000, 0111 0011 00112 = 598,73316
+ 1 432,4516 vers la base 10 :
1 163 + 4 162 + 3 161 + 2 160 + 4 16 1 + 5 16 2 = + 5 170,269510
1110101001012 vers la base 10 :
211 + 210 + 29 + 27 + 25 + 22 + 20 = 2 048 + 1 024 + 512 + 128 + 32 + 4 + 1 = +
3 74910
111 010 100 1012 vers la base 8 : 72458
124
6.6
6 Exercices corrigs
1. Reprsentation interne :
+ 1 03210 = 1 024 + 8 = 00000100000010002 en valeur signe et en complment 2.
+ 1 03210 = 1011 0001 0000 0011 00102 en DCB.
+ 72110 = 512 + 128 + 64 + 16 + 1 = 00000010110100012
do 72110 = 10000010110100012 en valeur signe;
do 72110 = 11111101001011112 en complment 2.
72110 = 1101 0111 0010 00012 en codage DCB.
2. Valeur dcimale :
0101 0000 1100 11012 = + 20 68510 en valeur signe et en complment 2.
0101 0000 1100 11012 ne peut pas tre un nombre cod selon le format DCB
car les deux derniers quartets codent des valeurs suprieures 9.
1010 0001 0011 00112 = 8 49910 en valeur signe.
1010 0001 0011 00112 = 0101 1110 1100 11012 = 24 26910 en complment 2.
1010 0001 0011 00112 ne peut pas tre un nombre cod selon le format DCB
car le quartet de poids fort correspond un code suprieur 9.
6.7
1. Reprsentation interne :
+ 1 432,4510 = 10110011000, 01110011002 = 1,011001100001110011002 210
Lexposant excentr est gal 10 + 127 = 137 = 100010012 do la reprsentation
interne simple prcision :
0 10001001 011001100001110011000002 = 44B30E6016
721,2510 = 1011010001,012 = 1,011010001012 29
Lexposant excentr est gal 9 + 127 = 136 = 100010002 do la reprsentation
interne simple prcision :
1 10001000 011010001010000000000002 = C434500016
2. Valeur dcimale :
C657000016 = 1 10001100 101011100000000000000002
Le signe de la mantisse est ngatif. Lexposant est gal 140 127 = 13
La mantisse est : 1,101011100000000000000002 do le nombre reprsent est :
1,10101112 213 = 14 08010
42EF910016 = 0 10000101 110111110010001000000002
Le signe de la mantisse est positif. Lexposant est gal 133 127 = 6.
La mantisse est 1, 110111110010001000000002 do le nombre reprsent est :
1, 1101111100100012 26 = + 119,78320312510.
6.8
Synthse
6 Solutions
125
LOAD D R0 400
R0 est charg avec la valeur contenue dans le mot mmoire dadresse 400
soit 2000
LOAD Im R1 1002
ADD Rg2 R0 R1
R0 R0 + R1 = 3002
NEG Rg1 R1
ADD I R1 404
STORE B R1 900
6.10
Programme assembleur
LOAD D R1 A
LOAD D R2 B
ADD Im R2 6
MUL Im R1 5
ADD Rg2 R1 R2
STORE D R1 B
6.11
Manipulation de la pile
Programme assembleur
Loop :
126
6 Exercices corrigs
003416
003016
002C16
610
002816
510
002416
2010
002016
RSP
002C16
003416
003416
003016
003016
002C16
002816
RSP
002816
510
002416
R1
2010
002016
610
002C16
002816
002416
2010
510
2. POP Rg1 R3
1. POP Rg1 R1
510
002016
RSP
002416
R3
010016
MC
3. STORE D R3 (100)16
R2
R2
710
1210
4. LOAD Im R2 (7)10
5. ADD D R2 (100)16
003416
003016
002C16
002816
1210
002416
2010
002016
6. PUSH Rg1 R2
RSP
002816
R1
R3
610
510
R2
1210
Figure 6.6
PARTIE 2
STRUCTURE
DE LORDINATEUR
Chapitre 7
La fonction dexcution
Les machines que nous tudions sont des machines programme enregistr ce qui
signifie que pour tre excut le programme machine (suite dinstructions machines)
doit tre plac (charg) en mmoire principale (mmoire centrale, mmoire RAM).
Dans cette section nous nous proposons dexaminer comment est excut un
programme machine. Dans un premier temps, nous dcrivons les caractristiques
gnrales du microprocesseur et du bus lui permettant de communiquer avec la
mmoire centrale. Nous tudions ensuite le principe de lexcution dune instruction
par le microprocesseur, ainsi que les notions lies aux microcommandes et aux
squenceurs. Nous terminons en introduisant le concept trs important des interruptions, puis par un aperu des mthodes permettant une amlioration des performances des microprocesseurs.
7.1
INTRODUCTION
130
7 La fonction dexcution
Le langage machine dfinit les instructions machines excutables par un microprocesseur et caractrise compltement une machine dans le sens o il permet de
dcrire un problme comme une suite dinstructions excutables par le matriel
(hardware). Le langage machine est donc caractristique dun matriel spcifique et
lexpression dun problme dans un langage machine nest valide que pour un matriel (une machine spcifique : un programme machine nest excutable que sur une
machine spcifique reconnaissant ce langage). Le matriel qui excute les instructions machine est le microprocesseur. Il existe donc autant de langages machines
quil y a de type de microprocesseurs. Un programme qui doit tre excut par un
microprocesseur Intel devra tre crit dans le langage machine de ce microprocesseur.
Il ne sera excutable que par lui et donc ne sera pas excut par un microprocesseur
dun autre constructeur (par exemple Motorola ou PowerPC).
Bien que tous les langages machines soient diffrents, les instructions machines
rpondent la mme structure :
un champ code opration. Il dfinit la nature de lopration excuter;
un champ oprande qui rfrence le ou les oprandes sur lesquels lopration doit
seffectuer. Ce champ peut tre considr comme tant compos de deux parties,
une partie mode dadressage qui dfinit la manire dont on va accder loprande
et une information complmentaire, dont le sens est dfini en fonction du mode
dadressage. Dans le cas dun adressage dit immdiat , linformation complmentaire reprsente la valeur de loprande. Dans le cas dun adressage dit direct ,
linformation complmentaire reprsente ladresse mmoire de loprande.
Il existe plusieurs types darchitectures de microprocesseurs et chacun de ces
types correspond un langage machine de nature diffrente. On trouve ainsi :
les langages de type registre/mmoire : les instructions arithmtiques ont un
oprande situ en mmoire centrale, lautre oprande est dans un registre de lunit
centrale (microprocesseur), enfin le rsultat est plac dans un registre de lunit
centrale. Ce sont des instructions 1,5 oprandes, le registre intervenant pour
0,5 oprande. Ce type dinstructions est celui le plus couramment rencontr dans
les machines CISC (Complex instruction set computer). Dans un tel contexte
rsoudre lquation Z = X + Y qui signifie additionner X et Y puis placer le
rsultat dans Z, demande 3 instructions machines :
load D, R, @X (placer le contenu de ladresse
mmoire X dans le registre R)
add D, R, @Y
(additionner le contenu de ladresse
mmoire Y au contenu du registre R et
placer le rsultat dans le registre R)
store D, R, @Z (placer le contenu du registre R
ladresse mmoire Z)
les langages mmoire/mmoire : linstruction porte sur des oprandes placs en
mmoire centrale, le rsultat tant lui aussi plac en mmoire. Ce type dinstructions se trouve dans les machines CISC. Dans un tel contexte lquation Z = X + Y
donne lieu une seule instruction.
7.1 Introduction
131
les langages registre/registre : une instruction porte sur des oprandes pralablement placs dans des registres de lunit centrale, le rsultat tant lui aussi plac
dans un registre. Ce type dinstruction se trouve surtout dans les machines RISC
(Reduced instruction set computer). Dans ce contexte lquation de notre exemple
donne lieu la squence dinstructions machine donne suivante :
load D, R1, @X
Dans la section comparant les architectures CISC et RISC, nous fournirons des
prcisions sur les raisons qui prsident lexistence de ces diffrents types de langages
et donc de microprocesseurs. Ainsi, dans les processeurs CISC (Intel par exemple)
les langages sont plutt orients registre/mmoire alors que dans les processeurs
RISC (PowerPC par exemple) les langages sont orients registre/registre.
Lexcution dune instruction implique :
le microprocesseur (unit centrale). Il est organis autour des registres, de lunit
arithmtique et logique (UAL), de lunit de commande et dun ou plusieurs bus
internes permettant la communication entre ces diffrents modules. Le nombre et
lorganisation du (des) bus de lunit centrale sont variables et les constructeurs
ont une grande libert de conception;
le bus de communication mmoire/unit centrale. Il supporte les changes de donnes
et de commandes entre lunit centrale et la mmoire centrale. Dans ce domaine
les constructeurs disposent de peu de libert quant leurs choix architecturaux car
ils doivent prendre en compte une trs grande varit des matriels (prise en
compte de nombreux contrleurs et priphriques);
la mmoire centrale. Elle contient les instructions et les donnes. Pour quune
instruction soit excutable par le microprocesseur, il faut (comme les donnes
manipules par linstruction) que celle-ci soit prsente en mmoire centrale.
Excuter une instruction quivaut permettre des interactions efficaces entre ces
trois composants. Pour examiner ces interactions nous adoptons tout dabord un
point de vue externe et descriptif permettant de prsenter les diffrents modules,
leurs caractristiques et fonctionnalits gnrales. Ensuite nous regardons dun point
de vue interne lexcution des instructions machine. Pour cela, afin de mettre en
vidence les principes fins de fonctionnement, nous dfinissons une machine arbitraire qui respecte les caractristiques des machines de Von Neumann.
132
7 La fonction dexcution
7.2
ASPECTS EXTERNES
Nous prsentons ici les caractristiques gnrales des microprocesseurs et des bus de
communication entre mmoire et microprocesseur. Les aspects relatifs la mmoire
sont abords dans le chapitre 8, concernant la fonction de mmorisation.
7.2.1 Le microprocesseur
Le microprocesseur communique avec les autres modules de la machine par le biais
de signaux lectriques. Il est plac dans un botier qui dispose de plusieurs broches
pour le transport des signaux (figure 7.1).
Bien que chaque microprocesseur possde un jeu spcifique de signaux, on peut,
sans tre cependant exhaustif, classer ceux-ci en grandes catgories qui se retrouvent
sur tout type de microprocesseur :
alimentation lectrique;
horloge;
bus dadresses (A0-A15), de donnes (D0-D7), de commandes (READ, WRITE);
interruptions (INTR, INTA, NMI);
slection et synchronisation mmoire ou priphriques (READY, mmoire, priphrique, PRT);
gestion du bus de communication (demande de bus, ACK bus).
Les signaux sont soit des signaux dentres, soit des signaux de sorties, ou encore
des signaux dentres-sorties. Les flches sur la figure 7.1 indiquent le sens des
diffrents signaux.
Alimentation
et masse
RESET
A
D
R
E
S
S
E
S
Vcc
GND
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Figure 7.1
M
I
C
R
O
P
R
O
C
E
S
S
E
U
R
D0
D1
D2
D3
D4
D5
D6
D7
Le microprocesseur.
D
O
N
N
E
E
S
Read
Write
INTR
INTA
NMI
READY
Mmoire
Priphrique
PRET
Demande Bus
Ack. Bus
Entre horloge
133
Les signaux dadresses sont des signaux de sorties pour le microprocesseur et des
signaux dentres pour les botiers mmoire. Les signaux de donnes sont bidirectionnels, ils transportent les informations de la mmoire vers le microprocesseur ou
au contraire du microprocesseur vers la mmoire. Les signaux de commande sont
des signaux de sorties pour piloter les botiers mmoire. Les interruptions sont des
signaux dentres provenant en gnral des priphriques. Ils permettent dinterrompre le fonctionnement du microprocesseur pour prendre en charge linterruption.
Il existe dautres types dinterruptions que celles produites par les priphriques, par
exemple des interruptions logicielles, permettant de prendre en compte des dysfonctionnements de lordinateur (une division par zro, un dpassement de capacit dans
une opration arithmtique). Les signaux concernant le bus permettent, en particulier, au processeur de synchroniser le partage du bus entre les diffrents modules
matriels qui peuvent en avoir besoin simultanment.
Lhorloge est un signal trs important, caractris par sa frquence mesure en
mgahertz (1 MHz = 106 hertz), qui rythme le fonctionnement du microprocesseur
et dfinit ainsi le cycle du microprocesseur. En effet, le temps de cycle du microprocesseur sexprime comme linverse de la frquence de lhorloge et est donn en nanoseconde (ns). Ainsi pour une frquence dhorloge gale 1 gigahertz, le temps de
cycle processeur quivaut 1/1 GHz = 1/103 106 = 10 9 seconde = 1 nanoseconde,
sachant que 1 GHz est gal 103 MHz.
> 100
MIPS
27
0,06
0,75
1,5
1971
1979
1982
Figure 7.2
1986
1989
1993
134
7 La fonction dexcution
Opration
Y2
PSW
Unit Arithmtique
et Logique
Bus interne
Donnes
Registres
Commandes
Unit de Commande
Squenceur
Dcodeur
RI
CO
RAD
RDO
Figure 7.3
Commandes Lecture/criture
Adresses
Donnes
Schma gnral du processeur.
135
On trouve deux types de bus : les bus synchrones et les bus asynchrones.
Les bus synchrones
Ils disposent dune horloge propre fonctionnant une frquence qui caractrise le
cycle du bus. La frquence dhorloge des bus varie entre 8 MHz 500 MHz (pour les
plus rcents), ce qui correspond un temps de cycle allant de 125 ns 2 ns.
Avec ce type de bus, lopration de lecture dun mot mmoire par le microprocesseur se droule de la manire suivante :
le microprocesseur dpose ladresse du mot sur le bus dadresses;
Microprocesseur
Bus
Mmoire
ns
0
15
20
Figure 7.4
30
Bus synchrone.
136
7 La fonction dexcution
Ce type de bus ne sappuie pas sur une horloge associe ce bus. Le fonctionnement
du bus utilise des signaux permettant aux diffrents modules de se coordonner lors dun
change et de se mettre ainsi daccord pour dire que lchange a eu lieu. Lenchanement des oprations nest pas li un signal dhorloge mais un enchanement de
signaux propres lchange. Ce type de bus est bien suprieur mais beaucoup plus
difficile construire.
En gnral les bus utiliss sont de type synchrone cause de leur facilit de construction et donc de leur cot moindre. Pour obtenir un fonctionnement correct il faut
choisir avec soin les modules afin que leurs caractristiques soient compatibles.
7.3
ASPECTS INTERNES
Dans le chapitre 1 concernant la structure gnrale et le fonctionnement dun ordinateur, nous avons vu que le rle du microprocesseur consiste excuter le programme
machine plac dans la mmoire principale. Cette excution seffectue instruction
aprs instruction de la premire jusqu linstruction STOP, dernire instruction du
programme. Ce squencement de lexcution des instructions constitue ce que lon
137
138
7 La fonction dexcution
Y
Z
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
3
13
Horloge
Squenceur
Dcodeur
CO
11
A 14
B 15
16
RI
C 17
RDO
RAD
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.5
Lensemble des registres est (pour des raisons de simplicit graphique) rduit un
seul registre (R).
Notre machine a les caractristiques suivantes :
la frquence du processeur est gale 1 GHz, soit un cycle gal 1 ns;
la frquence du bus est gale 66 MHz, soit un cycle gal 15 ns;
le temps daccs la mmoire centrale est gal 20 ns.
Le bus de communication est de type synchrone. Ainsi lorsque le microprocesseur
fait une demande de lecture mmoire il obtiendra sa donne 30 nanosecondes plus
tard (aprs deux cycles du bus).
Les instructions de notre machine sont de type registre/mmoire : lun des oprandes
est en mmoire, lautre est dans un registre. Avec ce type dinstructions notre problme,
C = A + B sexprime sous la forme de la squence dinstructions :
load D, R, @B
Charger le contenu du mot dadresse B
dans le registre R. (R) = (B)
add D, R, @A
(R) = (R) + (A)
Contenu de R + contenu de A dans R
store D, R, @C
(C) = (R)
Placer le contenu de R ladresse C
139
Le programme machine plac en mmoire centrale est dcrit sous la forme dun
programme crit en langage dassemblage. Ici, par souci de simplicit dcriture, les
adresses mmoire sont exprimes en base 10. La premire instruction est ladresse 10,
la seconde ladresse 11, la troisime ladresse 12. La premire instruction indique
que lon place le contenu de ladresse B (adresse 15) dans le registre R. La seconde
instruction ralise laddition du contenu de R avec le contenu de ladresse A
(adresse 14), le rsultat tant plac dans R. Enfin, la troisime instruction place le
contenu de R ladresse mmoire C (adresse 17). Ce programme ralise donc laddition des valeurs 3 et 5, le rsultat tant plac dans C (adresse 17).
Notre programme est en cours dexcution, la premire instruction ayant t excute,
le registre R contient 3 et le compteur ordinal CO contient 11 (adresse de linstruction
excuter). Nous allons, dans ce contexte, dtailler le processus dexcution de
linstruction machine : add D, R, A et examiner les diffrentes phases de son excution.
FETCH
Cest la phase de recherche et de chargement de linstruction, pointe par le compteur ordinal CO, dans le registre instruction RI. Cette phase comporte trois tapes.
Z
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
3
13
Horloge
CO
11
Dcodeur
A 14
B 15
16
RI
RDO
C 17
RAD
11
Lecture
11
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.6
tape 1.
140
7 La fonction dexcution
tape 1
Le contenu du compteur ordinal CO est plac dans le registre dadresses RAD, donc
lentre de la mmoire centrale via le bus dadresses. Une commande de lecture est
place sur le bus de commandes et le signal AttenteMmoire est positionn. Lorsque
la donne est disponible la mmoire place un signal PRT qui indique au microprocesseur que la donne demande est disponible sur le bus de donnes donc dans le
registre de donnes RDO. Compte tenu des cycles respectifs de la mmoire et du bus
ce dernier place un tat dattente (WaitState) et la donne est donc disponible 30 nanosecondes aprs la demande (figure 7.6).
tape 2
cette tape le compteur ordinal CO est incrment. Pour cela on suppose que notre
machine est dote dun compteur ordinal pilot par un signal, InCo , qui dclenche
lincrmentation (ajoute 1 CO). la fin de cette tape, le compteur ordinal contient
ladresse de la prochaine instruction excuter (figure 7.7).
Z
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
3
13
(CO) = (CO) + 1
Horloge
CO
12
Dcodeur
A 14
B 15
16
RI
C 17
RDO
RAD
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.7
tape 2.
141
tape 3
Y
Z
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
3
13
Horloge
CO
12
Dcodeur
A 14
B 15
16
Add D, R, A
RDO
C 17
Add D, R, A
RAD
Add D, R, A
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.8
tape 3.
Dcodage
La phase de dcodage permet linterprtation du code opration et du mode dadressage de loprande. Ici il sagit dune addition du contenu de ladresse mmoire A
avec le registre R, le rsultat devant tre plac dans R. Cette phase va permettre
dacqurir le contenu de A qui sera plac dans le registre Y. La phase dexcution
pourra alors tre ralise.
142
7 La fonction dexcution
tape 4
Le champ oprande, A, est plac dans le registre dadresses RAD puis une
commande de lecture est positionne sur le bus de commandes par lunit de
commande. Le signal AttenteMmoire est galement plac et le microprocesseur
est prvenu que la donne est prte lorsque la mmoire positionne le signal PRT
(figure 7.9).
Y
Z
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
3
13
Horloge
12
Dcodeur
A 14
B 15
16
Add D, R, A
C 17
RDO
A
Lecture A
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.9
tape 4.
tape 5
La donne demande est disponible dans le registre RDO. Elle est place dans le
registre dentre Y de lunit arithmtique et logique. La phase de dcodage est termine,
lexcution peut commencer (figure 7.10).
Excution
tape 6
143
5
Z
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
13
Horloge
12
Dcodeur
A 14
B 15
16
Add D, R, A
RDO
5
C 17
RAD
5
0
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.10
Figure 7.11
tape 5.
tape 6.
5
8
Add
3
PSW
Load D, R, B
11
Add D, R, A
12
Store D, R, C
13
Horloge
12
Add
Dcodeur
10
A 14
B 15
16
Add D, R, A
RDO
17
RAD
30 31
61 62
63
Tops horloge microprocesseur
144
7 La fonction dexcution
tape 7
5
8
PSW
10
Load D, R, B
11
Add D, R, A
12
Store D, R, C
3
13
Horloge
12
Dcodeur
A 14
B 15
16
Add D, R, A
C 17
RDO
RAD
30 31
61 62
63
Tops horloge microprocesseur
Figure 7.12
tape 7.
Conclusion
Cet exemple met en vidence les diffrentes tapes de lexcution dune instruction
ainsi que le sens quil faut donner au mot excution. Lensemble registres/UAL dfinit
le chemin de donnes . Ce chemin de donnes est caractristique du microprocesseur, nous verrons que les processeurs CISC et RISC nont pas le mme chemin de
donnes. Enfin le cycle du chemin de donnes caractrise la vitesse dexcution
dune instruction. Pour raliser les diffrentes tapes (fetch, dcodage, excution),
lunit de commande constitue du squenceur et du dcodeur, place des signaux qui
permettent le squencement des diffrentes tapes. Le dcodeur reconnat linstruction et permet au squenceur de positionner, pour chacune des tapes, les signaux
ncessaires lexcution de linstruction dcode.
145
Les registres sont des zones de mmoires permettant le stockage dinformations que
peut manipuler directement le microprocesseur. La figure 7.13 nous donne lorganisation matrielle dun registre.
Le registre considr ici contient 8 digits binaires. Il est reli au bus interne de
donnes du microprocesseur par le biais de barrires dentre et de sortie. Ces
barrires sont pilotes par des signaux dentre et de sortie positionns par le squenceur. Ces signaux ouvrent ou ferment les barrires permettant linformation de
circuler entre le bus et le registre. Le mode de fonctionnement du registre est indiqu
dans la figure 7.14.
Barrire dentre
Signal dentre
Bit
Bus
Registre
Signal de sortie
Barrire de sortie
Figure 7.13
Registre.
Signal dentre
Barrire dentre
Horloge
RIen : Signal dentre
du registre RI
RIsor : Signal de sortie
du registre RI
Squenceur
Dcodeur
Registre
Bus
Signal de sortie
Barrire de sortie
R1en
R1
R1sor
R2en
(R2)
(R1)
Bus
R2
R1sor, R2en
R2sor
Figure 7.14
146
7 La fonction dexcution
Cette unit comprend lensemble des circuits ralisant les oprations arithmtiques
et logiques dun microprocesseur. La figure 7.15 nous en rappelle larchitecture
fonctionnelle en prcisant quelques signaux permettant son pilotage.
Retenue RazY Yen
Zen
Zsor
1er oprande
Bus de donnes
Slection
Z
* /
2e oprande
Rsultat
Bus de commandes
Registre dtat (PSW)
Figure 7.15
Le registre Y est pilot par le signal dentre Yen et lon suppose quil est directement reli aux circuits de calcul de lUAL. Le registre de sortie Z est pilot par deux
signaux dentre et de sortie, Zen et Zsor. Par ailleurs le signal RazY permet de
rinitialiser la valeur 0 le contenu de Y. Enfin, le signal de retenue Retenue permet
dintroduire une retenue dans laddition des bits de poids faible.
titre indicatif la figure 7.16 donne un schma de ralisation dune UAL 1 bit,
cest--dire pour laquelle les oprandes reprsentent des valeurs codes sur 1 bit. On
y trouve des circuits ET, des circuits OU, des inverseurs, des OU exclusif, etc.
Les oprandes sont nots A et B. Cette UAL permet de raliser les quatre oprations ET, OU, Inverse, Addition. Pour slectionner une opration on dispose de deux
bits dentres (F0, F1) permettant 22 combinaisons. La valeur du couple (F0, F1)
dtermine le circuit arithmtique qui va oprer sur les entres (A, B). Par exemple si
(F0, F1) vaut (0, 0) un ET est ralis sur (A, B), le rsultat tant plac sur S. Par
contre si (F0, F1) vaut (1, 1), alors une addition avec retenue de sortie est ralise, le
rsultat tant plac sur S. Ainsi si (F0, F1) vaut (1, 1) et (A, B) vaut galement (1, 1)
alors S vaut 0 et la retenue de sortie vaut 1 galement.
La figure 7.17 prsente le schma dune UAL 8 bits. Celle-ci est constitue par
8 UAL 1 bit, chanes entre elles par la propagation de la retenue du circuit additionneur.
147
U A L de 1 bit
Retenue dentre
F0
Additionneur
F1
Retenue de sortie
Figure 7.16
Retenue de sortie
S7
UAL
1 Bit
S6
UAL
1 Bit
S5
UAL
1 Bit
S4
UAL
1 Bit
S3
UAL
1 Bit
S2
UAL
1 Bit
S1
UAL
1 Bit
S0
UAL
1 Bit
A7
B7
A6
B6
A5
B5
A4
B4
F0
F1
Code
Opration
A3
B3
A2
B2
A1
B1
A0
B0
Retenue dentre
Figure 7.17
148
7 La fonction dexcution
Les micro-instructions
Ret
Yen
Y
Add
Z
Zsor Zen
PSW
30 RDOsor, RIen
31 (addr)RIsor, RADen, Lect, AttenteMemoire
Ren
R
Rsor
Horloge
COen
Squenceur
CO
Dcodeur
RI
COsor
RIen
61 RDOsor, Yen
62 Rsor, Zen, Add
63 Zsor, Ren
Load D, R, B
Add D, R, A
Store D, R, C
RIsor
RDOsor
RDO
RADen
RAD
Figure 7.18
5
3
Au top dhorloge 1 ltape 1 est ralise par le positionnement des signaux indiqus.
Au deuxime top le compteur ordinal est incrment, au 62e top (tape 6) on excute :
(Z) = (Y) + (R)
La figure 7.18 prsente galement une esquisse du cblage interne du microprocesseur destine uniquement sensibiliser la complexit de ralisation dun tel
microprocesseur. Les diffrentes tapes de lexcution sont cette fois exprimes sous
la forme dune squence de microcommandes. Chaque micro-instruction est dfinie
comme lensemble des signaux que le squenceur positionne. Par exemple, la microinstruction COsor, RADen, Lect, AttenteMmoire, dclenche les oprations :
(RAD) = (CO);
Lect : le squenceur demande la lecture du mot mmoire dont ladresse est
dans RAD ;
AttenteMmoire est actif.
149
150
7 La fonction dexcution
du code opration pour dterminer la squence des micro-instructions, le mode dadressage intervient galement.
Squencement des microcommandes
Nous avons vu que lexcution dune instruction machine se traduisait par une squence
de microcommandes. Le squenceur produit les signaux et assure lexcution matrielle des microcommandes. Il existe deux types de squenceurs : les squenceurs
cbls (on parle alors de contrle cbl) et les squenceurs microprogramms (on
parle alors de contrle microprogramm). On conoit aisment que la ralisation des
squenceurs est trs complexe. Il ne sagit donc pas ici de donner la ralisation de tel
ou tel constructeur mais plutt de mettre en vidence les grandes fonctionnalits qui
prsident de telles ralisations. Squenceur cbl et squenceur microprogramm
reprsentent deux approches diffrentes pour le contrle du chemin de donnes.
Squenceur cbl
Termes produits
Portes OU
Gnrateur dtapes
1
2
3
Fetch
c
l
e
n
c
h
e
u
r
Signal horloge
Signal mmoire prte
COsor
RADen
Lect
AttenteMmoire
RDOsor
RIen
InCo
Figure 7.19
151
152
7 La fonction dexcution
La notation horloge = 1 signifie que le signal dhorloge est prsent, dans le cas
contraire le signal est gal 0.
Ainsi le circuit dclencheur a une sortie 1 chaque top horloge si le signal
AttenteMmoire est faux ou si le signal AttenteMmoire est vrai et que la mmoire
est prte.
Le gnrateur dtapes est un compteur dtapes qui admet comme signal dentre
le signal de sortie du dclencheur. Il incrmente le numro de ltape chaque fois
que la sortie du dclencheur est 1.
D
c
l
e
n
c
h
e
u
r
Add
D, R, A
Circuit de dcodage
Gnrateur dtapes
1
Horloge
Circuits ET
Registre
Instruction
RI
Yen
InCo
Ret
Zen
Zsor
Ren
Rsor
Lect
Add
COen
COsor
RIen
RIsor
RADen
RDOsor
AttenteMemoire
Load D, R, B
Circuits OU
Figure 7.20
Squenceur cbl.
153
Squenceur microprogramm
Lobjectif est exactement le mme que pour le squenceur cbl mais la manire
daborder la question, et de la rsoudre est radicalement diffrente. La figure 7.21
donne le schma de principe dun tel squenceur.
Add D, R, A
00000 0111000110100100
00001 0000100001000001
1
+
00011 0000000100001101
Registre
Instruction
00100 1000000000000010
00101 0001001010000000
00110 0000110000000000
Gnrateur
d'adresse
initiale
D, R, A
Add
Horloge
00010 0000000000010010
Micro-CO
Signal
mmoire prte
00111
01001
01010
01011
01100
01101
01110
01111
10000
0111000110100100
0000100001000001
0000000000010010
0000000100001101
0000010000000010
Mmoire
de
micro-programmes
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
Yen
RazY
Ret
Zen
Zsor
Ren
Rsor
Lect
Add
COen
COsor
RIen
RIsor
RADen
RDOsor
AttenteMmoire
Load D, R, B
Figure 7.21
Squenceur microprogramm.
Ce squenceur est organis autour dune mmoire, dite mmoire de microprogrammes, dune unit arithmtique, dun compteur ordinal, dit microcompteur ordinal,
dun circuit gnrateur de ladresse initiale de linstruction et enfin dun circuit
dclencheur de lexcution dune micro-instruction.
La mmoire de microprogramme contient les micro-instructions associes chaque
instruction machine disponible pour notre microprocesseur. Chaque mot (une ligne
sur la figure 7.20) de cette mmoire est adressable et contient une suite de bits associs aux signaux que peut produire le squenceur. Un mot mmoire contient autant
de bits quil y a de signaux possibles pour ce squenceur. Un bit positionn 1 indique
154
7 La fonction dexcution
que le signal associ doit tre actif, il est positionn 0 dans le cas contraire. Par
exemple ladresse 00101 de la mmoire se trouve une suite de digits binaires permettant de rendre actifs les signaux Zen, Rsor, Add. De ladresse 00000 ladresse
00110 se trouve une suite de mots mmoire correspondant chacun une microinstruction. On peut vrifier que les suites de 0 et de 1 de chaque mot quivalent bien
lactivation des signaux permettant lexcution de linstruction machine Add D, R, A .
Une telle suite sappelle un microprogramme. Il y a autant de microprogrammes dans
la mmoire que dinstructions machines disponibles pour le processeur.
Le registre instruction RI contient linstruction machine excuter. Le code
opration est prsent au circuit dinitialisation qui au vu du code opration dtermine ladresse de la premire instruction du microprogramme correspondant. Le
contenu de la premire micro-instruction est plac dans le tampon de slection des
signaux de sortie. Les bits positionns 1 rendent actifs les signaux correspondants.
Le microcompteur ordinal est incrment de 1 et la micro-instruction suivante est
excute, ainsi de suite jusqu la dernire micro-instruction de linstruction machine.
On peut remarquer que lon a une gestion analogue de lattente mmoire que dans le
cas du squenceur cbl.
Ce type de squenceur prsente le trs gros avantage de permettre des modifications dans le cas derreurs de conception des microcommandes. Il permet galement
dajouter des instructions. Les microprogrammes peuvent tre stocks dans des
mmoires de type ROM.
Lorsque lon doit raliser des squenceurs peu complexes le contrle cbl en
logique alatoire est plus efficace que le contrle microprogramm. Par contre dans
le cas de contrle trs complexe la comparaison des diffrentes approches est beaucoup plus difficile et le choix nest pas toujours vident.
7.4
155
INTA
INTR
Figure 7.22
156
7 La fonction dexcution
(3)
(3)
Adressage
(4)
Programmes
dinterruption
Zone
de sauvegarde
(1)
Processeur
(2)
(6)
Programme
machine
Interruption
Mmoire
Figure 7.23
157
Logiciel
Programme machine
1
Interruption
vnement externe
(signal)
Figure 7.24
Programme
de gestion
de linterruption
158
7 La fonction dexcution
7.4.2 Un exemple
Nous allons examiner, sous forme dun exemple, les diffrents composants matriels, et la manire dont certaines interruptions sont prises en compte dans le cas
dun PC pilot par un processeur de type 80xx (jusqu 80486). Avec les nouveaux
processeurs les traitements et matriels voqus dans cet exemple ont volu mais
les mcanismes dcrits et leur prise en compte gardent leur gnralit.
Dune manire gnrale lorsquune interruption provenant dun priphrique se
produit il faut rpondre plusieurs questions :
Comment lunit centrale peut-elle reconnatre le priphrique ayant mis le signal
dinterruption ?
Comment lunit centrale dtermine ladresse du programme de traitement de
linterruption ?
Comment prendre en compte la situation ou deux, voir plus, interruptions se
produisent simultanment ?
Comment prendre en compte une nouvelle interruption qui se produit pendant
lexcution du programme de traitement dune autre interruption (imbrication des
interruptions) ?
Les signaux
Lorsquun priphrique met une interruption, lunit centrale est prvenue par le
signal INTR. Celle-ci met alors le signal dacquittement INTA, puis elle rserve le
bus de communication et attend que le priphrique envoie le numro de linterruption
en utilisant le bus de communication.
Vecteur dinterruptions
159
Tableau 7.1
VECTEUR DINTERRUPTIONS.
Adresse
(Hxadcimal)
Numro
de linterruption
(Hxadcimal)
0-3
Division par 0
10-13
Dbordement
20-23
Horloge
24-27
Clavier
28-2B
Rserv
2C-2F
Communication1
30-33
Communication2
34-37
Disque
38-3B
Disquette
3C-3F
Imprimante
40-43
10
cran
70-73
1C
Top horloge
7C-7F
1F
Caractres
graphiques dcran
Nom
de linterruption
Point dentre
dans le logiciel
de traitement
Le matriel qui intervient comprend un botier (botier 8259) recevant les interruptions. Pour ce botier les interruptions sont notes IRQx. Ainsi, IRQ1 caractrise une
interruption clavier, IRQ0 linterruption horloge, IRQ5 une interruption disque etc.
la rception dun ou plusieurs signaux le botier met le signal INTR vers le processeur. Il sadresse alors larbitre de bus afin de rserver le bus au travers duquel le
priphrique ayant mis le signal transmet le numro de linterruption. Larbitre de
bus est un module fondamental qui permet le partage dune ressource matrielle
unique (le bus) entre plusieurs utilisateurs potentiels (figure 7.25).
160
7 La fonction dexcution
Vecteur dinterruptions
Botier 8259
INTR
Processeur
80XX
Arbitre
de Bus
INTA
Units dchanges
Figure 7.25
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Units dchanges
Units dchanges
INTR
Botier 8259
INTA
Logique de Contrle
0 0 0 0 0 0 0 0
Priorits
ISR
0 0 0 0 0 0 0 0
IMR
Units dchanges
Figure 7.26
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
IRR
Donnes
Units dchanges
Botier 8259.
Units dchanges
161
Statut
IRQ7
IRQ6
IRQ5
IRQ4
IRQ3
IRQ2
IRQ1
IRQ0
ISR
Priorits
Int. acceptes
0
7
x
0
6
x
0
5
x
0
4
x
0
3
x
0
2
x
0
1
x
0
0
x
0
4
x
0
3
x
0
2
x
0
1
x
0
0
x
Requte Int.
*
ISR
Priorits
Int acceptes
Requte Int.
0
7
0
6
1
5
*
ISR
Priorits
Int acceptes
0
7
0
6
1
5
0
4
1
3
0
2
x
0
1
x
0
0
x
ISR
Priorits
Int acceptes
0
7
0
6
1
5
0
4
x
0
3
x
0
2
x
0
1
x
0
0
x
0
3
x
0
2
x
0
1
x
0
0
x
Fin Int.
Requte Int.
*
ISR
Priorits
Int acceptes
0
7
*
0
6
1
5
1
4
Dans notre exemple, au dbut tous les niveaux dinterruption peuvent tre
accepts : il ny a aucun bit positionn dans lISR. La premire interruption est de
niveau 5 et donc seuls les niveaux de 4 0 peuvent tres honors. Dans le second
tat trois interruptions interviennent simultanment : IRQ3, IRQ4, IRQ7. Larbitre
162
7 La fonction dexcution
limine IRQ7 puisque IRQ5 est en cours de traitement et quelle est plus prioritaire.
Il limine galement IRQ4 puisque IRQ3 est plus prioritaire. IRQ3 provoque donc
lmission dun signal INTR vers le processeur. Le processeur en accuse rception
en positionnant le bit correspondant dans lISR. La procdure de traitement de IRQ5
est interrompue au profit de IRQ3. Lvnement Fin Int. marque la fin du traitement
de IRQ3, le bit 3 de ISR est donc remis 0, ce qui rend ligible les interruptions de
niveaux infrieurs 5. IRQ5 est termine, puis IRQ4 en attente est ensuite traite.
IRQ7 reste en attente.
Ce petit exemple met en vidence la manire de rgler les deux dernires questions poses par la prise en compte dinterruptions (priorit et imbrication). Cest un
mcanisme qui fonctionne sur le mode dune pile, permettant la suspension dun
service de plus faible priorit et sa reprise ds que le service de plus haute priorit est
termin.
7.5
163
ainsi plus dinstructions par seconde. Dans le deuxime cas plusieurs processeurs
travaillent simultanment sur un programme machine ce qui amliore globalement les performances de lordinateur.
7.5.1 Paralllisme des instructions
Lexcution dune instruction peut se dcrire par :
dbut
fetch :
lecture de linstruction et modification du compteur ordinal;
dcodage : reconnaissance de linstruction, lectures de oprandes
ou calcul des adresses mmoire, ou calcul dune adresse
de branchement;
excution : excution des micro-instructions;
rangement : stockage des rsultats;
fin
Technique de pipeline
La figure 7.27 montre que lexcution dune instruction peut tre dcompose en
plusieurs phases qui sexcutent indpendamment les unes des autres si lon dispose
dunits fonctionnelles (du matriel) le permettant. Dans notre exemple lexcution
est ainsi dcompose en 4 phases, chaque phase tant prise en charge par une unit
fonctionnelle diffrente, crant ainsi un pipeline 4 tages.
Dans notre exemple la phase k de linstruction i sexcute en mme temps que la
phase k 1 de linstruction i + 1, que la phase k 2 de linstruction i + 2, etc.
Dans le cas idal chaque phase est ralise en un cycle dhorloge et si une instruction peut tre dcompose en n phases alors n instructions peuvent tre excutes en
parallle. Ainsi pour notre pipeline 4 tages si le cycle horloge est de 2 nanosecondes, alors il faut 8 nanosecondes pour excuter une instruction et cette machine
fonctionne en apparence 80 MIPS1. En ralit la technique du pipeline lui permet
Fetch
i+1
Dcodage
Fetch
i+2
Excution
Dcodage
Fetch
Rangement
Excution
Dcodage
i+3
Fetch
i+4
Figure 7.27
Rangement
Excution
Dcodage
Fetch
Rangement
Excution
Dcodage
Rangement
Excution
Rangement
Pipeline 4 tages.
1. MIPS (Million of Instructions Per Second) est une mesure de performances dun microprocesseur qui mesure le nombre dinstructions excutables par seconde.
164
7 La fonction dexcution
Dcodage
Excution
Rangement
Dcodage
Excution
Rangement
Fetch
Figure 7.28
Pipeline double.
Pour ce pipeline double, une unit unique de chargement charge des paires dinstructions qui sexcutent simultanment dans leur propre pipeline. Cette technique
implique imprativement que les instructions qui sexcutent naient aucune interrelations et dpendances, autrement dit elles ne doivent pas utiliser de ressources
communes. Cest le compilateur qui a en charge la garantie de lindpendance fonctionnelle des instructions (ctait dj le cas pour le pipeline unique). Actuellement
les machines disposent toutes de pipelines simples ou doubles dans les machines
RISC. Le processeur Intel 486 (machine CISC) dispose dun pipeline tandis que le
Pentium (CISC) dispose de deux pipelines 5 tages.
En fait les rgles qui permettent de dterminer si deux instructions dune paire
peuvent effectivement sexcuter simultanment sont extrmement complexes. Une
instruction dune paire peut voir son excution retarde parce quelle nest pas
compatible avec lautre instruction, ce qui oblige rorganiser lordonnancement de
lexcution des instructions pour profiter de lefficacit des pipelines doubles. Il
sagit du concept dordonnancement dynamique des instructions. Cest le compilateur qui est charg de cette rorganisation trs complexe. Plusieurs tudes montrent
165
que lon peut avoir des gains de performances allant du simple au double entre le
processeur 486 et le Pentium fonctionnant la mme frquence dhorloge par utilisation du pipeline double du Pentium.
Architecture superscalaire
Une autre approche consiste disposer dans le pipeline de plusieurs units dexcutions (figure 7.29).
Excution
Fetch
Dcodage
Excution
Rangement
Excution
Figure 7.29
Architecture superscalaire.
166
7 La fonction dexcution
Dans un tel systme tous les processeurs sont autonomes et possdent chacun leur
unit de commande et leur UAL mais ils partagent la mmoire centrale. Chaque
processeur utilise une partie de cette mmoire. A priori chaque processeur peut lire
et/ou crire dans la mmoire partage et cest au systme dexploitation de grer les
conflits daccs cette ressource commune partage. Plusieurs implantations dune
telle architecture sont possibles :
les processeurs se partagent laccs la mmoire commune au travers dun bus
unique, ce qui gnre un grand nombre de conflits daccs la mmoire;
les processeurs disposent de mmoires prives pour les instructions et les donnes
qui nont pas tre partages.
Les multiprocesseurs sont relativement simples programmer ce qui en fait leur
intrt.
Les multi-ordinateurs
7.6
CONCLUSION
Dans cette partie nous avons vu que lobjet de la fonction dexcution dun ordinateur est dexcuter une suite dinstructions sur un ensemble de donnes. Pour cela un
problme est traduit en une suite dinstructions machines caractristiques dun
processeur capable de les excuter en utilisant un ensemble de circuits lectroniques.
Nous avons t amens indiquer que le programme machine excutable doit tre
plac dans la mmoire principale (mmoire centrale, mmoire RAM) et que le microprocesseur excute ce programme instruction aprs instruction selon un algorithme
prcis. En fait en prsentant ce chapitre nous avons prsent les fonctions essentielles de lexcution dun programme reposant sur une architecture de machine dite
architecture de Von Neumann qui correspond encore larchitecture la plus rpandue.
Dans la partie amlioration des performances nous avons voqu diffrentes possibilits daugmentation des performances par la paralllisation des instructions et des
processeurs. Cet aspect des choses nous amne en fait considrer plusieurs architectures possibles de machines. En 1972 Flynn propose une classification des machines
7.6 Conclusion
167
qui sappuie sur le fait que lexcution dun programme correspond lexcution
dun flux dinstruction portant sur un flux de donnes. Il y a alors quatre manires
dassocier flux dinstructions et flux de donnes, ces quatre manires caractrisant
quatre architectures possibles de machines. Ces diffrentes possibilits sont rsumes dans le tableau 7.3.
Tableau 7.3
Flux dinstructions
Flux de donnes
Dsignation
Type de machine
SISD :
Single Instruction
Single Data
Von Neumann
Plusieurs
SIMD :
Single Instruction
Multiple Data
Calculateur
vectoriel
Plusieurs
MISD :
Multiple Instruction
Single Data
Plusieurs
Plusieurs
MIMD :
Mutiple Instruction
Multiple Data
Multiprocesseur,
Multicalculateur
Chapitre 8
La fonction
de mmorisation
Ce chapitre est consacr ltude de la fonction de mmorisation. Celle-ci est organise autour de plusieurs niveaux de mmoire qui ralisent ainsi une hirarchie de
mmoires, dont le but principal est de simuler lexistence dune mmoire de grande
capacit et de grande vitesse. Dans cette hirarchie, les mmoires les plus proches du
processeur sont les mmoires les plus rapides mais aussi les plus petites en capacit.
Au contraire, les mmoires les plus loignes du processeur sont les plus lentes mais
sont de grandes capacits. Nous commenons par tudier physiquement les diffrents types de mmoires existantes sur un ordinateur, telles que les mmoires RAM
et ROM. Puis dans une seconde partie consacre lamlioration des performances,
nous abordons les mcanismes de mmoire caches et de mmoire virtuelle. Nous
terminons par un complment sur les architectures RISC et CISC.
8.1
GNRALITS
Nous avons vu que le programme et les donnes sont enregistrs dans la mmoire
centrale (la mmoire RAM) pour tre excuts par le processeur central (microprocesseur). Lors de lexcution dune instruction, le processeur utilise des registres,
qui sont galement des zones de stockage de linformation. Au moment du dmarrage
de lordinateur sexcute un programme prenregistr dans une mmoire spcialise
(la mmoire ROM) qui charge dans la mmoire centrale le noyau du systme dexploitation partir du disque magntique. Lors de lexcution dune instruction par le
8.1 Gnralits
169
processeur nous avons vu que le processeur peut excuter des cycles dhorloge sans
avoir dactivit : il attend la rponse de la mmoire une demande de lecture. Pour
harmoniser les vitesses du processeur et la mmoire RAM, et ainsi amliorer les
performances, une mmoire plus rapide est place entre le processeur et la mmoire
RAM : cest la mmoire cache. Ainsi la mmorisation de linformation dans un ordinateur ne se fait pas en un lieu unique mais, comme le montre la figure 8.1, est organise au travers dune hirarchie de mmoires.
Vitesse la plus rapide
6-35 ns
Registres
Mmoire Cache
Mmoire centrale
70-120 ns
Mmoire dappui
Mmoire Externe
Figure 8.1
Hirarchie de mmoires.
Toutes les mmoires, mme si elles participent la mme fonction, ne jouent pas
le mme rle et on peut arbitrairement les classer en deux grandes catgories :
les mmoires de travail dsignent les mmoires qui sont actives dans lexcution
dun programme. On y trouve les registres du processeur, la mmoire centrale, la
mmoire cache, la mmoire dappui, la mmoire morte. Ce sont des mmoires
lectroniques;
les mmoires de stockage telles que le disque magntique ont pour objet de conserver
de manire permanente de grandes quantits dinformations. Les informations qui
y sont stockes ne participent pas directement lexcution dun programme mais
doivent tres charges en mmoire centrale pour tre exploites par le processeur.
Ce sont les mmoires de masses, elles sont de type magntique ou optique.
La fonction de mmorisation peut tre considre selon deux angles :
lorganisation gnrale et le fonctionnement des diffrentes mmoires. Cest cet
aspect que nous traiterons dans ce chapitre;
170
8 La fonction de mmorisation
Terminologie
Abrviation
Capacit en octets
Kilo-octet
Ko
1 024 octets
210 octets
Mga-octet
Mo
1 024 Ko
220 octets
Giga-octet
Go
1 024 Mo
230 octets
Tra-octet
To
1 024 Go
240 octets
171
8.2
MMOIRES DE TRAVAIL
Dans cette partie nous examinons selon divers points de vue les diffrentes mmoires
de travail : RAM, ROM, registres. Nous consacrerons un paragraphe particulier aux
mmoires caches qui bien que faisant parties des mmoires de travail jouent un rle
si important que nous avons souhait les traiter part. Dans une premire partie nous
abordons une approche externe, puis un point de vue interne o pour quelques cas
nous prsentons des exemples de ralisation possible.
8.2.1 Les mmoires vives
Ce sont des mmoires sur lesquelles les oprations de lecture et dcriture sont possibles. Ce sont les mmoires dites RAM (Random Access Memory), o le temps daccs
est indpendant de la place de linformation dans la mmoire. Elles sont volatiles et
le risque de perte dinformations est non ngligeable (microcoupures de lalimentation). Le temps daccs est trs faible (mmoire rapide) et la consommation lectrique est faible. Elles sont essentiellement utilises en tant que mmoire centrale et
mmoires caches.
172
8 La fonction de mmorisation
La figure 8.2 prsente schmatiquement les diffrentes mmoires vives que lon trouve
actuellement :
Les mmoires SRAM (Static RAM) sont construites partir de bascules de transistors qui permettent, si lalimentation est maintenue, de conserver linformation
trs longtemps. Ce sont des mmoires trs rapides mais chres et qui induisent des
difficults dintgration. Elles sont de faibles capacits et sont plutt rserves
aux mmoires caches.
Les mmoires DRAM (Dynamic RAM) sont la base des mmoires centrales. Le bit
est associ un seul transistor (contrairement aux SRAM) ce qui offre donc une
trs grande conomie de place et favorise une grande densit dintgration. Le
transistor est associ la charge dun condensateur qui diminue avec le temps. La
DRAM est donc volatile et ncessite un rafrachissement rgulier. Ces mmoires
sont en trs forte volution tant au plan des cots que des performances. Les
mmoires EDO sont de type DRAM traditionnelle mais leur temps de latence est
beaucoup plus faible et permet donc des temps daccs plus petits. La mmoire
SDRAM permet des changes synchroniss avec le processeur. On peut ainsi viter
les temps dattente (Wait State). Une volution des SDRAM est la DDR SDRAM
(ou SDRAM II) qui double le taux de transfert actuel des SDRAM. La RDRAM,
produit de la socit Rambus, est de conception trs nouvelle et originale. Elle
permet des taux de transfert 10 fois plus levs que ceux des DRAM traditionnelles,
mais ncessite des contrleurs spcifiques ce qui en limite lusage. Intel soriente vers
le dveloppement de DRDRAM qui permettrait datteindre des dbits de 1,6 Go/s.
Statiques
Mmoires
vives
Dynamiques
SRAM
Static Random Access Memory
6 15 nanosecondes
DRAM
Dynamic Random Access Memory
60 70 nanosecondes
EDO
Extended Data Out
40 70 nanosecondes
SDRAM
Synchronous DRAM
10 12 nanosecondes
DDR SDRAM
Double Data Rate
Double le taux de transfert
des SDRAM actuelles
RDRAM
Rambus DRAM
10 fois plus rapide
quune DRAM classique
DRDRAM
Direct Rambus DRAM
< 5 nanosecondes
173
SDRAM
DDR
RDRAM
Largeur
(bits)
Broches
168
64
184
Frquence
(Mhz)
100
64
184
200
16
800
Bande
passante
Commentaires
800 Mo/s
1 600 Mo/s
1 600 Mo/s
Les capacits des mmoires sont en fortes volutions et lon peut prvoir dans les
annes venir des capacits de plusieurs giga-octets quivalentes aux capacits actuelles
de disques magntiques.
Brochage et fonctionnement
Read
Write
Slection
Prte
Figure 8.3
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
Brochage mmoire.
Adresses
Vcc
D0
D1
D2
D3
D4
D5
D6
D7
R
W
CS
Ready
Donnes
Alimentation
RAM
Il existe plusieurs manires de raliser une mmoire dune capacit dtermine. Soit
par exemple une mmoire dune capacit de 8 Ko soit 64 kbits. Elle peut tre ralise
selon le brochage de la figure 8.3.
174
8 La fonction de mmorisation
Les broches :
A0 A12 correspondent aux broches dadressage (bus dadresses);
D0 D7 correspondent aux donnes (bus de donnes);
R, W correspondent au bus de commandes pour dclencher une lecture ou une
criture ;
CS permet la slection dun botier de mmoire (puce mmoire);
ready est un signal sortant vers le processeur permettant de synchroniser la frquence
dhorloge de la mmoire avec celle du processeur.
Cette puce mmoire a donc une capacit de 213 mots de 8 bits (soit 213 octets, ou
2 bits).
Les oprations possibles sont la lecture ou lcriture mmoire. Cest le processeur
qui ralise ces oprations :
16
Alimentation
Vcc
Read
Write
Slection
Prte
R
W
CS
Ready
RAM
Donnes
Figure 8.4
A0
A1
A2
A3
A4
A5
A6
A7
L
C
Adresses
On voit donc que cette organisation permet ladressage dun octet et le dclenchement dune opration de lecture ou dcriture en un seul cycle mmoire. On peut maintenant organiser cette mmoire sous la forme dune matrice de lignes et colonnes de
bits (ici 8 lignes et 8 colonnes, soit 28 28 = 216 bits). Cela correspond au brochage
de la figure 8.4.
175
Les broches A0 A7 permettent dadresser soit une ligne soit une colonne, D correspond la donne slectionne, L et C permettent de valider la ligne et la colonne
slectionne.
Le fonctionnement ne sera donc pas le mme que dans le cas prcdent :
Pour raliser une lecture, le processeur :
1. slectionne une ligne en dposant une adresse sur le bus dadresses;
2. valide la ligne en activant L;
3. slectionne une colonne en dposant une adresse sur le bus dadresses;
4. valide la colonne en activant C;
5. active la commande de lecture;
6. lit la donne sur le bus de donnes cest--dire un bit.
La ralisation dune opration dcriture sentend facilement partir de lexemple
de la lecture.
La deuxime organisation minimise le nombre de broches pour la ralisation de
ce type de botier. Par contre les oprations de lecture et dcriture sont plus longues
raliser quavec la premire organisation. Les mmoires de grandes capacits sont
souvent construites sous la forme dune matrice de lignes et de colonnes afin de
diminuer les cots de ralisation.
La figure 8.5 fournit un schma synthtique reliant le botier processeur aux botiers
mmoire centrale.
Bus dadresses
Bus de donnes
Bus
Bus de commandes
Vcc
Autres signaux
(Ex. : Interruptions)
Mmoire prte
Figure 8.5
Vcc
D0
D1
D2
D3
D4
D5
D6
D7
R
W
CS
Ready
RAM
D0
D1
D2
D3
D4
D5
D6
D7
R
W
Slection
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
Microprocesseur
Vcc
GND
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
176
8 La fonction de mmorisation
La mmoire centrale est construite autour dun ensemble de bits raliss partir de
circuits permettant de coder une information sous forme binaire, que lon note 0 ou 1.
Cest la plus petite unit de stockage.
Elle est organise comme un ensemble de cellules contenant linformation. Chaque
cellule contient le mme nombre de bits et est adressable : elle est identifie par un
numro qui permet de la rfrencer dans les oprations de lecture/criture mmoire.
La taille des cellules est trs variable en fonction des mmoires mais les adresses des
cellules sont toujours conscutives. La cellule mmoire correspond la plus petite
quantit de mmoire adressable. Depuis quelques annes les fabricants semblent se
mettre daccord sur des cellules dune taille de 8 bits (octet ou byte). Un mot mmoire
est constitu par un ensemble doctets et correspond linformation manipule par
les instructions machines. Les mots sont de tailles variables, par exemple une machine
32 bits dispose dinstructions manipulant des mots de 32 bits et est donc construite
avec des registres de 32 bits.
La mmoire centrale dialogue avec le processeur pour changer (lecture/criture)
des informations. La figure 8.6 illustre lorganisation dune mmoire RAM. Il sagit
ici dune mmoire conventionnelle rapide o lon slectionne une ligne (une cellule)
et lon accde en une seule opration au contenu de cette cellule.
Une opration dcriture est, dans ce cas, ralise en trois phases : (1) dpt de
ladresse de la cellule sur le bus dadresses, (2) dpt du contenu crire sur le bus
de donnes et (3) dpt dune commande dcriture sur le bus de commandes.
Le contenu du bus dadresses est plac en entre dun circuit de slection (dcodeur dadresses) permettant de slectionner la cellule mmoire correspondant la
177
valeur dpose sur le bus dadresses. Le contenu du bus de donnes est plac en
entre de circuits dchanges qui servent de tampons entre le bus de donnes et la
cellule mmoire slectionne.
Le cas dune lecture se dduit facilement de celui dune criture (dposer une
adresse, commander une lecture, lire le contenu du bus de donnes).
Microprocesseur
3
1
Adresses
0
1
0
BUS
Donnes
Cellule mmoire
Multiplexeur
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0 0 1 1 0 0 0 1 1 1 0 0 1
1 1 0 0 1 1 1 0 0 0 1 1 0
0 0 0 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 1 1 0 0 1 0 1 0
1 1 0 0 1 1 1 0 0 1 0 1 0
0 0 1 0 0 1 0 1 0 1 0 1 1
0 0 1 1 0 0 0 1 1 1 0 0 1
1 1 0 1 1 0 1 0 1 0 1 1 0
Circuits permettant lchange
Tampon
dentres/Sorties
des
donnes
Multiplexeur
0
1
1
1
1
0
0
1
0
1
2
3
4
5
6
7
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
Figure 8.6
Mmoire Centrale
1
Circuit de slection
dadresses Dcodeur
Commandes
Bits
178
8 La fonction de mmorisation
Bit
Codage binaire : 0 , 1
E 15 E 14 E 13 E 12 E 11 E 10 E 9 E 8 E 7 E 6 E 5 E 4 E 3 E 2 E 1 E 0
Mot
C
S 15 S 14 S 13 S 12 S 11 S 10 S 9 S 8 S 7 S 6 S 5 S 4 S 3 S 2 S 1 S 0
Figure 8.7
Un bit de mmorisation.
0
0
1
1
Figure 8.8
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
179
donne une sortie 0. Ltat du bit est donc conserv. La caractristique de tels
circuits est de garder la mmorisation aussi longtemps que lalimentation lectrique est maintenue. Les mmoires SRAM sont conues partir de circuits de
cette nature;
dune association dun transistor et dun petit condensateur. Si le condensateur
prsente une charge lectrique, alors la valeur code du bit vaut 1 sinon elle vaut 0.
Malheureusement les condensateurs ne gardent pas une charge constante, elle
diminue avec le temps, il est donc ncessaire de rafrachir ce circuit pour maintenir le bit une valeur stable. Cette caractristique complexifie la ralisation de
telles mmoires. Cependant un bit ne ncessite ici quun transistor pour sa ralisation alors quil en faut plusieurs pour raliser une bascule, do une beaucoup plus
grande densit dintgration. Les mmoires DRAM sont ralises partir de tels
circuits. Leur dfaut essentiel est le temps daccs qui est important.
E
C
01
C E S
0
Dec
1 0 0
1 1 1
Dcodeur
Slection
Dans nos ordinateurs nous trouvons donc les deux types de mmoires, SRAM plutt
pour les mmoires caches, et DRAM plutt pour les mmoires centrales.
La figure 8.9 est une illustration de la ralisation dune mmoire partir de
bascules D. On y trouve les bascules supportant les bits, les circuits de dcodage
dadresses, de slection dun mot mmoire, dchanges et les barrires dentre et de
Barrire
dentre
E S
C
0 11
1
Bus de donnes
Bus dadresses
Slection botier. CS = 1
Commande : Lecture/criture
Figure 8.9
criture 1
Barrire
de sortie
180
8 La fonction de mmorisation
Mmoires
mortes
181
ROM
PROM
Programmable ROM.
Permet une criture unique mais faite par lutilisateur au moyen dune
machine spciale.
Ces mmoires comprennent un ensemble de fusibles qui sont dtruits
lors de la programmation de la mmoire.
EPROM
Electrically EPROM.
Elles sont effaables lectriquement sans intervention
EEPROM dun rayonnement ultraviolet. Elles ne sont pas volatiles, facilement
rutilisables mais leur prix de revient et leur capacit (infrieur 2 Mo)
ne les rendent pas trs courantes.
Flash
Figure 8.10
VCC
E15 E14 E13 E12 E11 E10 E9 E8
CLR
8.3
S9
E7
S8
E6
S7 S6
E5
S5
E4 E3 E2
S4
S3 S2
E1 E0
S1
S0
182
8 La fonction de mmorisation
Bras
d < 1mm
Support magntisable
1 0 0 1 0 1
Secteur
Pistes
Tte
Sens de rotation
Figure 8.12
183
contenant pas de bits, constituant le gap inter secteur. Lopration de formatage consiste
organiser le disque en pistes et secteurs. Ainsi la capacit de stockage dun disque
format est infrieure la capacit dun disque non format (figure 8.12).
Chaque piste a une largeur de quelques microns (un micron = un millime de mm).
Un bit sur une piste a une largeur de quelques dizaines de microns. Cette largeur dpend
essentiellement de la largeur de la tte de lecture. Sur les disques courants on dnombre
de 800 2 000 pistes par centimtre.
On appelle densit denregistrement le nombre de bits par millimtre. Cette densit
est variable selon la qualit des disques et peut varier entre 50 000 et 100 000 bits
par centimtre.
Les pistes sont des cercles concentriques et donc la longueur des pistes nest pas
constante, elle dpend de lloignement de la piste par rapport au centre du plateau.
Ainsi les secteurs ne sont pas de longueur constante ce qui pose un problme si lon
veut que chaque secteur ait une capacit constante (chaque secteur contient le mme
nombre de bits). Pour remdier cela on peut avoir une densit denregistrement qui
dpend de la piste : elle est plus faible pour les pistes les plus proches du bord, plus
forte pour les pistes proches du centre. Ainsi lorsquon parle de densit denregistrement on parle de densit moyenne correspondant la densit denregistrement des
pistes mdianes. Une autre solution consiste avoir un nombre de secteurs par piste
variable en fonction de la piste : les pistes externes contiennent plus de secteurs que
les pistes proches du centre. Cette technique plus complexe implanter donne une
plus grande capacit de stockage.
Les secteurs ont le plus frquemment des capacits de stockage de 512 ou 1 024 octets.
Les ttes de lecture/criture sont portes par des bras qui se dplacent radialement de
lintrieur vers lextrieur et inversement. Entre chaque piste existe un espace inter
piste. Un disque magntique est gnralement constitu de plusieurs plateaux ayant
tous le mme nombre de pistes. On appelle cylindre lensemble des pistes situes la
mme distance de laxe de rotation du disque.
En mmoire centrale une information est repre par ladresse du mot la contenant.
Sur un disque magntique ladresse dune information est un triplet : numro de
cylindre, numro de bras, numro de secteur. Lire une donne consiste donc trouver
ladresse de dbut dun secteur et dclencher la lecture du secteur. On trouve ensuite
la donne prcise en analysant le contenu du secteur. Cest le systme dexploitation
au travers du systme de gestion des fichiers (SGF) qui grent les adresses physiques
des informations stockes.
Temps daccs une information
Trouver une information consiste dabord positionner le bon bras sur le bon cylindre :
cest lopration de dplacement du bras caractrise par le temps de dplacement
du bras. La piste adquate est alors slectionne. Il faut ensuite trouver le bon secteur.
Le temps de positionnement de la tte sur le bon secteur est variable : soit le dbut
184
8 La fonction de mmorisation
du secteur cherch est juste sous la tte et le temps de positionnement est nul, soit le
dbut du secteur vient de passer sous la tte et il faut faire un tour de disque complet
pour retrouver le dbut du secteur cherch. On parle donc gnralement de temps
moyen de positionnement de la tte, ce temps moyen correspond un demi-tour de
disque. Le temps de latence rotationnel mesure le dlai pour que la tte de lecture
soit place sur le dbut du bon secteur (figure 8.13).
Donnes transfrer
tb
tt
td
Enfin, il faut lire (crire) le contenu du secteur. Le temps de lecture (criture) est
caractris par la vitesse de transfert de linformation ou dbit. Cette vitesse dpend
de la densit denregistrement et de la vitesse de rotation du disque. Les vitesses
classiques de rotation sont de 5 400 et 7 200 tours/minute. Les dbits types sont de
lordre de 5 20 Mo/s. Ce sont donc les temps de dplacement et de positionnement
de la tte qui pnalisent le plus les performances dun disque magntique.
Pour avoir de bonnes performances il apparat clairement quil ne faut pas que les
informations soient stockes dans des secteurs alatoires du disque. Il faut essayer
de regrouper les donnes dans des secteurs contigus. Lusage du disque induit ncessairement une fragmentation qui correspond au fait que linformation est distribue
alatoirement sur le disque. Lopration de dfragmentation consiste utiliser un
logiciel permettant de rorganiser le disque de manire ce que les donnes soient
places des adresses contigus.
8.4
185
peut engendrer des actions 109 fois par seconde. Une mmoire DRAM dont le temps
daccs est de 20 nanosecondes pourra fournir 5 107 informations par seconde.
Lcart est donc considrable et le processeur ne fonctionne pas au meilleur rythme.
Les mmoires SRAM ont une densit dintgration trop faible et un cot trop lev
pour constituer des mmoires centrales de grandes capacits.
Dans une architecture de machine de type Von Neumann (qui correspond nos
machines) les changes, entre le processeur et la mmoire, sont trs nombreux puisquun
programme et ses donnes doivent tres placs en mmoire centrale afin dtre excuts
par le processeur. On sait techniquement raliser des mmoires trs rapides, qui ne
pnaliseraient pas le processeur, mais condition quelles soient places trs prs du
processeur. En effet cest souvent le temps de transfert par le bus qui est un facteur
de ralentissement.
On peut envisager plusieurs solutions pour amliorer les performances :
augmenter la frquence des mmoires, ce qui amliorerait la bande passante. On
constate cependant que cette volution est lente;
augmenter la largeur du bus, ce qui augmenterait aussi la bande passante mais qui
nest pas facile raliser, cause en particulier de lencombrement;
rduire les besoins en bande passante pour le processeur. Cest ce qui est fait avec
lutilisation des mmoires cache (antmmoire).
Principe de fonctionnement
Le principe est de faire cooprer des mmoires de faible capacit, trs rapides et
proximit du processeur avec des mmoires plus lentes et de grandes capacits
(figure 8.14). Les mots de mmoire centrale les plus frquemment utiliss sont placs
dans le cache. Le processeur cherche dabord le mot dans le cache, sil est prsent il
lobtient rapidement. Si le mot nest pas prsent, le processeur fait un accs la
mmoire centrale (plus lente) et place ce mot dans le cache. Ultrieurement si ce mot
est demand il sera obtenu plus rapidement.
Processeur
Registres
Mmoire
Cache
Mmoire Centrale
Bus local
SRAM
Bus
Figure 8.14
Hirarchie de mmoires.
DRAM
186
8 La fonction de mmorisation
Le processeur cherche dabord si le mot mmoire adress est dans le cache (mot
prsent). Si linformation est prsente on parle de succs (cache hit). Le cache est de
petite taille et ne contient pas toute linformation de la mmoire centrale : linformation peut donc ne pas tre dans le cache, on parle alors dchec (cache miss). Dans ce
dernier cas, il faut aller chercher linformation dans la mmoire centrale et placer
celle-ci dans le cache (charger cache) avec ventuellement un remplacement dinformations actuellement prsentes dans le cache puisque le cache est de taille finie
(charger cache (remplacer)). Enfin, le processeur est charg avec linformation maintenant disponible dans le cache.
Lefficacit du cache dpend donc de son taux de succs et donc de la probabilit
de prsence dans le cache du mot cherch. Aprs un chec le cache est charg avec le
mot manquant, ainsi si ce mot est redemand ultrieurement, il sera obtenu conformment au temps daccs du cache (donc plus rapidement que sil tait en mmoire
centrale).
Un programme ne sexcute pas de manire alatoire : de nombreuses tudes
statistiques montrent que lorsquune instruction rfrence une adresse il est trs
probable que la rfrence mmoire qui suit soit dans le voisinage de cette adresse.
En effet les programmes travaillent sur des informations organises par des structures
de donnes (exemple les tableaux) qui les placent dans des adresses mmoires trs
proches les unes des autres (ces adresses sont contigus dans le cas des tableaux).
Par ailleurs les instructions dun programme sont places dans des mots mmoires
contigus et le flux dexcution se fait squentiellement (instruction aprs instruction)
sauf dans le cas de branchements ou de droutements.
Ainsi quand une instruction sexcute, il est trs probable que la prochaine instruction excuter soit dans le mot suivant de la mmoire : cest le principe de localit
spatiale. Ce principe nous conduit penser que lorsquune donne ou une instruction
doit tre charge dans un cache il serait intressant de charger galement les donnes
(et/ou instructions) qui sont proches en mmoire. On augmente ainsi la probabilit
que le processeur trouve la prochaine donne (ou instruction) dans le cache.
Les programmes font beaucoup ditrations et les donnes qui y sont traites sont
trs souvent utilises dans de courts laps de temps (une variable qui pilote une boucle
187
sera trs souvent utilise et il est intressant quelle soit place dans le cache). Aussi,
lorsque le processeur rfrence un mot donn, il existe une trs forte probabilit que
le processeur rfrence de nouveau ce mot dans les instants qui suivent. Cest le principe de localit temporelle.
Ces deux principes de localit sont la base des systmes utilisant les caches.
Si Teff est le temps effectif pour accder une information, h la probabilit de
prsence de linformation dans le cache, Tc le temps daccs au cache et Tm le temps
daccs la mmoire centrale, le temps daccs effectif sexprime par :
Teff = h Tc + (1 h) Tm
Si par exemple Tm/Tc = 10 (le temps daccs du cache est dix fois plus petit que
celui de la mmoire centrale) on montre facilement quune variation de 1 % de h
entrane une variation de 10 % de Teff.
Ce rsultat montre quil faut soigneusement organiser les caches afin daugmenter
la probabilit de prsence dune information dans le cache et ainsi diminuer le temps
effectif daccs linformation.
Lorsque le processeur doit crire un rsultat il doit accder la mmoire cache
pour vrifier si linformation est prsente dans le cache et ventuellement la modifier.
La mmoire cache ne contient pas toutes les informations de la mmoire centrale
mais cette dernire contient toutes les informations du cache et il faut maintenir la
cohrence des informations entre le cache et la mmoire principale. Une criture
dans le cache modifiant une information doit donc entraner la modification de cette
information dans la mmoire centrale.
Lalgorithme suivant dcrit le fonctionnement dune criture :
si mot prsent
alors
modifier cache;
modifier mmoire principale;
sinon
modifier mmoire principale;
finsi
Quand on doit modifier le cache il faut modifier la mmoire principale. Il existe
plusieurs techniques pour raliser cette modification :
criture immdiate (Write through). On crit simultanment dans le cache et la
mmoire principale. On garantit donc la cohrence;
criture diffre (Write back). Il y a l encore plusieurs techniques. On peut mettre
jour la mmoire centrale quand linformation de la mmoire cache doit tre
remplace ou ds que le bus de communication est libre. Dans ces techniques on ne
garantit pas en permanence la cohrence, mais le temps dcriture est plus faible.
Organisation et fonctionnement : gnralits
188
8 La fonction de mmorisation
Mmoire cache
020
Comparateur
Cl
Rpertoire
Mmoire des cls
Figure 8.15
Mot
Lignes
a b c
Mmoire utile
Information associe la cl
000
004
008
012
016
020
024
028
032
189
mation il faut dabord vrifier si elle est prsente. Pour que le cache soit efficace,
lorganisation et la conception des caches doivent minimiser ce temps de vrification;
le nombre et la localisation du ou des caches.
Les diffrents types de cache
Cache direct
01
02
02
02
00
99
03
00
99
04
0 2
a b c d e f g h i j
02
02
02
02
02
0
1
2
3
4
0
0a b c d e f g h i j
0
0
0
02 9 0
03 0 0
03 1 0
Rpertoire
Mmoire Utile
Comparateur
Dunod La photocopie non autorise est un dlit.
00 0 0
00 1 0
00 2 0
Figure 8.16
99 9 0
Mmoire centrale
190
8 La fonction de mmorisation
Chaque ligne du cache comprend donc un bit de validit, une cl et une ligne de
donnes.
Lorsquune adresse est prsente au cache, le contrleur de cache dcompose
cette adresse en trois parties : lindex, ltiquette et loffset. Lindex repre une entre
du cache, tandis que loffset repre un mot lintrieur dune ligne de cache. Notre
exemple comprend dix lignes de cache, il suffit donc dun seul symbole pour rfrencer toutes les entres du cache. Par ailleurs, comme il y a 10 mots par ligne, il
suffit de mme dun seul symbole pour numroter tous les mots dune ligne de cache.
Comme ladresse est code sur 4 symboles, il reste 2 symboles pour fixer la valeur
de ltiquette. Pour vrifier si une donne est dans le cache le contrleur de cache
extrait la valeur dindex de ladresse et le comparateur vrifie que lentre pointe
par lindex contient bien ltiquette. Si cest vrai alors la donne est prsente dans la
mmoire utile.
Le fonctionnement de ce cache est rsum par lalgorithme :
si rpertoire[index] = tiquette
alors
charger le processeur avec mmoire_utile[index, offset];
sinon
sauvegarder mmoire_utile[index] dans la mmoire centrale;
rpertoire[index] = tiquette;
charger mmoire_utile[index] partir de la mmoire centrale;
charger le processeur avec mmoire_utile[index, offset];
finsi
Supposons maintenant que le cache soit celui de lexemple et que dans ces conditions le processeur excute le programme suivant :
1.
2.
3.
4.
5.
Load
Load
Load
Load
Load
D,
D,
D,
D,
D,
R,
R,
R,
R,
R,
0215
0212
0114
0225
0116
191
Le dfaut principal de ce cache est quil peut exister des collisions : cest ce qui sest
produit lors de lexcution de linstruction 3. Les adresses 001x, 021x, 031x, etc.
produisent des collisions puisquelles ont toutes la mme valeur dindex (1) et donc
rfrencent la mme ligne de cache. Un cas trs dfavorable est celui o lon ne fait
( cause des collisions) que charger des lignes de caches, car les accs sont systmatiquement en collision. Dans ce cas le cache serait plus lent que la mmoire centrale.
Ce cache est simple, facile raliser et donne de bons rsultats. Cest le cache le plus
commun dans nos machines.
Cache purement associatif
Ce type de cache est plus complexe et plus cher construire. Il y a autant de comparateurs que de lignes de cache. Le chargement dans le cache dune ligne de mmoire
nest pas fix par une valeur dindex comme dans le cas du cache direct, cest--dire
quune ligne de donnes entre dans nimporte quelle entre libre du cache. Ladresse
est interprte comme une tiquette et un offset. Le contrleur de cache vrifie en
une seule opration (cest pourquoi il y a autant de comparateurs que de lignes) si
une tiquette est prsente dans une des lignes du rpertoire. Si la rponse est un
succs cest que la donne cherche est dans la mmoire utile.
Etiquette
Offset
Load D, R
0
1
2
3
4
5
6
7
8
9
0000
0010
0020
001
003
022
023
0220
0230 a b c d e f g h i j
a b c d e fgh i j
000
998
Rpertoire
Mmoire Utile
Comparateurs
Figure 8.17
9970
9980
9990
Mmoire centrale
Ainsi sur la figure 8.17, la recherche dans le cache du mot dadresse 0235 est un
succs. Ltiquette 023 est prsente au rpertoire du cache et la comparaison aboutit
dlivrer la ligne 4 du cache comme tant celle contenant le mot cherch. Loffset 5
permet de rcuprer effectivement le mot f .
192
8 La fonction de mmorisation
Le cache mixte (figure 8.18), utilis dans certains de nos micro-ordinateurs, utilise
les techniques des deux caches prcdents. Le cache est divis en blocs grs comme
193
des caches directs et il existe un comparateur par bloc. Lorsquune adresse est prsente
au cache, lindex rfrence simultanment une ligne par bloc et en une seule opration les comparateurs vrifient si ltiquette est dans une des lignes. En cas dchec,
la ligne de mmoire correspondante doit tre charge dans une des lignes rfrences.
Il faut donc utiliser un algorithme de remplacement pour choisir laquelle des lignes
remplacer, si celles-ci sont toutes occupes.
Le fonctionnement de ce type de cache est dcrit par lalgorithme :
si rpertoires[index] contient tiquette
alors
charger memoire_utile[bloc, index, offset] dans le processeur;
sinon
choisir bloc pour remplacer ligne;
remplacer ligne dans bloc choisi;
charger mmoire_utile[bloc choisi, index, offset] dans le
processeur;
finsi
tiquette
Index
Offset
Bloc 1
Bloc 2
Bloc 3
Figure 8.18
Cache mixte.
Lobjet des caches est damliorer la bande passante de la mmoire afin daugmenter
la quantit dinformations transfre au processeur par unit de temps. Une des
manires de raliser cet objectif est daugmenter la frquence des mmoires (dimi-
194
8 La fonction de mmorisation
nuer les temps daccs) mais aussi damliorer la qualit des transferts entre processeur et mmoire. Dans cet esprit lide est de rapprocher le plus possible la mmoire
du processeur afin de diminuer les dlais dacheminements, lidal tant de placer la
mmoire dans la puce du processeur. Malheureusement les mmoires rapides ont un
faible degr dintgration et on ne peut pas loger des mmoires rapides de grande
capacit dans la puce du processeur. Une hirarchie de mmoires est donc mise en
place sur trois niveaux :
le premier niveau de mmoire cache, petite et trs rapide, est plac dans le
processeur;
le deuxime niveau, de capacit plus importante et daccs galement rapide, est
mis lextrieur du processeur;
le troisime niveau est constitu par la mmoire centrale (figure 8.19).
Le premier niveau est dsign sous le vocable de cache de niveau 1, le second niveau
constitue quant lui le cache de niveau 2. Les caches de niveau 1 et 2 sont relis par
un bus local priv trs rapide afin de diminuer les temps de transferts entre ces
caches. Le processeur cherche dabord la donne ou linstruction dans le cache de
niveau 1, en cas dchec linformation est cherche dans le cache de niveau 2, enfin
dans la mmoire centrale en cas dchec au niveau 2. Un bon fonctionnement implique
que toute linformation du cache 1 se retrouve dans le cache de niveau 2 et que linformation du cache de niveau 2 est dans la mmoire centrale.
Processeur
Cache de niveau 1
Cache de niveau 2
Mmoire centrale
SRAM
Bus local
Instructions
DRAM
Donnes
Bus
Figure 8.19
Le plus souvent, au niveau 1, il existe deux caches spars, un pour les instructions
et un pour les donnes. Ces deux caches fonctionnent en paralllisme total et profitent au maximum des techniques de pipeline que lon trouve sur les ordinateurs
modernes. Le cache de niveau 2 est unique et mlange donnes et instructions.
195
Jusqu prsent nous avons implicitement (et explicitement) fait lhypothse que le
programme machine tait intgralement prsent dans la mmoire centrale. Ceci impose
donc que la taille du programme soit plus petite que la taille de la mmoire physique.
Cette hypothse implique que le compilateur ou le chargeur (voir chapitre 1, Du
problme au programme machine) attribue chaque donne ou instruction une adresse
physique en mmoire centrale. Il nest pas toujours possible de tenir cette hypothse,
ni mme souhaitable en terme defficacit. Nous avons vu que le processeur est
ralenti par les autres modules de lordinateur (temps daccs la mmoire centrale
mais aussi gestion des entres-sorties) et nest donc pas toujours utilis au mieux.
Une manire damliorer les performances globales est de permettre plusieurs
utilisateurs (plusieurs programmes machines) placs simultanment en mmoire de
se partager le processeur. Pour utiliser le processeur les instructions machine des
programmes doivent tre en mmoire centrale mais la totalit des instructions de
tous les programmes peuvent ne pas tre simultanment en mmoire centrale. Ainsi
lintgralit de tous les programmes peut ne pas tre prsente en mmoire en mme
temps. Permettre le partage du processeur entre plusieurs programmes cest donc
permettre le partage de la mmoire centrale entre des parties de programmes prsentes
simultanment en mmoire centrale. Dans cette hypothse ni le compilateur ni le
chargeur ne peuvent a priori attribuer aux donnes et aux instructions une adresse
physique en mmoire centrale. On est amen sparer lespace dadressage du
programme et lespace dadressage physique en dfinissant des adresses virtuelles
pour les instructions et les donnes. Cette adresse virtuelle ne dpend que de
lespace dadressage du programme et ne tient pas compte de ladressage physique
(rel) de la mmoire centrale. Cest seulement au moment de lexcution dune
instruction, et non pas au moment de la compilation ou du chargement, que la correspondance adresse virtuelle , adresse physique est tablie. Pour dfinir une adresse
virtuelle on peut considrer le programme comme une suite de blocs, chaque bloc
tant rfrenc par un numro. Ladresse virtuelle dun mot de programme (figure 8.20)
est alors dfinie par le doublet {numro de bloc, dplacement dans le bloc} :
adresse_virtuelle = numro_de_bloc + dplacement dans le bloc.
Dans notre hypothse tous les blocs dun programme ne sont pas tous ncessairement prsents en mmoire centrale. Dans lespace dadressage du programme nous
appelons les blocs, des blocs logiques. Quand un bloc logique est prsent en
mmoire principale il correspond un bloc physique. Le bloc physique a la mme
taille que le bloc logique, il est implant en mmoire centrale ladresse,
adresse_dbut_bloc . Pour dterminer ladresse effective (physique) dun mot
partir de son adresse virtuelle, on dispose, pour le programme, dune table de correspondance (table_des_blocs) qui a autant dentres quil y a de blocs logiques. Pour
chaque entre on trouve un indicateur de prsence ou dabsence du bloc logique en
mmoire (existence du bloc physique correspondant au bloc logique) et dans le cas
de la prsence du bloc physique, ladresse physique du dbut de ce bloc, soit
adresse_dbut_bloc (figure 8.20). Dans ces conditions :
196
8 La fonction de mmorisation
Programme
Mmoire centrale
0
Load D, R, {4,2}
Table_des_blocs
Load D, R, {4,2}
1
8
4
0
1
2
3
4
5
6
7
8
9
10
11
Adresse_physique : 10
Adresse virtuelle.
Dans notre exemple (figure 8.20) le programme a une taille de 14 mots. Il est
organis en 5 blocs numrots de 0 4. La mmoire physique a une taille de 11 mots
et contient deux blocs logiques (1 et 4). Le bloc logique 1 est implant ladresse
physique 4 et le bloc logique 4 ladresse physique 8. La table table_des_blocs
traduit cette implantation. Dans ces conditions linstruction Load D, R, {4, 2} est charge
en mmoire centrale (donc excutable) et la donne 6 place ladresse 10 est
accessible par cette instruction.
Pour tablir la correspondance adresse virtuelle , adresse physique le mcanisme de gestion de la mmoire virtuelle utilise un module matriel (figure 8.21) : le
MMU (Memory Management Unit). Ce module reoit en entre une adresse virtuelle
et convertit cette adresse en une adresse physique en utilisant la table table_des_blocs
associe au programme en cours dexcution.
Le fonctionnement du MMU est dcrit par lalgorithme suivant : en entre le MMU
reoit une adresse virtuelle {numro_de_bloc_logique, dplacement} et en sortie il
produit une adresse physique.
dbut
si table_des_blocs [numro_de_bloc_logique, 0] = 0
alors
dfaut de bloc physique;
lire bloc_logique sur disque;
si place libre en mmoire physique
197
Adresse _virtuelle
{4,2}
MMU
Memory Unit Management
10
Adresse_physique
Figure 8.21
Fonctionnement de la MMU.
alors
charger bloc_logique;
sinon
algorithme de remplacement dun bloc;
modifier la table table_des_blocs;
finsi
finsi
calculer adresse_physique;
fin
Lorsquun bloc logique nest pas prsent en mmoire (dfaut de bloc physique)
le MMU produit un droutement vers le systme dexploitation (interruption logicielle) qui examine la place disponible en mmoire centrale. Sil ny a pas de place
pour charger le bloc logique ncessaire la poursuite de lexcution, le systme
dexploitation excute alors un algorithme de remplacement de bloc.
Il y a plusieurs choix possibles pour linstallation physique du module MMU, soit
lintrieur de la puce processeur, soit lextrieur. La figure 8.22 donne un exemple
dimplantation.
Dans cet exemple, une adresse virtuelle, est prsente au MMU. Il en dduit une
adresse physique qui est prsente au cache de niveau 1. Cest alors le mcanisme de
gestion du cache qui prend le relais pour charger linformation demande dans le
cache si elle nest pas prsente. Cette implantation nest pas forcment la plus efficace
puisqu chaque adresse virtuelle on fait rfrence au MMU alors quil est possible
de prvoir si une information est prsente ou non dans le cache. De plus le MMU, pour
calculer ladresse physique, fait rfrence la table des blocs relative au programme
en cours dexcution. La localisation de cette table est trs importante : si elle est en
mmoire centrale le calcul de ladresse physique implique un accs la mmoire et
198
8 La fonction de mmorisation
Processeur
Cache de niveau 1
Cache de niveau 2
Mmoire centrale
SRAM
Bus local
Instructions
MMU
DRAM
Donnes
Bus
Adresse virtuelle
Adresse physique
Figure 8.22
8.5
Lobjectif de ce complment sur les approches CISC et RISC est dclairer les diffrences les plus marquantes concernant ces deux types de processeurs et de montrer
les architectures matrielles quils engendrent. Il ne sagit pas de faire une comparaison exhaustive, encore moins des mesures comparatives, de ces deux classes de
processeurs mais plutt de dgager les raisons principales expliquant cette volution
du CISC au RISC.
Dans une premire priode les volutions technologiques ont permis aux architectes
daugmenter les fonctionnalits et les performances des processeurs et des ordinateurs. Ces volutions ont conduit une architecture typique comportant un petit nombre
199
200
8 La fonction de mmorisation
201
202
8 La fonction de mmorisation
Dfinition
La dfinition donne par M. Slater donne bien lide de cette notion doptimisation
globale : Un processeur RISC a un jeu dinstruction conu pour une excution efficace par un processeur pipelin et pour la gnration de code par un compilateur
optimisant .
La traduction en terme matriel
Cette dfinition implique une pipeline efficace afin de rpondre limpratif dune
excution en un cycle machine. Lexcution efficace par un processeur pipelin
implique les caractristiques suivantes :
instruction de longueur fixe;
codage simple et homogne des instructions;
excution en un cycle machine de la plupart des instructions;
accs la mmoire uniquement par les instructions load (chargement dun mot
mmoire dans un registre) et store (placement du contenu dun registre dans un
mot mmoire);
modes dadressages simples;
branchements retards.
Au niveau de la traduction par le compilateur ces caractristiques se traduisent par
un format des instructions trois adresses et un grand nombre de registres.
8.5.5 Pour conclure sur les RISC et les CISC
Lapparition des processeurs RISC au dbut des annes quatre-vingts a t une remise
en cause trs forte de larchitecture CISC. Limportance de cette remise en cause a
eu leffet dune rvolution avec ses consquences : les anti et les pro qui se sont
8.6 Conclusion
203
assez fortement opposs. Le cot plus faible de ralisation de noyaux RISC a permis
un dveloppement industriel dont les machines SPARC et MIPS sont le reflet. Des
processeurs ayant des performances proches dune instruction par cycle machine se
sont imposs sur le march; notamment des stations de travail. Ensuite des processeurs superscalaires (entre autres le RS/6000) ont permis lexcution de plus dune
instruction par cycle machine. Les processeurs RISC se sont imposs sur le march
des stations de travail, des contrleurs, des machines graphiques, des supercalculateurs. Aujourdhui on retrouve des architectures RISC comme base darchitectures
de machines grand public comme Apple. En fait rien nest vraiment simple en la
matire et les processeurs architecture CISC ont souvent intgr ces volutions.
Daucuns disent que lapproche RISC a permis le dveloppement de processeurs
CISC efficaces. Les processeurs 80486 et ultrieurs dIntel et les processeurs Motorola partir du 68040 intgrent le cache dans le pipeline afin de pouvoir excuter en
un cycle machine les instructions les plus frquemment utilises : on voit aujourdhui
les progrs spectaculaires des machines CISC.
Aujourdhui le pur RISC a volu. On trouve dans ces architectures des instructions complexes. On trouve galement des architectures mixtes noyau RISC avec
squenceur cbl et extension CISC squenceur microprogramm. Lapport essentiel
de lapproche RISC est la volont dune optimisation globale matriel-logiciel-systme;
en ce sens il sagit srement dune tape historique de lvolution de larchitecture
des processeurs. Il est assez vain aujourdhui de tenter de prvoir les prochaines
tapes de lvolution des architectures RISC ou de la synthse RISC/CISC; lvolution
des technologies dfinira et imposera coup sr des compromis permettant daller
vers des machines plus efficaces.
8.6
CONCLUSION
Ltude de la fonction de mmorisation nous amne prciser larchitecture matrielle de notre ordinateur. La figure 8.23 reprsente cette nouvelle architecture.
On y trouve une mmoire ROM contenant des informations permanentes, typiquement le programme de bootstrap dont lobjet est de charger, partir du disque
magntique, le noyau du systme dexploitation qui nous permet daccder aux
ressources matrielles et logicielles de lordinateur : ces questions seront abordes
dans les chapitres consacrs aux systmes dexploitation.
La mmoire centrale est au cur de cette machine et assure la fonction de stockage du programme et des donnes utilisateur. Notre machine est dite programme
enregistr : pour tre excutable le programme doit tre plac en mmoire centrale.
Le processeur est charg de lexcution de ce programme, il le fait instruction par
instruction. Dans une premire approche nous avons considr que le programme
doit tre intgralement plac en mmoire centrale. Cette approche nest pas obligatoire et grce au mcanisme de gestion de la mmoire virtuelle il est possible
dexcuter un programme dont seulement une partie est dans la mmoire centrale.
Ce mcanisme repose sur lexistence de composants matriels nouveaux, en particu-
204
8 La fonction de mmorisation
lier le MMU. Ce mcanisme est pris en charge par le systme dexploitation et sera
tudi en dtail dans les chapitres concernant ltude du systme dexploitation. Ce
dispositif sappuie sur la prise en compte du systme de gestion des interruptions
partir duquel le systme dexploitation peut grer plusieurs programmes placs simultanment en mmoire centrale. Cela permet une amlioration des performances
(plusieurs programmes se partagent le processeur) mais implique de grer le partage
des ressources uniques mmoire centrale et processeur. Cette gestion est assure par
le systme dexploitation.
Processeur central
Horloge
MMU
Caches
Niveau 1
Cache
Niveau 2
Bus
Mmoire centrale
Mmoire ROM
Figure 8.23
Unit dchange
Architecture matrielle.
Afin damliorer les performances globales de notre ordinateur nous avons introduit les mmoires caches permettant de rapprocher du processeur les informations
quil doit traiter.
Les mmoires de masse, en particulier, le disque magntique jouent un rle important dans cette fonction de mmorisation tout particulirement pour la prise en compte
de la gestion de la mmoire virtuelle. Elles permettent galement de conserver les
donnes et les programmes au-del de larrt de lordinateur Cette architecture est
caractristique des ordinateurs actuels.
Chapitre 9
La fonction
de communication
9.1
INTRODUCTION
Ce sont tous les dispositifs matriels permettant dassurer les changes dinformations en entre et en sortie entre lordinateur et lextrieur ou de stocker de manire
206
9 La fonction de communication
Processeur central
Horloge
MMU
Caches
Niveau 1
Cache
Niveau 2
Bus
Mmoire centrale
Unit dchange
Mmoire ROM
Figure 9.1
Machine de rfrence.
Le processeur et la mmoire centrale grent des informations numriques, les priphriques sont pilots par des signaux lectriques. Les informations numriques
transitent dans lordinateur par le bus de communication. Pour crire des donnes,
par exemple sur une imprimante il faut activer un programme de gestion dentressorties qui gnre un flux de bits quil dpose sur le bus de communication destination du contrleur de limprimante. la rception de ce flux de bits le contrleur
gnre des signaux lectriques destination de limprimante qui ainsi active gre la
mcanique dimpression en slectionnant, par exemple, les buses dimpression
pour une imprimante jet dencre. Le rle dun contrleur est donc de piloter un
priphrique et de grer les accs au bus afin de permettre un priphrique de
communiquer avec lordinateur. Dans la fonction dexcution nous avons vu que les
donnes manipules par le processeur doivent tres places en mmoire centrale.
Chaque donne possde une adresse mmoire permettant dy accder. Pour imprimer
9.1 Introduction
207
une donne il faut accder celle-ci en mmoire centrale (on dispose pour cela de
son adresse mmoire) et la faire parvenir via le bus au contrleur de limprimante.
Nous serons donc amens dfinir ladresse et la structure gnrale dun contrleur
lui permettant daccueillir une donne. Les signaux produire selon que lon doive
grer une imprimante, un clavier ou encore un disque magntique sont diffrents et
sont spcifiques du priphrique. Il existe donc plusieurs catgories de contrleurs.
Certains contrleurs peuvent directement accder la mmoire centrale pour effectuer des changes avec les priphriques, on dit quils oprent des accs directs la
mmoire et sont identifis sous le nom de DMA (Direct Memory Access). Afin
damliorer lefficacit des changes, les ordinateurs modernes permettent deffectuer des oprations dentres-sorties en parallle de lactivit du processeur central
(les oprations dentres-sorties sont ralises de manire autonome sans intervention du processeur et sont dites asynchrones). la fin dune opration dentressorties le contrleur gnre une interruption qui interrompt lactivit du processeur
au profit dun programme de gestion de linterruption spcifique de lopration
dentres-sorties en cours. Nous entrevoyons dj que les mcanismes mis en jeu
(asynchronisme, interruptions) lors dune opration dentres-sorties sont nombreux
et complexes.
Le processeur et la mmoire centrale
Une opration dentres-sorties fait intervenir un programme excutant des instructions spcifiques lchange et au priphrique. Ce programme, comme tous les
programmes excutables, se trouve en mmoire centrale et est excut selon le
schma dexcution tudi dans la fonction dexcution.
Le bus de communication
208
9 La fonction de communication
9.1 Introduction
209
processeur au programme utilisateur au profit du pilote capable de grer cette opration dentres-sorties. Ce mcanisme est fondamental plus dun titre. On remarque
dabord que les fonctions de gestion des entres-sorties ne sont pas confies aux
programmes utilisateurs mais au systme dexploitation : lutilisateur na pas
supporter la complexit de la gestion technique dune trs grande varit de priphriques. Par ailleurs ce mcanisme permet de changer de priphriques (par exemple
dimprimante) sans avoir modifier les logiciels utilisant ce priphrique : si lon ne
disposait pas dun tel mcanisme il serait ncessaire de modifier son traitement de
texte favori chaque fois que lon change dimprimante. De plus, comme nous le
verrons un peu plus loin mais surtout dans les parties consacres aux systmes
dexploitation, ce mcanisme est dterminant dans la ralisation de systmes multiprogramms (Linux, Windows NT, Mac OS X) permettant de grer simultanment
plusieurs programmes utilisateurs.
Dans la suite de ce chapitre sont abordes les questions relatives aux bus, aux
interfaces daccs aux priphriques, aux priphriques ainsi que les diffrents modes
de gestion des entres-sorties.
Pilotes (Driver)
Programme utilisateur
Mmoire centrale
Systme
dexploitation
crire
Ecrire
Pilote
Tra
du
cti
on
Programme
utilisateur traduit
Processeur
Figure 9.2
SVC
210
9.2
9 La fonction de communication
LES BUS
Comme nous lavons indiqu dans les chapitres prcdents, un bus peut tre vu comme
un ensemble de fils qui relient les divers composants dun ordinateur. Dans le
chapitre concernant le fonctionnement et larchitecture matrielle du processeur
nous avons tudi le bus interne au processeur interconnectant lunit arithmtique
et logique, les registres et lunit de commande. Dans le chapitre concernant la fonction dexcution nous avons mis en vidence le rle du bus de communication entre
le processeur et la mmoire centrale. Nous avons dfini plusieurs caractristiques
importantes des bus notamment le fonctionnement synchrone ou asynchrone des
bus. Nous avons introduit un indicateur important permettant de mesurer lefficacit
dun bus : la bande passante qui sexprime comme le produit de la frquence par la
largeur du bus. Une autre caractristique importante est la manire dont les bits sont
transports. cet gard on peut classer les bus selon deux grandes catgories :
Les bus parallles. Ce sont des bus simples constitus dautant de fils quil y a
de bits transporter. Ces bus sont coteux et peu fiables pour des distances importantes. Ils sont utiliss sur des distances courtes, par exemple pour relier le processeur, la mmoire et les units dchanges.
Les bus srie. Ils permettent des transmissions sur de grandes distances. Ils utilisent
une seule voie de communication sur laquelle les bits sont srialiss et envoys les
uns la suite des autres.
Lordinateur qui nous sert de guide et dont nous affinons larchitecture au cours
des diffrents chapitres est organis autour dun bus unique (figure 9.1). En fait nous
avons prolong le bus reliant processeur et mmoire centrale afin de connecter les
autres composants cest--dire les units dchanges (contrleurs) pilotant les priphriques. Ce type darchitecture a t pendant une longue priode larchitecture
gnrale des ordinateurs. Cette architecture convenait dans la mesure o lordinateur
tait vu globalement et que les performances des diffrents composants taient compatibles. Ces dernires annes ont vu une volution trs forte des performances des
processeurs et des mmoires. Par ailleurs les constructeurs ont mis sur le march des
priphriques de plus en plus sophistiqus aux performances leves. Enfin le dveloppement des interfaces graphiques et des applications multimdia qui vhiculent
de trs grandes quantits dinformations ont oblig les constructeurs faire voluer
les bus. En effet les bus nont pas suivi la mme volution, que lensemble des composants des ordinateurs, et sont devenus un facteur critique pour ce qui concerne les
performances globales. De plus lorganisation autour dun bus unique est mal adapte
pour relier des composants htrognes aux performances trs diffrentes : la mmoire
et le processeur ont besoin de trs hauts dbits alors quune imprimante ou une
souris se satisfont de flux rduit. Une approche a consist mettre en place des
dispositifs matriels permettant des priphriques dchanger des informations
avec la mmoire centrale sans utiliser le processeur : les DMA (Direct Memory Access).
Ces dispositifs sont encore trs largement utiliss. Ce dispositif coupl avec le mcanisme dinterruptions permet de rendre asynchrones les entres-sorties librant ainsi le
211
processeur qui peut alors effectuer dautres tches pendant quune opration dentressorties physique se droule.
La figure 9.1 est caractristique de larchitecture bus unique. Le bus ISA (Industry
Standard Architecture) a t le standard des bus pour les ordinateurs ayant une architecture bus unique. Dans ce type darchitecture, le bus est un goulet dtranglement :
les processeurs trs performants produisent des informations qui ne sont traites par
le bus quavec les performances de ce dernier. Au total ce sont donc les caractristiques du bus qui dterminent les performances globales de lordinateur. Larrive des
interfaces graphiques a accentu ce problme du goulot dtranglement. La gestion
des fentres et le traitement des graphiques rclament des dbits importants qui ne
peuvent tre assurs par le bus ISA (frquence de 8 MHz pour une largeur de 16 bits
soit une bande passante de 8,33 Mo/s). Une volution importante est venue de la
compagnie IBM qui a dvelopp le bus MCA (Micro Channel Architecture) aux
performances plus leves que le bus ISA pour les ordinateurs PS/2. Malheureusement ce bus ne supportait pas les cartes daccs au bus ISA. Or, lindustrie microinformatique, pour protger ses marchs, a dfini le bus ISA comme le standard, ce
qui est une probable explication au retard pris dans lvolution des bus. EISA
(Extended Industry Standard Architecture) est une volution du bus ISA qui prsente
de meilleures performances et dont lobjet a t de concurrencer le bus MCA. Au
total les bus MCA et EISA nont pas t accepts cause de leur cot et de leur
incompatibilit.
Le groupement VESA (Video Electronics Standard Association) dveloppa lide
de connecter directement le contrleur graphique sur le bus reliant mmoire centrale
et processeur. Ainsi un processeur manipulant des donnes sur 4 octets avec une
frquence de 33 MHz pouvait offrir un dbit de 132 Mo/s. Ce projet donna lieu la
cration du VLBus. Malheureusement ce bus a t conu au dpart pour le processeur 80486 dIntel ce qui en limitait trop les perspectives dvolutions.
partir de 1991, Intel a donc dvelopp un bus PCI (Peripheral Component
Interconnect) dont les caractristiques devaient permettre des performances leves
(dbits suprieurs 100 Mo/s) et une grande souplesse dutilisation. Ce bus, qui est
devenu un standard, a permis la dfinition dun bus graphique AGP (Accelerated
Graphic Port) destin plus spcifiquement la gestion des contrleurs graphiques.
Enfin Intel a dvelopp des chipset permettant la fois une plus grande intgration des composants et la possibilit dinterconnecter des bus de type diffrents.
Afin dlargir lutilisation des bus PCI, Intel a mis dans le domaine public tous les
brevets attachs ce bus. Ce type de bus permet une volution vers des architectures
plusieurs bus mieux adaptes lhtrognit des dispositifs.
9.2.1 Les bus ISA (ou PC-AT), MCA et EISA
Le bus ISA est apparu dans les annes 1985 avec les ordinateurs PC-AT. Il est encore
trs rpandu. Il sagit dun bus synchrone. Sa frquence est celle du processeur
80286 soit 8,33 MHz et a une largeur de 2 octets ce qui lui donne une bande passante
de 16,7 Mo/s. Lvolution des processeurs, plus rapides et manipulant des donnes
212
9 La fonction de communication
sur 16 et 32 bits, a oblig les constructeurs dfinir de nouveaux bus. Ce sont les bus
MCA et EISA.
Le bus MCA dvelopp par IBM pour les ordinateurs PS/2 est un bus de 32 bits,
asynchrone fonctionnant 10 MHz avec une largeur de 32 bits. Ces caractristiques
lui confrent une bande passante de 40 Mo/s bien suprieure celle du bus ISA.
Indpendant du processeur il peut sadapter diffrentes architectures matrielles.
Cependant il ne reconnat pas les cartes ISA et sa complexit de fabrication le rend
trop coteux.
Le bus EISA est une amlioration du bus ISA ayant une largeur de 32 bits. Il doit
cependant rester compatible avec son an et fonctionne donc ncessairement une
frquence de 8 MHz. Sa bande passante est donc double de celle du bus ISA.
Avec lapparition des applications graphiques et multimdias utilisant, par exemple
de la vido, les performances de ces bus sont devenues totalement insuffisantes. Les
bus deviennent alors un facteur important de la rduction des performances des ordinateurs.
Examinons le cas dun affichage vido sur un cran, le fichier dimages provenant
dun disque magntique ou dun CD-ROM. Le moniteur couleur est standard et a
une dfinition de 1 024 768, la couleur de chaque point affich (pixel) est code
sur 16 bits (soit 32 000 couleurs diffrentes, ce qui aujourdhui est trs pauvre). Une
image ncessite donc 1 024 768 2 octets = 1 572 864 octets. Pour quune image
soit stable il faut quelle soit affiche au moins 25 fois par seconde sur lcran. La
bande passante ncessaire est donc de 1 572 864 25 octets/s soit environ 40 Mo/s.
En ralit si lon examine le chemin parcouru par les donnes (disque vers mmoire
puis mmoire vers moniteur) la bande passante que doit avoir le bus est de 80 Mo/s.
Ces chiffres sont totalement incompatibles avec les performances des bus que nous
venons de voir (Ces rsultats sont dautant moins compatibles que nous avons choisi
un codage des couleurs sur 16 bits alors quaujourdhui les couleurs sont codes sur
au moins 24 bits ce qui impliquerait une bande passante denviron 120 Mo/s). Ce sont
ces contraintes qui ont amen, vers 1990, Intel dfinir un bus haute performance :
le bus PCI.
9.2.2 Le bus PCI (Peripherical Component Interconnect)
Caractristiques
Le bus PCI sest impos comme composant des cartes mres grce ses performances
et lacceptation de ses normes par un grand nombre de constructeurs.
On peut rsumer ses caractristiques principales par :
Cest un bus local synchrone cadenc une frquence de 33 ou 66 MHz (version 2.1).
Il a une largeur de 32 ou 64 bits ce qui lui confre une bande passante de 132, 264
ou 528 Mo/s. Grce cette capacit de transmission le bus PCI rpond tous les
types de priphriques et tout type dapplication. Il nest donc pas un goulot
dtranglement pour le systme informatique.
213
Afin de rduire lencombrement et le nombre de broches le bus PCI est multiplex. Dans ce mode les lignes du bus transportent alternativement des adresses et
des donnes. On divise ainsi par deux le nombre de lignes du bus. Les oprations
de lecture et dcriture impliquent alors plusieurs cycles de bus. Les transactions
sont ralises entre un matre (qui initie la transaction) et un esclave (la cible de la
transaction). Par exemple une transaction de lecture se fait en 3 cycles de bus : le
matre place ladresse de la donne lire sur les lignes du bus, le matre passe la
main lesclave qui peut alors utiliser le bus, lesclave place la donne adresse
sur le bus qui est alors disponible pour le matre.
Les spcifications du bus PCI permettent dinstaller une architecture Plug And Play1.
Comme les bus ISA le bus PCI permet de grer dautres units centrales, de la
mmoire et des entres-sorties. Aussi de nombreuses fonctions du bus standard
ISA migrent vers le bus PCI.
Bien que la bande passante de ce bus soit trs importante, ce bus ne convient pas
aux transferts entre mmoire centrale et processeur. De plus il ne permet pas la prise
en compte des cartes additionnelles compatibles avec le bus ISA.
Le tableau 9.1 rsume les principales performances des bus prsents jusqu ce point.
Tableau 9.1
Type
Largeur :
bits
Frquence :
Mhz
ISA
16
16
Connecteurs
Bande
passante : Mo/s
EISA
32
18
32
MCA
32
32
VESA
32
33
132
PCI
32
33
10
132
PCI
32
66
264
PCI
64
33
264
PCI
64
66
528
Architecture
Pour rpondre la grande varit de besoins, une architecture multibus sest impose.
La figure 9.3 prsente une telle architecture. La plupart des micro-ordinateurs conus
partir de processeurs Pentium II repose sur une telle architecture. Cette architecture nest pas seulement celle des PC mais on la retrouve galement avec quelques
variantes chez Apple. Les composants cls de cette organisation sont les composants
dinterconnexion de plusieurs environnements htrognes.
1. Le priphrique est automatiquement reconnu et le pilote ncessaire son fonctionnement
automatiquement install.
214
9 La fonction de communication
Dans la terminologie Intel ces composants sont appels des ponts. Le pont PCI
interconnecte le processeur, la mmoire centrale et le bus PCI. Le pont PCI/ISA
interconnecte le bus PCI et le bus ISA et peut piloter directement un ou plusieurs
disques IDE ainsi que les ports USB.
Ces composants les ponts pour Intel existent pour dautres types dordinateurs.
En fait ils correspondent une volution de la technologie qui permet de rduire le
nombre de composants sur la carte mre. Ces composants, les Chipset, intgrent un
grand nombre de fonctionnalits. Ils grent tout particulirement des fonctions
fondamentales (qui auparavant ncessitaient plusieurs composants) telles que :
Rseau
Carte
graphique
Ethernet
FIREWIRE
SCSI
PCI
Pont
PCI
Bus
Cache
niveau 2
Mmoire
centrale
Pont
PCI/ISA
Carte srie
Slots
dextension
Caches
niveau 1
Bus ISA
Horloge
MMU
Carte srie
Processeur
central
Modem RTC
Ports USB
Modem
ADSL
Disques IDE
Rseau
Figure 9.3
Rseau
215
interfaage PCI/ISA;
contrle des interfaces IDE. Il peut grer jusqu 4 disques;
une gestion USB pour deux ports 12 ou 1,5 Mbits/s;
gestion des fonctionnalits correspondant deux contrleurs DMA;
gestions des interruptions qui correspondent deux contrleurs 82C59 (dont nous
avons parl dans le chapitre concernant la fonction dexcution).
Cet exemple montre le haut niveau dintgration que permettent ces chipset.
Lavantage majeur de ce type darchitecture est certainement que la bande passante
du bus est bien adapte aux priphriques associs. Le couple processeur/mmoire
dispose dun bus priv dont la bande passante est trs leve, le bus PCI (dont la
bande passante est leve) permet une connexion bien adapte des disques hautes
performances (par exemple de type SCSI ou FIREWIRE). La possibilit dinterconnexion au bus ISA permet de satisfaire les besoins des priphriques lents (imprimantes, modems RTC). Enfin ces composants intgrent la connexion aux ports USB
que nous tudierons dans la partie concernant linterfaage avec les priphriques.
Les chipset existent dans dautres architectures que celles dveloppes par Intel.
Ils ne sont pas ncessairement organiss avec le mme nombre de composants. Une
des raisons de cette architecture multiponts chez Intel vient probablement de la
ncessit de prendre en compte une compatibilit ascendante non obligatoire pour
dautres constructeurs (Apple par exemple).
216
9 La fonction de communication
Rseau
Bus AGP
Carte srie
Carte srie
Pont
PCI/ISA
Bus ISA
PCI
Bus
Pont PCI
Slots
dextension
Chipset AGP
Caches
niveau 1
Horloge
Ethernet
Mmoire
locale
MMU
Cache
niveau 2
SCSI
FIREWIRE
Processeur
graphique
Processeur
central
Mmoire
centrale
Modem RTC
Ports USB
Modem ADSL
Disques IDE
Rseau
Figure 9.4
Rseau
217
Architecture
La figure 9.4 prsente une architecture qui peut tre considre comme larchitecture
de base actuelle pour nos micro-ordinateurs.
9.2.4 Deux exemples
Nous prsentons ici deux exemples darchitectures tires de la documentation des
constructeurs Intel et Apple. Ces prsentations graphiques ne sont l que pour illustrer ce qui a t dit prcdemment.
Architecture Intel
Cette architecture (figure 9.5) correspond bien aux schmas gnriques prsents
prcdemment. On voit que le bus AGP est annonc comme ayant un dbit suprieur
1 Go/s ce qui est trs favorable pour les changes et la gestion des applications graphiques utilisant par exemple la vido. De la mme manire les bus processeur/pont et
pont/mmoire sont trs hauts dbits. Enfin la mmoire de type RDRAM est comme
nous lavons vu un type de mmoire ayant un temps daccs trs faible. Cette architecture permet en particulier des changes directs entre mmoire principale et mmoire
vido avec des dbits trs levs. Ce sont assurment des facteurs daugmentation
globale des performances.
Architecture Intel.
218
9 La fonction de communication
Il faut noter quil existe aussi chez Intel des architectures similaires mais multiprocesseurs avec un bus processeur/processeur trs haut dbit.
Architecture G4 (Apple)
Larchitecture prsente sur la figure 9.6 est une architecture biprocesseurs assez
classique chez Apple. L galement nous sommes trs proches des architectures
gnriques prsentes. Les performances des bus et des composants sont proches de
celles du monde Intel. Les diffrences proviennent en particulier des processeurs.
Chez Intel on dispose de processeurs de type CISC alors que ce sont des processeurs
de type RISC chez Apple. Dans ces conditions il est assez difficile de comparer les
performances pures des processeurs. Peut-on raisonnablement et brutalement comparer
le mgahertz voire le gigahertz de processeurs darchitectures si diffrentes ?
Au plan architectural on peut tout de mme noter une diffrence. Il nexiste quun
seul pont contrairement larchitecture Intel. Pour Apple il sagit l dun facteur
daugmentation de lefficacit cause de la diminution du nombre de composants.
Comme prcdemment il faut faire trs attention aux comparaisons htives.
Architecture bi-processeurs G4
Documentation Apple
Figure 9.6
9.3
Architecture Apple.
219
Slction
Bus de donnes
Mmoire
ROM
Mmoire
RAM
Unit
dchange
Bus dadresses
Figure 9.7
220
9 La fonction de communication
Dans cette hypothse on adresse une unit dchange comme lon adresse un banc
mmoire. Une adresse est dpose sur le bus dadresses, une partie de cette adresse
est prise en charge par un circuit de slection (circuit de dcodage) qui permet de
slectionner un botier qui sera soit un banc mmoire soit une unit dchange.
Dans la figure 9.7, 3 fils sont rservs la slection dun botier. Ces 3 fils grs par
le circuit de dcodage permettent un accs 8 botiers diffrents.
La structure gnrale dune unit dchange est donne par la figure 9.8. Il sagit
dune structure fonctionnelle qui nenlve rien la gnralit du fonctionnement rel
des contrleurs. Une unit dchange est organise autour de plusieurs registres. Leur
nombre et leur gestion dpendent des spcificits particulires de lunit dchange.
Bus de commandes
Bus de donnes
Slection
Registre
d tat
Registre
de donnes
Slection
Bus dadresses
Figure 9.8
Fonctionnellement on trouve :
un registre dtat qui permet de connatre ltat du priphrique pilot par cette
unit dchange. Chaque tat est caractris par une valeur numrique disponible
dans le registre dtat. Par exemple une imprimante qui na plus de papier met un
signal vers le contrleur qui peut alors charger le registre dtat avec la valeur
numrique correspondant cet tat. Cette information maintenant place dans le
registre dtat est disponible pour le processeur;
un registre de donnes. Cest au travers de ce registre que se font les changes de
donnes entre la mmoire et lunit dchange.
Les registres sont adressables : chaque registre a une adresse. Cest exactement ce
qui se passe pour la mmoire centrale o lon slectionne un banc mmoire et un
mot dans ce banc. Une partie du bus de commande (figure 9.8) adresse un circuit de
221
dcodage interne lunit dchange afin de slectionner un des registres du contrleur. Par exemple pour raliser une opration dcriture sur une imprimante on pourra
excuter la squence :
le processeur place ladresse du registre dtat sur le bus dadresses. Cette adresse
est compose dune part de ladresse du botier, dautre part de ladresse du registre
dans le botier;
le processeur lit le registre dtat;
si le contenu du registre indique que limprimante est libre, le processeur adresse
le registre de donnes;
le processeur dpose la donne imprimer sur le bus de donnes. La donne est
maintenant disponible pour limprimante;
lunit dchange va positionner les signaux ncessaires dclenchant limpression
physique de la donne sur limprimante.
Cette prsentation simplifie est en fait gnrale. Dans larchitecture matrielle
que nous avons utilise dans la section sur les bus, nous avons vu la complexit du
schma daccs une unit dchange. Notre schma dadressage pourrait sembler
inadapt. En fait les botiers de type pont , permettant linterconnexion des parties
htrognes, disposent de registres de communication avec le processeur. Ces registres contiennent les adresses des units dchanges, le pont effectue alors des translations dadresses afin de sadapter aux diffrents composants transportant cette
information.
Cet exemple a pour objet de prciser sur un cas concret lensemble des lments mis
en cause lors dun change. Comme le montre la figure 9.9 nous avons choisi dtudier
la communication entre deux ordinateurs distants au travers du rseau tlphonique
commut (RTC).
Du point de vue logiciel cette communication implique lexistence de deux
programmes (un sur chaque ordinateur) qui excutent des instructions pilotant le
matriel connectant les ordinateurs. Les programmes vont changer des messages
selon un protocole de communication. Dans une telle communication les ordinateurs
sont identifis par un numro de tlphone. Pour communiquer, un ordinateur doit
excuter un programme qui demande son modem de composer le numro de tlphone du modem distant. Le modem metteur attend alors lacceptation du modem
distant, il transmet cette acceptation au programme qui peut alors changer avec le
programme distant au travers du rseau.
Pour cette communication le programme metteur, au travers des diffrents bus,
envoie des donnes lunit dchange spcifique des communications sries
(UART). Cette dernire poste les signaux lectroniques adquats pour le modem.
Lorsque le modem reoit des donnes il poste des signaux pour lUART qui agit en
fonction de la nature des signaux reus. Cet exemple illustre bien les modalits
compltes de fonctionnement dune unit dchange :
222
9 La fonction de communication
Ethernet
Bus AGP
UART
Pont
PCI/ISA
Connecteurs
V 24
Bus ISA
PCI
Bus
Pont PCI
Slots
dextension
Chipset AGP
Caches
niveau 1
Horloge
SCSI
Mmoire
locale
MMU
Cache
niveau 2
Processeur
graphique
FIREWIRE
Processeur
central
Mmoire
centrale
Rseau
RTC
Modem
RTC
Ports USB
Figure 9.9
223
INTR
Rception
dcalage
Rception
Donne
reue
Valider
interruptions
Statut ligne
BUS
Logique
dinterruption
Logique
de communication
Identification
interruption
Diviseur
Contrle ligne
RTS
DTR
CTS
DSR
RSLD
RI
Contrle Modem
Statut Modem
mission
Figure 9.10
Transmission
dcalage
Architecture de lUART.
Donne
transmise
224
9 La fonction de communication
Ce type de communication srie obit une norme de connexion entre un quipement Terminal de Traitement de Donnes (ETTD : lordinateur) et un quipement
Terminal de Circuit de Donnes (ETCD : le modem). La connexion entre lordinateur et le modem se fait par un cble multifils dont chaque extrmit comporte un
connecteur de 25 broches (figure 9.11).
13 12 11 10 9
25 24 23 22 21 20 19 18 17 16 15 14
Figure 9.11
Connecteur V24.
Broche
Terre
Terre de protection
Terre de signalisation
mission de donnes
Contrle
Donnes
De
Vers
ETTD
ETCD
Rception de donnes
ETCD
ETTD
ETTD
ETCD
Prt mettre
ETCD
ETTD
ETCD
ETTD
20
ETTD
ETCD
Indicateur dappel
22
ETCD
ETTD
Dtection de signal
ETCD
ETTD
225
Rception
DTR
CTS
ETTD
ETCD
ETTD
Dunod La photocopie non autorise est un dlit.
RTS
Donnes
ETCD
DTR
DSR
Donnes
Figure 9.12
226
9 La fonction de communication
Cet exemple a pour but essentiel de mettre en vidence tout ce qui est mis en action
lors dune opration dentres-sorties au travers dune unit dchange. Cette description, bien que sappuyant sur un exemple particulier, garde un caractre gnral. Les
lments essentiels que lon peut retenir sont :
sur le plan matriel lunit dchange communique avec le processeur et la mmoire
centrale au travers des bus par le biais de registres et avec le priphrique au
travers de signaux lectriques. De ce point de vue les units dchanges ont une
double nature. Une unit dchange est adressable au mme titre quun mot de la
mmoire centrale : chaque registre est adressable et donc on peut par programme
lire et crire dans ces registres et donc communiquer avec lunit dchange;
le systme dexploitation intgre pour chaque unit dchange un programme
spcifique de gestion de chaque unit dchange : le pilote (driver). Ce pilote peut
adresser les registres et cest lui qui peut lire et crire dans ces registres. Ainsi
lorsquun programme utilisateur veut changer avec un priphrique il sadresse
au pilote et lui indique les donnes quil veut transfrer. Le pilote gre alors les
changes au travers du protocole spcifique de gestion des changes pour cette
unit dchange.
Cet exemple de fonctionnement de cette unit dchange a t relativement dtaill
car il est exemplaire du fonctionnement gnral des units dchanges.
Une application importante utilisant la liaison srie
227
Modems
Rseau Tlphonique
Commut
Liaisons
Internet
Prises tlphone
Provider
Figure 9.13
Rseau
(Internet)
Serveur Web
Un autre exemple important est celui de la liaison thernet permettant le raccordement un rseau local de type ethernet. La figure 9.14 prsente cet exemple.
Lobjet ici est seulement de mettre en vidence larchitecture matrielle dinterconnexion. La logique de fonctionnement est la mme que celle que nous avons
dcrite dans lexemple prcdent. La carte thernet dispose dune adresse permettant
au processeur dy accder, le systme dexploitation dispose dun pilote pour ce type
dunit dchange et connat le protocole permettant les changes de donnes partir
de ce type dunit et des priphriques qui y sont connects.
La carte contrleur est organise, comme indiqu sue la figure 9.14, autour de
3 couches :
la mise en forme des donnes. Il sagit ici de regrouper les donnes dans des structures (trames thernet) compatibles avec les protocoles de gestion des entressorties pour ce type dunit dchange;
228
9 La fonction de communication
lexcution du protocole de communication grant les changes (protocole CSMACD par exemple);
la production ou linterprtation des signaux lectriques ncessaires la gestion
du mdia de transmission.
Mise en forme
des donnes
Carte coupleur
Ethernet
Contrle daccs
Module
de codage/dcodage
Transceiver
Module dmission/rception
Rseau local
thernet
Cable coaxial
Processeur
graphique
Carte
Ethernet
Mmoire
locale
Carte srie
Carte srie
Pont
PCI/ISA
Bus ISA
PCI
Bus
Pont PCI
Cache
niveau 2
Slots
dextension
Chipset AGP
Caches
niveau 1
Bus AGP
MMU
Horloge
SCSI
FIREWIRE
Processeur
central
Mmoire
centrale
Ports USB
Figure 9.14
229
Rseau
(Internet)
Serveur
Figure 9.15
Comme la figure 9.4 le montre les disques de type IDE (Integrated Drive Electronic)
sont directement connects sur le pont PCI/ISA de notre architecture de base. La
structure du contrleur de ce type de disque correspond la structure gnrale des
units dchanges. La figure 9.16 prsente les principaux signaux lectriques grs
par ce type de contrleur. On y trouve les signaux spcifiant en particulier ladresse
dune information disque (numro de cylindre, numro de face, numro dunit), des
signaux de commande (lecture/criture) et des indicateurs dtats permettant de
Contrleur
Figure 9.16
Unit
de disque
230
9 La fonction de communication
DMA
11
Fast ATA
17
ATA/33
33
ATA/66
66
AGP
Bus ISA
PCI
Bus
Pont
PCI/ISA
Mmoire
centrale
Ports USB
Figure 9.17 Composants principaux
grant une opration dentres-sorties graphique.
Carte srie
FIREWIRE
Carte
Ethernet
Slots
dextension
Pont PCI
Bus
Chipset AGP
Caches
niveau 1
Horloge
SCSI
Mmoire
locale
MMU
Cache
niveau 2
Processeur
graphique
Carte srie
Processeur
central
231
Plans mmoire
Systmes de gestion
des couleurs RGB
11 1
1 1
1 1
1 11
1 1
1 1
000
0 0
0 0
000
0 0
0 0
0 1 0
00 0
0 0
0 0
0 00
0 0
0 0
Table de couleurs
xxx xxx xxx
Pixel
Convertisseurs
Digital/Analogique
R
G
B
Carte graphique
Figure 9.18
232
9 La fonction de communication
chaque pixel; dans le cas o nous naurions quun plan mmoire nous aurions un
affichage monochrome, un pixel tant allum ou teint.
Notre exemple prsente une mthode dattribution des couleurs un pixel. Cette
mthode utilise une table de couleurs et 3 plans mmoire. Chaque pixel est cod sur
3 bits, ce qui donne 23 combinaisons diffrentes. La table de couleurs a 8 entres,
chaque entre a 9 bits, 3 pour le rouge, 3 pour le vert, 3 pour le bleu. Pour chaque
entre on a donc 29 combinaisons diffrentes. Les 3 bits pour le rouge forment lentre
dun convertisseur digital/analogique qui produit un faisceau lectrique dont lintensit dpend de la valeur reprsente par les 3 bits pour le rouge. On dispose galement
dun convertisseur pour le vert et un pour le bleu. Les trois faisceaux convergent sur
lcran pour allumer le pixel correspondant. La couleur du pixel dpend de lintensit relative des diffrents faisceaux rouge/vert/bleu. Notre exemple permet donc
dafficher 256 couleurs diffrentes (autant que dentres dans la table des couleurs)
avec pour chaque couleur 29 teintes diffrentes.
Au plan de la gestion de laffichage, pour quune image soit stable, il faut afficher
limage au moins 25 fois par seconde ce qui marque la ncessit dun processeur
spcialis pour garantir correctement cet affichage. Pour un cran de 1 024 768 pixels
si la mmoire dimage dispose de trois plans (ce qui est peu aujourdhui) et que
chaque ligne de la table des couleurs a 24 bits (ce qui est le cas le plus frquent) le
processeur doit balayer 25 fois par seconde cette bitmap en concordance avec la
table des couleurs pour afficher une image stable.
La gestion des images animes (vido) implique des modifications de la bitmap,
aussi au-del de la ncessit du processeur daffichage on comprend lintrt dun
bus trs rapide entre la mmoire principale et la mmoire locale afin de garantir la
fluidit des mouvements.
9.3.2 Les bus dextension
Au-del des units dchanges il existe dautres interfaces de communication avec
les priphriques. On dtaillera plus particulirement le bus USB afin de mettre en
vidence les caractristiques principales de ce type de bus et lon donnera quelques
indications techniques sur les bus SCSI et FIREWIRE.
Le bus srie USB
Le bus PCI est trs performant pour les priphriques haut dbit. Par contre dans le
cas de priphriques lents il nest pas ncessaire davoir les dbits que ce bus permet.
De plus avec le bus PCI on ne dispose que dun nombre restreint de slots dextension
ce qui en limite son utilisation. Sept compagnies (Compacq, DEC, IBM, INTEL,
Microsoft, NEC, Northern Telecom) sont la base de la cration du bus srie USB
(Universal Serial Bus). Lobjectif est de simplifier linterface daccs avec de nombreux
priphriques en permettant de connecter une majorit de priphriques un connecteur unique en lieu et place des multiples connecteurs tels que les connecteurs sries,
parallles, souris, microphones, etc. Seuls resteraient les connecteurs parallles et
ceux permettant le raccordement des priphriques hauts dbits.
233
Le cahier des charges devait suivre un certain nombre de points : avoir un seul
type de cble, avoir une alimentation par le cble, pouvoir raccorder 127 priphriques, accepter les priphriques fonctionnant en temps rel, garantir le Plug And Play
et ne pas avoir relancer le systme dexploitation aprs le branchement chaud
dun priphrique.
Les caractristiques physiques
FIREWIRE
Ethernet
Bus AGP
Mmoire
centrale
Ports USB
HUB USB
HUB USB
Modem ADSL
Figure 9.19
Le bus USB.
Carte srie
Pont
PCI/ISA
Bus ISA
PCI
Bus
Pont PCI
Slots
dextension
Chipset AGP
Caches
niveau 1
Horloge
Dunod La photocopie non autorise est un dlit.
SCSI
Mmoire
locale
MMU
Cache
niveau 2
Processeur
graphique
Carte srie
Processeur
central
234
9 La fonction de communication
235
NAK qui indique une erreur de transmission dans le paquet prcdent, dtecte
grce au CRC;
STALL qui est une demande de mise en attente pour priphrique occup.
SYN
(8 bits)
PID
(8 bits)
Figure 9.20
Donnes
(1 1 023 octets)
CRC
(16 bits)
SOF
SOF
IN
SYN
PID
Donnes
CRC
ACK
SOF
La figure 9.22 illustre la succession de paquets pour une opration dcriture par
exemple sur une imprimante. En gris apparat le paquet dacquittement mis par le
priphrique en rponse aux paquets de donnes mis par lordinateur.
SOF
OUT
SYN
Figure 9.22
PID
Donnes
CRC
ACK
236
9 La fonction de communication
Le bus SCSI (Small Computer System Interface) est un bus parallle performant
permettant dinterfacer plusieurs types diffrents de priphriques : disques durs,
lecteur de CD-ROM, scanners Cette interface est commune beaucoup dordinateurs, PC, Macintosh, SUN etc.
Sa vitesse de transfert varie de 4 Mo/s 80 Mo/s selon la largeur du bus et le standard SCSI utilis. Il permet les changes directs entre deux priphriques sans intervention du processeur central. Comparativement aux technologies EIDE, le bus SCSI
est trs onreux et malgr ses caractristiques et ses performances trs intressantes,
il reste plutt rserv aux ordinateurs hauts de gamme (les serveurs plutt que les
ordinateurs domestiques). Le tableau 9.4 rsume les caractristiques des diffrents
standards SCSI.
Tableau 9.4
Frquence
bus : MHz
Largeur
8 bits
Largeur
16 bits
Nombre de priphriques
supports
SCSI 1
SCSI 2
10
10
20
Ultra SCSI
20
20
40
Ultra 2 SCSI
40
40
80
31
Ce bus est aussi appel bus SCSI srie. Il est destin aux priphriques rapides. Il est
apparu dabord sur les machines Apple et a t standardis en 1995. Il permet la
connexion de priphriques en tout numriques nimposant plus de conversions
analogique/digital. Comme dans le cas du bus USB les connexions sont de type Plug
And Play et ne ncessitent pas de redmarrage du systme lors de la connexion dun
nouveau priphrique. Les performances sont leves, actuellement de lordre de
50 Mo/s soit 20 fois plus leves que le bus USB (des volutions sont prvues pour
augmenter les dbits et atteindre 100 voire 200 Mo/s). On peut connecter jusqu
63 priphriques (camscopes, imprimantes, lecteur de DVD). Cest un bus asynchrone qui peut supporter des transferts isochrones, par exemple pour la vido.
Comme dans le cas du bus USB la mise en place de tels bus permet de diminuer
considrablement les connecteurs dentres-sorties.
9.4
Dans les sections prcdentes nous avons pass en revue tous les participants la
gestion dune opration dentres-sorties :
237
le pilote. Cest le programme du systme dexploitation qui excute les instructions dentres-sorties;
les bus permettant le transport des informations entre les diffrents composants;
les interfaces dentres-sorties. Ce sont les composants qui assurent linterfaage
entre les composants internes lordinateur et les priphriques;
les priphriques.
Nous allons dans cette section revenir sur la notion de pilote pour prciser plusieurs
points fondamentaux.
En premier lieu nous avons dit quune demande dopration dentres-sorties
effectue par un programme utilisateur (comme par exemple un traitement de texte
ou un programme spcifique crit dans un langage de haut niveau) tait traduite par
le compilateur en un appel un programme spcifique : le programme pilote
gestionnaire de cette opration dentres-sorties. Ainsi il existe simultanment deux
types de programmes en mmoire centrale : les programmes du noyau du systme
dexploitation (en particulier les pilotes) et le programme utilisateur. Comme nous
lavons vu il nexiste quun processeur central et les programmes doivent se partager
cette ressource unique. Le mcanisme de gestion dune opration dentres-sorties
consiste interrompre lexcution du programme utilisateur au profit du programme
pilote de lopration dentres-sorties puis aprs le traitement de lopration dentressorties reprendre lexcution du programme utilisateur. La ralisation de ce schma
dexcution repose sur le mcanisme de basculement de contexte matriel. Un
programme qui sexcute dispose du processeur matriel cest--dire de lensemble
des registres du processeur (tout particulirement du compteur ordinal qui contient
ladresse de la prochaine instruction excuter). Lorsque lon interrompt lexcution dun programme au profit dun autre il faut sauvegarder en mmoire ce contexte
matriel dexcution afin de pouvoir reprendre lexcution ultrieurement, l o on
la abandonne. Ce contexte tant sauvegard on peut charger les registres avec le
contexte dexcution du nouveau programme et tout particulirement : placer dans
le compteur ordinal ladresse de la premire instruction de ce nouveau programme.
Le nouveau programme sexcute alors sur le processeur matriel. Ce mcanisme
tout fait fondamental est, comme nous le verrons plus tard, la base des systmes
dexploitation multiprogramms.
En deuxime lieu nous devons examiner les diffrentes manires dont peut
sexcuter un programme pilote. Nous distinguons trois mthodes de gestion des
entres-sorties : la liaison programme, les entres-sorties pilotes par les interruptions,
lutilisation dun dispositif permettant des accs directs la mmoire, le DMA.
9.4.1 La liaison programme
Dans ce mode dchanges, le pilote utilise totalement le processeur central pour
contrler et piloter les changes avec le priphrique. Nous illustrons ce mode en
prenant lexemple dun pilote dimprimante utilisant une carte srie (unit dchange).
Lunit dchange a deux registres, un registre dtat et un registre de donnes dune
largeur dun octet (un caractre). Ces caractristiques sont les caractristiques gn-
238
9 La fonction de communication
rales dune carte srie (transmission srie caractre par caractre). Une telle unit
dchange peut fonctionner en utilisant le mcanisme dinterruption ou en ne lutilisant pas. Dans cet exemple nous utilisons cette carte srie en mode sans interruption,
nous examinerons dans lexemple suivant ce quinduit le fait de fonctionner en mode
avec interruptions.
Pour raliser une telle opration dentres-sorties le pilote excute lalgorithme
suivant qui donne la logique du programme machine correspondant au pilote. Lapplication de lutilisateur est par exemple un programme de traitement de texte (par
exemple Word) et lutilisateur dcide dimprimer, dans ce contexte, un fichier de
caractres.
lire registre_tat;
rpter
tant que priphrique_occup;
faire
lire registre_tat;
finfaire
crire un caractre dans registre de donnes;
jusqu ce quil ny ait plus de caractres imprimer.
Dans cet algorithme le pilote lit le registre dtat qui contient un code caractristique de ltat de limprimante. Ce code peut par exemple indiquer quil ny a plus
de papier; le pilote affichera alors un message pour lutilisateur indiquant quil ny a
plus de papier. Ce code peut galement indiquer que limprimante imprime actuellement un caractre et quelle nest donc pas disponible pour imprimer un autre
caractre. Ds que le caractre est imprim limprimante devient libre et elle le
signale en positionnant le contenu du registre dtat une valeur qui signifie : imprimante libre. Cest cette situation que nous examinons.
Cet algorithme est donc organis comme deux boucles itratives imbriques. La
plus extrieure (rpter jusqu) contrle le nombre de caractres imprimer. La
boucle intrieure (tantque faire finfaire) exprime que tant que le registre dtat
indique que limprimante est occupe le pilote relit le registre dtat pour savoir
quand limprimante va tre disponible.
La figure 9.23 illustre cette excution. Le programme Word est en cours dexcution.
Lorsque lutilisateur clique sur licne dimpression, cette action se traduit par un
appel au pilote gestionnaire de limprimante. Le pilote reoit le nombre de caractres imprimer. Pour pouvoir sexcuter le pilote doit disposer du processeur, il
faut donc sauvegarder le contexte matriel dexcution du programme Word (2). Le
pilote ralise lopration dentres-sorties par excution de lalgorithme prcdent (3).
la fin de cette excution le pilote recharge dans le processeur le contexte dexcution
de Word qui reprend donc son excution lendroit o il avait t interrompu (4).
Ainsi pendant tout le temps de lopration dentres-sorties, le processeur est
occup : il excute les instructions de la boucle tant que. On dit que le processeur
fait une attente active : il attend que le priphrique soit libre en excutant des
instructions. Ce mode de gestion est inefficace puisque globalement les performances
239
(3)
(1)
SVC
(2)
(4)
Word
4
3
Figure 9.23
UC systme
Word
Priphrique
Entres-sorties programmes.
240
9 La fonction de communication
Pilote dimprimante
Programmes
de gestion
des interruptions
Word
Impression
en tche de fond
Word
Pilote imprimante
Systme dinterruptions
Imprimante
Figure 9.24
Ce processus se poursuit tant quil y a des caractres imprimer. On voit donc que
la prise en compte de lopration dentres-sorties selon ce mode est trs diffrente
du point de vue de lutilisateur. Il possde en permanence le processeur sauf pendant
les priodes o le processeur est attribu au programme de gestion de linterruption
et du pilote. Ce traitement de limpression est dit traitement en tche de fond puisque
241
Processeur central
Systme
empl
0
DMA
Empl
Unit dchange
Figure 9.25
10
20
12
30
14
Mcanisme de DMA.
242
9 La fonction de communication
(3)
(11)
(2)
(1)
crire
(0)
(4)
SVC
(5)
(7)
(9)
(6)
(8)
Figure 9.26
243
seur du DMA va excuter des instructions lisant des donnes en mmoire sans
utilisation du processeur central. Il va donc y avoir deux processeurs qui peuvent
simultanment utiliser la ressource mmoire; dans ce contexte, rserver une zone
mmoire au DMA cest viter les conflits daccs la mmoire;
le DMA initialise le DMA (phase 5, 6, 7);
le DMA ralise lchange (phase 8);
en fin de transfert, une interruption est mise (phase 9);
lopration dentres-sorties se termine alors par la restitution du contexte dexcution du programme utilisateur qui reprend donc son excution (phase 10).
Le schma temporel dexcution est donn par la figure 9.27.
SVC
SVC
Priphrique
Interruption
Figure 9.27
244
9 La fonction de communication
9.5
CONCLUSION
Cette constatation nous permet de conclure ce chapitre sur la fonction de communication et dintroduire les chapitres sur les systmes dexploitation qui assureront donc
des fonctions de gestion et de partage des ressources matrielles dun ordinateur entre
un ou plusieurs utilisateurs. Parmi les fonctions importantes seront traites :
la gestion du processeur, cest--dire le partage du processeur entre plusieurs
programmes utilisateurs;
la gestion de la mmoire, cest--dire le partage de cette ressource entre plusieurs
programmes en mmoire en tant capable dassurer une gestion harmonieuse et
scurise de cette ressource;
le systme de gestion de fichiers et des entres-sorties qui pilote les changes avec
les priphriques.
Chapitre 10
Exercices corrigs
10
LA FONCTION DEXCUTION
10.1
Rvision
Cet exercice ne donnera pas lieu une correction particulire, les rponses se trouvent facilement en parcourant le chapitre sur la fonction dexcution.
1. Rappelez les diffrentes tapes de lexcution dune instruction machine en indiquant la fonction de chacune de ces tapes.
2. Est-ce que ltape de chargement dune instruction est dpendante du type de
linstruction ?
3. Quel est le rle du squenceur ? Quels sont les avantages et les inconvnients du
squenceur cbl par rapport au squenceur microprogramm ?
10.2
Microcommandes
Soit une machine dont les instructions ont le format codeopration, modeadressage,
registre, champoprande avec, par exemple, Im pour modeadressage immdiat, I pour
modeadressage indirect, R1 pour registre R1. Par ailleurs la microcommande InCo
permet lincrmentation du compteur ordinal.
1. Nous disposons de la machine matrielle dcrite dans le cours (machine un bus
de la figure 7.5) et nous conservons le formalisme du cours pour indiquer la nature
des signaux positionns. Soient les instructions suivantes :
Load Im, R1, x
(charger dans R1 la valeur x)
Load D, R1, x
(chargement direct dans R1)
Load I, R1, x
(chargement indirect de R1)
246
10 Exercices corrigs
2. Nous disposons prsent dune machine ayant le mme langage machine que prcdemment mais avec une architecture plus complexe 3 bus (figure 10.1). De la
mme manire que prcdemment, InCo permet lincrmentation du compteur
ordinal. Pour passer dun bus lautre on doit excuter une opration NOP (Non
Operation), plus prcisment passer de A B se fait en excutant un NOP et
passer de A C se fait en excutant deux NOP.
RI
bus A
bus B
Tampon A
CO
R0
Tampon B
RDO
PSW
Registres gnraux
R15
BUS
MMOIRE
UAL
RAD
bus C
Figure 10.1
Architecture 3 bus.
CISC/RISC
10 La fonction de mmorisation
247
1. Dans le cas o lon dispose dune machine CISC munie dun jeu dinstructions du
type codeopration, modeadressage, registre, champoprande , donnez la liste
des instructions machine permettant de raliser ce programme.
2. Dans le cas o lon dispose dune machine RISC, rappelez le jeu type dinstruction dont on dispose et donnez la squence dinstructions machine permettant de
raliser ce programme.
LA FONCTION DE MMORISATION
10.4
Soit une mmoire de mots de 32 bits, adresse avec des adresses de 32 bits. Le cache
correspondance directe contient 4 Ko de donnes utiles. Une entre du cache
contient un bloc de 1 mot mmoire.
1. Calculez la taille relle du cache.
2. On considre que lors de lexcution dun programme, le processeur accde aux
mots mmoire suivants dont les adresses sont :
(00000000)16, (00000008)16, (00000001)16, (00001000)16, (FFFF0008)16, (00000000)16
Le cache est initialement vide. Reprsentez lvolution du cache en notant les
dfauts et les succs.
10.5
Soit une mmoire centrale de 1 Go, compose de mots de 64 bits. On dsire raliser
une mmoire cache pour amliorer les performances du processeur disposant de
cette mmoire centrale en lui ajoutant un dispositif de mmoire cache travaillant par
blocs de 8 mots de 64 bits et de capacit utile gale 64 Ko. Quelle est la taille relle
de ce cache correspondance directe ?
10.6
Soit un processeur qui dispose dune mmoire cache associative de quatre entres.
Les adresses mmoire sont sur 16 bits. Chaque mot mmoire fait 32 bits. La
mmoire centrale est adressable par octet. Chaque entre du cache contient un bloc
de quatre mots.
1. Quelle est la taille de ltiquette ?
2. Soit la suite de rfrences suivantes, qui correspondent aux accs mmoire
demands par le processeur, en termes dadresses doctets, dans le temps. Les
adresses sont donnes en hexadcimal (base 16).
Temps
Adresse
001F
0A1F
013A
001D
1B1E
0014
013B
1B32
1137
248
10 Exercices corrigs
Donnez lvolution des quatre entres du rpertoire du cache et notez les dfauts
dans les deux cas suivants :
1. la politique de remplacement est FIFO;
2. la politique de remplacement est LRU.
10.7
LA FONCTION DE COMMUNICATION
10.8
Questions de cours
Cet exercice est fait pour que vous trouviez dans le cours les lments de rponse.
1. Quel est le rle des pilotes ?
2. Quappelle-t-on basculement de contexte ?
3. Comment est prise en compte une interruption, du point de vue logiciel et du point
de vue matriel ? Est-ce que le mcanisme dinterruptions utilise le basculement
de contexte ?
4. Quelles sont les diffrences entre les modes dchanges par liaison programme,
pilote par les interruptions, pilotes par les interruptions avec utilisation dun DMA.
10.9
Une unit priphrique de type imprimante est considre. ETAIMP est le registre
dtat de limprimante tel que le bit de poids fort de ETAIMP est 1 si limprimante
est prte et 0 sinon. SORIMP est le registre de donnes de limprimante. Cette
machine reprsente les nombres signs selon le format du complment 2.
1. On souhaite crire un programme ralisant une opration dentres-sorties
programme qui permet le transfert de 80 caractres depuis la mmoire partir de
ladresse EMPL vers cette imprimante. Le registre RB contient ladresse de la
donne dans la mmoire principale (initialement EMPL). Le registre R1 contient
le nombre de caractres restants transfrer. On vous donne en plus des instructions
dj introduites, linstruction suivante qui permet de tester le signe du contenu
dun registre R : TESTS Rg1 R. TESTS positionne le bit S du registre dtat PSW,
tel que celui-ci est 1 si le contenu de R est ngatif et 0 sinon.
10 La fonction de communication
249
250
10 Exercices corrigs
100
120
140
160
180
200
220
240
Les adresses en mmoire centrale sont les adresses des mots mmoire; lincrmentation du CO, lincrmentation ou la dcrmentation du RSP seffectue par
pas de 1.
En reprenant lordre de service des interruptions par le processeur tel que vous le
donnez en rponse la question 2, donnez lvolution du registre CO, du registre
RSP et de la pile.
Vous adopterez la convention suivante :
(RSP > 1002), PILE : (1000 > 200, 1001 > 400), (CO->300), qui signifie :
RSP
1002
CO
1001
400
1000
200
adresse
pile
300
SYNTHSE
10.12 Exercice de synthse
On considre larchitecture de processeur suivante (figure 10.2). Les registres du
processeur sont sur 8 bits. Les nombres signs sont reprsents selon la convention
du complment 2.
Les portes activer sont reprsentes par un rond sur la flche.
Le format des microcommandes est :
entre du contenu dun bus vers un registre : nombusnomregistreEn (exemple
AtamponAEn);
10 Synthse
251
bus A
Tampon A
R0 R1 R2
RI
PSW
CO
RB
b
UAL
s
RSP
a
b
UAL@
s
RDO
BUS MMOIRE
RAD
bus B
Figure 10.2
Architecture 2 bus.
252
10 Exercices corrigs
Adresse mmoire
Mot mmoire
Commentaire ventuel
Valeur de la case A non initialise
A :
IN D A
LOAD Im R1 1
LOAD D R2 A
JMP Addition
Fin
STORE D R2 A
STOP
Addition
Fin de lexcution
ADD Rg2 R2 R1
JMP Fin
SOLUTIONS
10.1
Rvision
Microcommandes
Load D, R1, x
Load I, R1, x
254
10 Exercices corrigs
Add D, R1, x
10.3
CISC/RISC
10 Solutions
255
tiquette
Donne
(00000)16
(00000008) 16 : dfaut.
Index
tiquette
Donne
(00000)16
(00000)16
tiquette
Donne
(00001)16
(00000)16
(FFFF0008)16 : dfaut.
Index
tiquette
Donne
(00001)16
(FFFF0)16
(00000000) 16 : dfaut.
Index
tiquette
Donne
(00000)16
(FFFF0)16
256
10.5
10 Exercices corrigs
1. Pour un cache associatif, ladresse est utilise pour la recherche dune ligne, en
deux parties : tiquette dsignation dun octet de la ligne.
Chaque ligne de cache contient quatre mots de 32 bits, soit 16 octets. Il faut donc
4 bits pour dsigner chacun des octets dune ligne.
En consquence, ltiquette a une taille de 16 4 = 12 bits.
2. Politique FIFO : la ligne remplace est la plus anciennement charge dans le
cache.
temps
adresse
001F
0A1F
013A
001D
1B1E
0014
013B
1B32
1137
Ligne 1
001
001
001
001
001
001
001
1B3
1B3
0A1
0A1
0A1
0A1
0A1
0A1
0A1
113
013
013
013
013
013
013
013
1B1
1B1
1B1
1B1
1B1
Ligne 2
Ligne 3
Ligne 4
Dfaut/
Succs
10 Solutions
257
adresse
001F
0A1F
013A
001D
1B1E
0014
013B
1B32
1137
Ligne 1
001
001
001
001
001
001
001
001
001
0A1
0A1
0A1
0A1
0A1
0A1
1B3
1B3
013
013
013
013
013
013
013
1B1
1B1
1B1
1B1
113
Ligne 2
Ligne 3
Ligne 4
Dfaut/
Succs
10.7
1. La capacit de la mmoire centrale est gale 216 octets, soit 4 Koctets, soit
1 Kmots.
2. Une ligne de cache contient quatre mots de 32 bits, soit 16 octets. Le cache
comporte quatre entres. Ltiquette a donc une taille gale : 16 2 4 = 10 bits.
3. La taille relle du cache est gale 4 (1 + 10 + 128) = 556 bits.
10.8
Questions de cours
1. Programme de transfert :
Cet exemple montre bien que dans le cas de la liaison programme la vitesse
globale de fonctionnement est dtermine par la vitesse du priphrique.
258
10 Exercices corrigs
LOAD Im RB EMPL
LOAD Im R1 80
DI
FIN:
ADD Im R1 1
JMPZ FIN
LOAD B R3 0
STORE D R3 SORIMP
ADD Im RB 1
RTI
Dans ce dernier cas on considre qu chaque fois quun caractre est crit il y a
mission dune interruption. Il faut donc initialiser le mcanisme dinterruption et
on le fait en plaant dans le tampon de sortie le premier caractre imprimer. Pour
placer ce premier caractre on utilise le mode dchanges par liaison programme :
on teste si le priphrique est libre, ds quil est libre on place le premier caractre
imprimer et on lance limpression de ce caractre. la fin de limpression une
interruption est mise, la routine dinterruption sexcute : partir de ce moment
opration dentres-sorties est pilote par les interruptions.
10.10 Performances des oprations dentres-sorties
1. Fraction de temps processeur consomme :
Cas de la souris :
Il faut 30 100 = 3 000 cycles par seconde pour interroger la souris ce qui
reprsente 3 000/(50 106) = 0,006 % des cycles du processeur.
Cas de la disquette :
La disquette transfre les donnes un dbit de 50 Ko/s. Comme les transferts
seffectuent par blocs de 2 octets, il faut 25 Ko interrogations par seconde.
10 Solutions
259
Arrive interruption 1 : (RSP > 1004), PILE : (1000 > 200; 1001 > 400; 1002
> 400; 1003 > 145), CO > 120)
Fin interruption 1, reprise interruption 2 : (RSP > 1003), PILE : (1000 > 200;
1001 > 400; 1002 > 400), CO > 145)
Fin interruption 2, traitement interruption 4 : (RSP > 1003), PILE : (1000 >
200; 1001 > 400; 1002 > 400), CO > 180)
Fin interruption 4, traitement interruption 5 : (RSP > 1003), PILE : (1000 >
200; 1001 > 400; 1002 > 400), CO > 200)
Fin interruption 5, traitement interruption 6 : (RSP > 1003), PILE : (1000 >
200; 1001 > 400; 1002 > 400), CO > 220)
Fin interruption 6, reprise du programme utilisateur : (RSP > 1002), PILE :
(1000 > 200; 1001 > 400), CO > 400)
260
10 Exercices corrigs
Mot mmoire
A :
IN D A
LOAD Im R1 1
Fin
LOAD D R2 A
JMP Addition
STORE D R2 A
STOP
Addition
Commentaire ventuel
ADD Rg2 R2 R1
JMP Fin
Fin de lexcution
R2 = R2 + R1
Saut linstruction nomme Fin
1000 0000
1111 1111
1 0111 1111
10 Solutions
261
Mot mmoire
A :
IN D A
LOAD Im R1 1
LOAD D R2 A
JMP Addition
Fin
STORE D R2 A
STOP
Addition
ADD Rg2 R2 R1
JMPO Overflow
JMP Fin
Overflow
PUSH Rg1 R2
STOP
PARTIE 3
LES SYSTMES
DEXPLOITATION
Lensemble des chapitres de cette partie est centr autour de la notion de systme
dexploitation multiprogramm. Aprs avoir prsent le rle fondamental du systme
dexploitation vis--vis de lutilisateur dun ordinateur et vis--vis de la machine
physique, ainsi que les notions de base attaches au systme dexploitation, nous
nous intressons chacune des principales fonctions que comporte un systme
dexploitation.
Le chapitre 11 introduit la notion de systme dexploitation et dcrit larchitecture
gnrale dun systme. Le chapitre 12 prsente les notions de processus et dordonnancement ainsi que les problmes de communication et de synchronisation entre
processus. Le chapitre 13 est quant lui consacr la gestion de la mmoire centrale
et aborde les notions lies plus particulirement la pagination et la mmoire
virtuelle. Le chapitre 14 prsente ce qui a trait la gestion des supports de masse tels
que le disque dur et sintresse au service de gestion de fichiers. Le chapitre 15 constitue une introduction aux rseaux; il aborde les notions fondamentales relatives aux
connexions filaires et radio. Enfin cette partie sachve sur un ensemble dexercices
corrigs.
Mots-cls : systme dexploitation, processus, gestion de la mmoire, systme
de gestion de fichiers, synchronisation rseaux filaires, Ethernet, Internet,
Wi-Fi.
Chapitre 11
11
266
ACTIF
INACTIF
INACTIF
ACTIF
CPU
DMA
2. Multiprogrammation
Prog A : 50 % calcul, 50 % entres-sorties
calcul
entres-sorties
Prog B : 50 % calcul, 50 % entres-sorties
calcul
entres-sorties
ACTIF : excution de Prog A
INACTIF
ACTIF
CPU
DMA
Figure 11.1
267
moiti du temps. Pour remdier cette inaction, la machine doit devenir multiprogramme, cest--dire quau moins un autre programme utilisateur doit tre plac en
mmoire centrale, qui sera excut pendant lopration dentres-sorties du premier.
Ainsi, dans notre exemple, nous plaons en mmoire centrale, un second programme
Prog B, ayant le mme profil que le programme Prog A. Prog B est excut par le
processeur durant lopration dentres-sorties de Prog A; le processeur est maintenant totalement occup.
Lexemple de la figure 11.1. est un exemple thorique et idalis. Dans la ralit,
pour parvenir occuper prs de 100 % le processeur, il faut placer en mmoire
centrale un trs grand nombre de programmes.
11.1.1 Un premier rle : assurer le partage de la machine physique
268
les particularits de gestion de chacune des ressources physiques utilises. Cela est
videmment trs fastidieux et compliqu pour lutilisateur de la machine.
Faciliter laccs la machine physique constitue le second rle du systme dexploitation. Par le biais dune interface de haut niveau, compose dun ensemble de
primitives attaches des fonctionnalits qui grent elles-mmes les caractristiques
matrielles sous-jacentes et offrent un service lutilisateur, le systme dexploitation construit au-dessus de la machine physique, une machine virtuelle plus simple
demploi et plus conviviale. Ainsi, pour raliser une opration dentres-sorties,
lutilisateur fera appel une mme primitive ECRIRE(donnes) quel que soit le priphrique concern. Cest la primitive ECRIRE et la fonction de gestion des entressorties du systme dexploitation laquelle cette primitive est rattache qui feront la
liaison avec les caractristiques matrielles. On appelle driver une telle fonction de
gestion dentres-sorties rattache un priphrique spcifique.
269
UTILISATEURS
MACHINE VIRTUELLE
SYSTME DEXPLOITATION
MATRIEL
bus
cpu
mmoire
Figure 11.2
Applications
Le systme dexploitation ralise donc une couche logicielle place entre la machine
matrielle et les applications. Le systme dexploitation peut tre dcoup en plusieurs
grandes fonctionnalits prsentes sur la figure 11.3.
s
y
s
t
m
e
d
e
x
p
l
o
i
t
a
t
i
o
n
diteur de texte
Tableur
Bases de donnes
Compilateur
diteur de liens
Programmes Utilisateurs
Navigateur
Chargeur
Appels systmes
Assembleur
Commandes
Gestion
de la concurrence
Gestion
de la protection
Gestion
du processeur
Gestion
de la mmoire
Gestion
des entres-sorties
270
Le systme doit grer laccs aux priphriques, cest--dire faire la liaison entre les
appels de haut niveau des programmes utilisateurs (exemple getchar()) et les oprations de bas niveau de lunit dchange responsable du priphrique (unit dchange
clavier) : cest le pilote dentres-sorties (driver) qui assure cette correspondance.
La fonctionnalit de gestion des objets externes
La mmoire centrale est une mmoire volatile. Aussi, toutes les donnes devant tre
conserves au-del de larrt de la machine, doivent tre stockes sur une mmoire
de masse non volatile (disque dur, disquette, cdrom). La gestion de lallocation
des mmoires de masse ainsi que laccs aux donnes stockes sappuient sur la
notion de fichiers et de systme de gestion de fichiers (SGF).
La fonctionnalit de gestion de la concurrence
Le systme doit fournir des mcanismes garantissant que ses ressources (processeur,
mmoire, fichiers) ne peuvent tre utilises que par les programmes auxquels les
droits ncessaires ont t accords. Il faut notamment protger le systme et la
machine des programmes utilisateurs (mode dexcution utilisateur et superviseur).
Les routines
271
Sous un systme dexploitation tel que MVS, lappel la routine du systme (SVC Call)
GETMAIN permet de demander lallocation dun espace mmoire et appartient donc
la fonctionnalit de gestion de la mmoire centrale. Lappel EXCP (Execute Channel
Program) permet de demander lexcution dune opration dentres-sorties et
appartient donc la fonctionnalit de gestion des entres-sorties.
Sous un systme dexploitation tel que Linux, lappel la fonction CREAT (nom_fich,
mode) de la fonctionnalit de gestion des fichiers permet de crer un nouveau fichier
nom_fich selon un mode daccs mode qui peut tre lcriture, la lecture ou les deux
combins.
272
classes de systmes peuvent tre dfinies : les systmes traitements par lots, les
systmes multi-utilisateurs interactifs et les systmes temps rels.
11.3.1 Les systmes traitements par lots
Les systmes traitement par lots ou systmes batch constituent en quelque sorte les
anctres de tous les systmes dexploitation. Ils sont ns de lintroduction sur les
toutes premires machines de deux programmes permettant une exploitation plus
rapide et plus rentable du processeur, en vue dautomatiser les tches de prparation
des travaux excuter. Ces deux programmes sont dune part le chargeur dont nous
avons dj parl, et dont le rle a t initialement de charger automatiquement les
programmes dans la mmoire centrale de la machine depuis les cartes perfores ou
le drouleur de bandes et dautre part, le moniteur denchanement de traitements,
dont le rle a t de permettre lenchanement automatique des travaux soumis en
lieu et place de loprateur de la machine.
Le principe du traitement par lots sappuie sur la composition de lots de travaux
ayant des caractristiques ou des besoins communs, la formation de ces lots visant
rduire les temps dattente du processeur en faisant excuter les uns la suite des
autres ou ensemble, des travaux ncessitant les mmes ressources. Ce mode de fonctionnement est directement tir de la manire dont les programmeurs travaillaient au
dbut de linformatique : par exemple, pour compiler un programme FORTRAN, il
fallait dabord demander au chargeur de lire depuis le drouleur de bandes, le compilateur FORTRAN, puis de lire le programme compiler. Si trois travaux devaient
tre raliss, deux compilations FORTRAN et une compilation COBOL, mieux
valaient placer dans un mme lot les deux compilations FORTRAN ncessitant
comme ressource pralable le chargement du compilateur FORTRAN, et dans un
autre lot la compilation COBOL ncessitant comme ressource particulire le compilateur COBOL, que de mlanger les trois types de travaux dans un ordre alatoire,
entranant par exemple le chargement du compilateur FORTRAN pour le premier
travail, puis le chargement du compilateur COBOL pour le second travail et de
nouveau le chargement du compilateur FORTRAN
Par ailleurs, dans un systme traitements par lots, la caractristique principale
est quil ny a pas dinteraction possible entre lutilisateur et la machine durant
lexcution du programme soumis. Le programme est soumis avec ses donnes
dentres et lutilisateur rcupre les rsultats de lexcution ultrieurement, soit
dans un fichier, soit sous forme dune impression. L encore, ce mode de fonctionnement est directement influenc par le mode de travail des premiers temps de linformatique : le programmeur soumettait son programme sous forme de cartes perfores
avec ses donnes loprateur de la machine, qui faisait excuter le programme et
rendait les rsultats de lexcution ensuite au programmeur.
Lobjectif poursuivi dans les systmes traitements par lots est de maximiser
lutilisation du processeur et le dbit des travaux, cest--dire le nombre de travaux
traits sur une tranche de temps.
273
Vers le processeur
Initiateur 1
Initiateur 2
Initiateur 3
Initiateur 4
classe A
Job
classe A
classe E
Job
classe A
classe B
Job
classe D
Job
classe D
Job Job
classe C
Job
classe E
Sous-systme JES
Job Job
Job Job
Figure 11.4
SPOOL
274
dsactiv par loprateur : les travaux qui entrent dans cet initiateur ne sont
pas excuts jusqu ce que linitiateur soit ractiv. Un initiateur comprend
un certain nombre de classes, caractrises par une priorit qui est donne
par lordre dapparition de la classe dans la liste de celles-ci. Ainsi, linitiateur A comprend trois classes A, W, M, la classe A est plus prioritaire que la
classe W qui est elle-mme plus prioritaire que la classe M. Dans cet initiateur A, on constate que le travail de nom DE106RL est en train de sexcuter au
sein de la classe M. Ltape du travail en excution (stepname) est ltape EX
(se reporter au paragraphe 11.4.3).
STATUS
ACTIVE
ACTIVE
INACTIVE
ACTIVE
INACTIVE
ACTIVE
INACTIVE
DRAINED
DRAINED
DRAINED
DRAINED
DRAINED
CLASS
AWM
MDW
DM
AWM
WM
CSP
Q
D
P
W
S
Z
LINE 1 12 (12)
SCROLL ===> CSR
STEP5
PROC1 JOB
2896
DPSSYS
ALLOC
JOB
2895
Figure 11.5
0047
0046
004A
W 004B
004C
C 004D
004E
JOBID
JOB0289
JOB0289
JOB0289
JOB0289
275
Procd
Commandes
vnements, mesures
Excutions de programmes
276
277
Un programme utilisateur sexcute par dfaut selon un mode qualifi de mode esclave
ou mode utilisateur : ce mode dexcution est un mode pour lequel les actions pouvant
tre entreprises par le programme sont volontairement restreintes afin de protger la
machine des actions parfois malencontreuses du programmeur. Notamment, le jeu
dinstructions utilisables par le programme en mode utilisateur est rduit, et spcialement les instructions permettant la manipulation des interruptions est interdite.
Le systme dexploitation, quant lui, sexcute dans un mode privilgi encore
appel mode superviseur, pour lequel aucune restriction de droits nexiste.
Le codage du mode esclave et du mode matre est ralis au niveau du processeur,
dans le registre dtat de celui-ci.
Modes dexcutions du processeur 68000 de Motorola
Commutations de contexte
278
Mode utilisateur
Mode superviseur
(privilge suprieur)
protection
main()
{
int i, j, fd;
i = 3;
fd = open ("fichier", "wr");
}
Mode superviseur
protection
Mode utilisateur
Commutations de contexte.
Excution de open()
APPELS SYSTME
main()
{
IT
int i, j, fd;
read(fd, j, 1);
erreur irrecouvrable
j=j/i;
arrt du programme
}
IT HORLOGE
Figure 11.8
MATRIEL
279
Mode utilisateur
1002
It 3
0017
Sous-traitant It3
Programme
Mode superviseur
Programme
1002
Interruption
n 3
Co < 0017
PSW < Superviseur
1002
Traitement IT
Co < 1002
PSW < Utilisateur
Figure 11.9
Sous-traitant dIT n 3
0017
RTI
280
stopp. Il quitte le mode utilisateur et entre en mode superviseur afin daller excuter
la routine dinterruption associe linterruption prise en compte. Le changement de
mode dexcution saccompagne dune sauvegarde du contexte utilisateur dont le but
est de mmoriser les informations relatives lexcution de ce programme afin de
pouvoir reprendre celle-ci, une fois linterruption traite. Cette sauvegarde est en partie
ralise par le matriel, qui commute le registre dtat du processeur et sauvegarde la
valeur du compteur ordinal pour le programme utilisateur. Une sauvegarde complmentaire des registres gnraux de la machine est ralise par le systme dexploitation. Puis le compteur ordinal est charg avec ladresse du traitant dinterruption
associ linterruption en cours de prise en compte (par exemple, ladresse 0017).
Une fois le traitant dinterruption excut, le contexte utilisateur sauvegard est
restaur (instruction machine RTI, ReTurn Interrupt) et le programme utilisateur
reprend son excution en mode esclave, linstruction o il avait t drout.
Gestion dune trappe
Loccurrence dune trappe est leve lorsque le processeur rencontre une situation
anormale en cours dexcution, par exemple une division par 0, un dbordement,
lutilisation dune instruction interdite ou encore un accs mmoire interdit.
Le traitement dune trappe est trs comparable celui des interruptions, voqu
au paragraphe prcdent. La diffrence essentielle rside dans le fait que loccurrence dune trappe est synchrone avec lexcution du programme. Aussi, de la mme
manire que pour les interruptions, une trappe est caractrise par un numro et une
routine de traitement de lerreur lui est associe dont ladresse en mmoire est range
dans une table qui peut tre la table des interruptions ou bien tre une table diffrente.
Le traitement associ la trappe consiste souvent arrter le programme en cours
dexcution et crer une image mmoire de son excution qui pourra tre utilise
par le programmeur pour comprendre le problme survenu (fichier core sous Linux).
Excution dune fonction du systme
Lappel a une fonction du systme peut tre ralise soit depuis un programme utilisateur par le biais dun appel de procdure, qualifi dans ce cas dappel systme, soit
par le biais dune commande. La commande est prise en compte par un programme
particulier, linterprteur de commandes, qui son tour invoque la fonction systme
correspondante. Ainsi, sous Unix, lappel systme chdir(nom_repertoire) permet
de changer le rpertoire courant du programme en cours dexcution. La commande
cd nom_repertoire effectue le mme travail depuis linterprteur de commandes (le
shell). Lappel systme chdir ou la commande cd aboutissent tous les deux lexcution de la routine systme _chdir.
Linvocation dune fonction systme tient la fois de lappel de procdure et du
traitement dinterruption. Elle est similaire un appel de procdure, dans le sens o
des paramtres dappels sont souvent passs au systme depuis le mode utilisateur et
un rsultat retourn au mode utilisateur lissue de lexcution, mais elle en diffre
grandement dans le sens o linvocation de la fonction systme entrane un change-
281
ment de mode dexcution. Par ailleurs, elle se rapproche du traitement des interruptions car lappel la fonction du systme se traduit en fait par la leve dune
interruption logicielle particulire, entranant le changement de mode et le branchement ladresse de la fonction. On pourrait finalement dire que linvocation dune
fonction systme est une leve dinterruption avec passage de paramtres et de
rsultat entre les deux modes dexcution du processeur.
Plus prcisment, lensemble des appels systme disponibles est regroup dans
une ou plusieurs bibliothques, avec lesquelles lditeur de liens fait la liaison
comme nous lavons vu au chapitre 3. Chaque fonction de la bibliothque comprend
une instruction permettant le changement de mode dexcution, puis des instructions
assurant le passage des paramtres depuis le mode utilisateur vers le mode superviseur. Souvent, des registres gnraux prdfinis du processeur servent ce transfert
de paramtres (par exemple, les registres R0, R1 et R2). Enfin, de manire similaire
ce qui est fait pour une exception, la fonction lve une trappe en passant au
systme un numro spcifique la routine appele. Le systme cherche dans une
table, ladresse de la routine identifie par le numro et se branche sur son code. la
fin de lexcution de la routine, la fonction de la bibliothque retourne les rsultats
de lexcution via les registres rservs cet effet, puis restaure le contexte du
programme utilisateur.
Lorsquun processus excute un appel systme, il appelle la fonction correspondante dans une bibliothque C. Cette fonction traite les paramtres
dappels et fait passer le processus en mode superviseur. Plus prcisment,
sur une architecture de type x86, les paramtres de lappel systme sont
passs via les registres eax, ebx, ecx et edx du processeur, puis une trappe est
dclenche en activant linterruption 0x80. Cette trappe provoque le passage
du processus en mode superviseur et lexcution de la fonction system_call.
Cette fonction utilise le numro de lappel systme (par exemple 12 pour
_chdir) pass via le registre eax pour appeler la fonction correspondant
lappel systme.
282
linterruption de redmarrage;
les interruptions externes leves par loprateur de la machine ou un autre processeur de la machine;
les interruptions programmes (program check) qui correspondent la leve de
trappes suite une erreur incorrigible dans un programme. Le travail fautif est
arrt et provoque un ABEND (abnormal end);
les appels superviseur (SVC Call) qui correspondent aux appels aux routines du
systme. Il y a 256 sortes de SVC portant les numros 0 255.
Les tats du processeur
283
Le langage JCL (Job Control Language) est un langage de commande orient batch
qui permet de dcrire au sous-systme JES les travaux excuter.
Un ordre JCL est constitu par un ou plusieurs enregistrements de 80 octets encore
appels cartes, par rfrence aux cartes perfores sur lesquelles les ordres JCL taient
initialement cods. Un ordre JCL a la forme :
//nom commande paramtre1, paramtre2, , commentaires.
Dans un systme orient batch, lutilisateur dfinit dans un fichier de travail (le Job)
lensemble des commandes (les tapes du job) quil souhaite voir excuter en leur
associant les fichiers de donnes en entre et en sortie (les DD).
Trois commandes ou cartes principales sont dfinies :
JOB : cette commande indique le dbut dun travail, dfini par un nom et une
classe dexcution au sein du sous-systme JES. Un travail est lui-mme constitu
par plusieurs tapes (au maximum 255) auxquelles sont associs des fichiers de
donnes;
EXEC : cette commande dfinit le dbut dune tape au sein dun travail et indique
le nom du programme excuter au cours de cette tape;
DD : cette commande permet de dfinir les caractristiques dun fichier utilis par
ltape. Il y a autant dordres DD dans une tape quil y a de fichiers utiliss par
celle-ci. Un ordre DD est caractris par un nom, le DDname. Parmi ces entres
DD, SYSIN correspond aux donnes en entre, SYSOUT aux donnes en sortie
tandis que SYSPRINT correspond lenregistrement des traces dexcution.
Voici un exemple de travail dfini laide du langage JCL. Le job porte le nom
DSE25CPY et sera soumis la classe A de loutil JES. Ltape 1 du travail demande
lexcution dun programme nomm IDCAMS, qui effectue la destruction de deux
fichiers MDP1.DB90.TEMP01et MDP1.DB90.TEMP02. Ltape 2 du travail demande
lexcution dun programme nomm IEBCOPY, qui effectue la copie dun fichier
SYS4.KF31.LOADTP dans le fichier DSE25.UTIL.LOAD.KF puis la copie du fichier
SYS4.KF31.LOADBT dans le mme fichier DSE25.UTIL.LOAD.KF.
284
Sous Unix, lutilisateur dispose de nombreuses commandes. Une commande est constitue par un nom, suivi ventuellement dun ensemble darguments. Lexcution des
commandes seffectue en mode interactif, cest--dire que lutilisateur frappe une
commande, qui sexcute immdiatement et rend le rsultat avec le plus court temps
de rponse possible.
Lexcution des commandes en mode interactif sinscrit pour chaque utilisateur
dans le cadre dune session de travail. La session de travail est ouverte aprs que
lutilisateur se soit connect au systme, en fournissant celui-ci son identifiant (le
login) et son mot de passe. La session se termine lorsque lutilisateur se dconnecte.
La prise en charge des commandes lances par lutilisateur au cours dune session
est assure par linterprteur de commande (le shell) qui est dmarr par le systme
au dbut de la session. Cet outil attend les commandes de lutilisateur pour les
excuter, cette attente tant matrialise par un caractre spcial ($, >, #) appel le
prompt ou linvite (figure 11.10).
Figure 11.10
285
286
11.6 CONCLUSION
Ce premier chapitre consacr aux systmes dexploitation multiprogramms nous a
permis de dfinir un systme dexploitation comme tant un ensemble de programmes
qui ralisent linterface entre le matriel de lordinateur et les utilisateurs. Les deux
objectifs principaux de cette interface sont :
11.6 Conclusion
287
Chapitre 12
Gestion de lexcution
des programmes : le processus
12
289
Lors de son excution, un processus est caractris par un tat (figure 12.1) :
lorsque le processus obtient le processeur et sexcute, il est dans ltat lu. Ltat
lu est ltat dexcution du processus;
lors de cette excution, le processus peut demander accder une ressource, par
exemple il demande lire des donnes depuis le disque. Le processus ne peut pas
poursuivre son excution tant quil na pas obtenu la ressource. Selon notre
exemple, le processus doit attendre la fin de lopration dentres-sorties disque
pour disposer des donnes sur lesquelles il pourra effectuer les calculs suivants de
son code. Le processus quitte alors le processeur et passe dans ltat bloqu. Ltat
bloqu est ltat dattente dune ressource autre que le processeur;
lorsque le processus a enfin obtenu la ressource quil attendait, celui-ci peut potentiellement reprendre son excution. Cependant, nous nous sommes placs dans le
cadre de systmes multiprogramms, cest--dire quil y a plusieurs programmes
en mmoire centrale et donc plusieurs processus. Lorsque le processus est pass
dans ltat bloqu, le processeur a t allou un autre processus. Le processeur
290
nest donc pas forcment libre. Le processus passe alors dans ltat prt. Ltat
prt est ltat dattente du processeur.
Le passage de ltat prt vers ltat lu constitue lopration dlection. Le passage
de ltat lu vers ltat bloqu est lopration de blocage. Le passage de ltat bloqu
vers ltat prt est lopration de dblocage.
Un processus est toujours cr dans ltat prt. Un processus se termine toujours
partir de ltat lu (sauf anomalie).
Fin
Rveil
lu
lection
En excution
Prt
En attente du processeur
Dblocage
Bloqu
Blocage
En attente de ressources
Figure 12.1
291
Identificateur processus
tat du processus
Compteur ordinal
contexte pour reprise
(registres et pointeurs, piles...)
Chanage selon les files de lordonnanceur
priorit (ordonnancement)
Informations mmoire
(limites et tables pages / segments)
Informations sur les ressources utilises
fichiers ouverts, outils de synchronisation,
entres-sorties
Informations de comptabilisation
Figure 12.2
292
de son crateur (systme Dec Vms) ou tre constitu comme un clone de celui-ci
avec le mme code et les mmes donnes (systme Unix);
le processus cr peut sexcuter paralllement son pre. Dans certains systmes,
le processus pre doit attendre la terminaison de ses fils pour pouvoir reprendre sa
propre excution.
Exemple
Sous Linux ou Unix, lappel systme fork permet un processus de crer un autre
processus qui est une exacte copie de lui-mme au moment de lappel. Le processus
fils hrite du code et des donnes de son pre, hormis son identificateur. Ce code
hrit peut tre modifi pour un autre code par le biais dun appel une des routines
systmes de la famille exec.
Destruction de processus
293
dautre part, les processus getty qui surveillent les terminaux. Lorsquun utilisateur
vient se loguer sur un terminal, un processus login est cr qui lit le nom de lutilisateur et son mot de passe. Ce processus login vrifie la validit de ces informations en
utilisant le fichier des mots de passe. Si les informations sont valides, le processus
login ouvre une session pour lutilisateur et cre un processus shell, interprteur de
commandes (cf. paragraphe 11.4.3). Cet interprteur de commandes excute alors les
commandes et programmes de lutilisateur en crant chaque fois un nouveau
processus (figure 12.3).
Processus 0
Processus Swapper
cration
Processus 1 : init
cration
cration
Processus dmons
Inetd
Crond
lpd
...
Processus getty
cration
Processus getty
cration
Processus login
cration
cration
Prog.exe
Figure 12.3
Processus shell
cration
ls-l
Un processus Unix est dcrit par un bloc de contrle qui est divis en deux parties
(figure 12.4) :
chaque processus dispose dune entre dans une table gnrale du systme, la table
des processus. Cette entre contient les informations sur le processus qui sont
toujours utiles au systme quel que soit ltat du processus : lidentificateur du
processus (pid), ltat du processus, les informations dordonnancement, les informations mmoire, cest--dire ladresse des zones mmoire alloues au processus;
chaque processus dispose galement dune autre structure, la Zone U. Cette Zone U
contient dautres informations concernant le processus, mais ce sont des informations qui peuvent tre temporairement dplaces sur le disque, notamment lorsque
le processus est dans ltat bloqu depuis un certain temps.
294
Mmoire principale
Un processus Unix volue entre trois modes au cours de son excution : le mode
utilisateur qui est le mode classique dexcution, le mode noyau en mmoire qui est
le mode dans lequel se trouve un processus lu pass en mode superviseur, un
processus prt ou un processus bloqu (endormi) et le mode swapp qui est le mode
dans lequel se trouve un processus bloqu (endormi) dcharg de la mmoire
centrale. En effet, le systme Unix dcharge de la mmoire centrale les processus
endormis depuis trop longtemps (ils sont alors dans ltat endormi swapp). Ces
processus rintgrent la mmoire centrale lorsquils redeviennent prts (transition de
ltat prt swapp vers ltat prt).
Un processus Unix qui se termine passe dans un tat dit zombi. Il y reste tant que
son PCB nest pas entirement dmantel par le systme. La figure 12.5 rsume les
tats dun processus Unix.
Actif utilisateur
Mode utilisateur
Prt
Nouveau
Actif noyau
Zombi
Endormi
Mode noyau en mmoire
Mode swapp
Prt swapp
Figure 12.5
Endormi swapp
295
Fin
Rveil
lu
lection
En excution
Prt
Premption
En attente du processeur
Dblocage
Bloqu
Blocage
En attente de ressources
Figure 12.6
296
tion du processeur, cest--dire que le processeur est retir au processus lu alors que
celui-ci dispose de toutes les ressources ncessaires la poursuite de son excution.
Cette rquisition porte le nom de premption.
Ainsi selon si lopration de rquisition est autorise ou non, lordonnancement
est qualifi dordonnancement premptif ou non premptif :
si lordonnancement est non premptif, la transition de ltat lu vers ltat prt
est interdite : un processus quitte le processeur sil a termin son excution ou sil
se bloque;
si lordonnancement est premptif, la transition de ltat lu vers ltat prt est
autorise : un processus quitte le processeur sil a termin son excution, sil se
bloque ou si le processeur est rquisitionn.
Processus P0
LU
Systme dexploitation
appels systme :
read (donnes, disque)
Processus P1
Sauvegarde PCB 0
PRT
lection
Recharge PCB 1
BLOQU
LU
Interruption
PRT
Sauvegarde PCB 1
lection
it fin dentres-sorties
Recharge PCB 0
LU
Figure 12.7
PRT
297
fin de cette opration dentres-sorties. Le processus P1 est drout pour aller excuter
le traitant dinterruption correspondant; il y a commutation de contexte avec changement de protection (passage en mode superviseur). Au cours du traitant dinterruption,
ltat du processus P0 est modifi et devient gal prt, puis une opration dordonnancement est lance : le processus P0 est de nouveau lu. Le contexte processeur
associ au processus P1 est sauvegard dans le PCB du processus P1 (PCB1) et le
processeur est charg avec le PCB du processus 0 (PCB0).
Les oprations dordonnancement prennent place lors de tout changement dtats
des processus.
12.2.2 Entits systmes responsable de lordonnancement
Les processus prts et les processus bloqus sont grs dans deux files dattentes
distinctes qui chanent leur PCB. Le module ordonnanceur (scheduler) trie la file des
processus prts de telle sorte que le prochain processus lire soit toujours en tte de
file. Le tri sappuie sur un critre donn spcifi par la politique dordonnancement.
Dans un contexte multiprocesseur, le rpartiteur (dispatcher) alloue un processeur parmi les processeurs libres la tte de file de la liste des processus prts et
ralise donc lopration dlection. Dans un contexte monoprocesseur le rle du
rpartiteur est trs rduit puisquil na pas choisir le processeur allouer : il est
alors souvent intgr dans lordonnanceur. La figure 12.8 reprsente les modules
voqus ici.
Premption
Cpu
Rpartiteur
lection
Dunod La photocopie non autorise est un dlit.
Cpu
Ordonnanceur
Classement
selon une politique
dordonnancement
PCB
PCB
PCB
PCB
PCB
PCB
Cpu
PCB
PCB
PCB
PCB
PCB
PCB
Prts
Blocage
Dblocage
Bloqus
Figure 12.8
Ordonnanceur et rpartiteur.
298
Nous prsentons prsent les politiques dordonnancement les plus courantes. Pour
chacune des politiques voques, nous donnons un exemple sous forme dun diagramme
de Gantt. Un diagramme de Gantt permet de reprsenter lassignation dans le temps
du processeur aux processus. Le temps est reprsent horizontalement, de manire
croissante de la gauche vers la droite, partir dune origine arbitraire fixe 0. Le
temps est reprsent par unit et pour chacune delles, figure le nom du processus
affect au processeur.
Politique Premier Arriv, Premier Servi
dure
ordre
darrive
P1
P2
P3
P1
299
P2
P3
10
dure
P1
P2
P3
P3
P2
2
P1
5
10
300
Une troisime politique trs courante est la politique par priorit constante. Dans
cette politique, chaque processus possde une priorit. La priorit est un nombre
positif qui donne un rang chaque processus dans lensemble des processus prsents
dans la machine. un instant donn, le processus lu est le processus prt de plus
forte priorit.
Selon les systmes dexploitation, les numros de priorits les plus bas reprsentent les valeurs de priorit les plus leves ou vice-versa.
Cette politique se dcline en deux versions selon si la rquisition est autorise ou
non. Si la rquisition est admise, alors le processus couramment lu est prempt ds
quun processus plus prioritaire, donc possdant une priorit plus forte devient prt.
Un inconvnient de cette politique est le risque de famine pour les processus de
petite priorit si il y a de nombreux processus de haute priorit. Par famine, on
entend le fait que les processus de plus forte priorit monopolisent le processeur au
dtriment des processus de plus faible priorit qui de ce fait ne peuvent pas sexcuter
(ils ont faim du processeur quils nobtiennent pas). On dit aussi quil y a coalition
des processus de forte priorit contre les processus de faible priorit. La figure 12.11
donne un exemple dapplication de cette politique.
dure
P1
P2
P3
P2
0
priorit
(la plus petite valeur
est la priorit la plus forte)
P1
P3
3
10
dure
priode
P1
P2
10
P1
301
P2
P1
4
Figure 12.12
P2
10
prioritaire. Ici donc, le processus P1 est le plus prioritaire. linstant 0, les deux
processus sont prts : P1 est lu. Il sexcute durant 4 units de temps, puis cest le
processus P2 qui devient lu. linstant t = 5, le processus P1 redevient prt : il
prempte P2 car le processus P1 est plus prioritaire. Le processus P1 sexcute donc
entre les instants t = 5 et t = 9, puis le processus P2 est rlu et achve son excution.
Politique du tourniquet (round robin)
La politique par tourniquet est la politique mise en uvre dans les systmes dits en
temps partag. Dans cette politique, le temps est effectivement dcoup en tranches
nommes quantums de temps. La valeur du quantum peut varier selon les systmes
entre 10 100 ms.
Lorsquun processus est lu, il sexcute au plus durant un quantum de temps. Si
le processus na pas termin son excution lissue du quantum de temps, il est
prempt et il rintgre la file des processus prts mais en fin de file. Le processus en
tte de file de la file des processus prts est alors son tour lu pour une dure gale
un quantum de temps maximum. La figure 12.13 donne un exemple dapplication
de cette politique.
La valeur du quantum constitue un facteur important de performance de la politique, dans la mesure o elle influe directement sur le nombre de commutations de
dure
ordre
darrive
P1
P2
P3
P1
0
P2
2
quantum = 2
P1
excution
acheve
P3
4
P1
6
P3
8
P2 P3
P1
10
P1
12
14
Politique du tourniquet.
302
contexte entre processus. En effet, plus la valeur du quantum sera faible, plus le
nombre de commutations de contexte entre les processus ordonnancer sera important et pourra de ce fait devenir non ngligeable. Ainsi, si la valeur du quantum de
temps est de 10 ms et que le temps de commutation de contexte est de 3 ms, alors ces
oprations de commutations de contexte reprsentent pour une dure de 20 ms, 45 %
dattente. Au contraire, si le quantum est de 20 ms, alors les oprations de commutations de contexte ne reprsentent plus que 30 % dattente.
12.2.4 Exemples
Les systmes actuels combinent trs souvent deux des politiques que nous avons
vues : celles des priorits fixes et celles du tourniquet. La file des processus prts est
en fait divise en autant de sous files quil existe de niveaux de priorit entre les
processus. Chaque file de priorit Fi est gre en tourniquet avec ventuellement un
quantum Qi de temps propre. Pour remdier au problme de famine des processus de
plus faible priorit, un mcanisme dextinction de priorit peut tre mis en uvre.
Dans ce cas, la priorit dun processus baisse au cours de son excution.
Si la politique est mise en uvre sans extinction de priorit, un processus en fin de
quantum regagne toujours la file dattente dont il est issu. Sur la figure 12.14, les
niveau n, Qn
niveau n 1, Qn 1
Files multiniveaux
sans extinction
de priorit
niveau n 2, Qn 2
.....
niveau 0, Q0
niveau n, Qn
niveau n 1, Qn 1
Files multiniveaux
avec extinction
de priorit
niveau n 2, Qn 2
.....
Figure 12.14
niveau 0, Q0
303
Dans le systme Linux, chaque processus est qualifi par une priorit. Par ailleurs,
conformment la norme pour les systmes dexploitation ouverts POSIX 1003.1,
le systme Linux offre trois politiques dordonnancement diffrentes, SCHED_FIFO,
SCHED_RR et SCHED_OTHER. Un processus cr est attach lune des politiques par un appel la fonction systme sched_setscheduler().
La politique SCHED_FIFO lit tout instant le processus de plus forte priorit
parmi les processus attachs cette classe.
La politique SCHED_RR est une politique de type tourniquet entre processus de
mme priorit.
La politique SCHED_OTHER implmente une politique extinction de priorit,
qui est la politique dordonnancement classique du systme Unix.
Les processus attachs aux politiques SCHED_FIFO et SCHED_RR sont plus prioritaires que les processus attachs la politique SCHED_OTHER, cest--dire que les
processus SCHED_OTHER ne sexcutent que lorsquil ny a plus aucun processus
SCHED_FIFO ou SCHED_RR excuter.
Dans le systme MVS, les travaux ordonnancer sont galement qualifis par une
priorit. Ces travaux de deux types diffrents sont dcrits au sein du systme par des
blocs de contrle : dune part les TCB (Task Control Block) reprsentent les processus
dans un espace adresse tels que les processus utilisateurs; dautre part, les SRB (Service
304
ASCB
ASCB
ASCB
ASCB
SRB
SRB
SRB
SRB
SRB
SRB
TCB
vers le processeur
TCB
TCB
Priorit ++
Figure 12.15
305
Cet change de donnes peut se faire par le biais dune zone de mmoire partage,
par le biais dun fichier ou encore en utilisant les outils de communication offerts par
le systme dexploitation. Dans tous ces cas, les processus ne sont plus indpendants
et ils effectuent des accs concurrents aux ressources logicielles que sont la mmoire
partage, le fichier ou encore les outils de communication. Plus gnralement, une
ressource dsigne toute entit dont a besoin un processus pour sexcuter. La ressource
peut tre matrielle comme le processeur ou un priphrique ou elle peut tre logicielle comme une variable.
Une ressource est caractrise par un tat qui dfinit si la ressource est libre ou
occupe et par son nombre de points daccs, cest--dire le nombre de processus
pouvant lutiliser en mme temps. Notamment, on distinguera la notion de ressource
critique qui correspond une ressource ne pouvant tre utilise que par un seul
processus la fois. Un processeur par exemple correspond une ressource critique;
en effet, il nest pas possible dallouer celui-ci deux processus simultanment. Une
imprimante est un autre exemple dune telle ressource.
Lutilisation dune ressource par un processus seffectue en trois tapes. La premire
tape correspond ltape dallocation de la ressource au processus qui consiste
donner la ressource au processus qui la demande. Une fois que le processus a pu
obtenir la ressource, il lutilise durant un certain temps (deuxime tape) puis il rend
la ressource : cest la dernire tape de restitution de la ressource. Les phases dallocation et de restitution dune ressource doivent assurer que la ressource est utilise
conformment son nombre de points daccs. Par ailleurs, ltape dallocation de
la ressource peut se rvler bloquante pour le processus qui leffectue si tous les points
daccs de la ressource demande sont occups. Au contraire, ltape de restitution
dune ressource par un processus peut entraner le dblocage dun autre processus en
attente daccs cette ressource.
Plusieurs schmas de synchronisation entre processus ont t dfinis afin de garantir
une bonne utilisation des ressources par les processus et dune manire plus gnrale
une communication entre processus cohrente et sans perte de donnes. Ces schmas
sont : lexclusion mutuelle, lallocation de ressources, le producteur-consommateur
et les lecteurs-rdacteurs.
306
La variable nbplace doit tre accde par un seul processus la fois pour que sa
valeur reste cohrente : ici en loccurrence le processus Client_1 qui a commenc la
rservation en premier doit terminer son opration avant que le processus Client_2
puisse commencer sexcuter. Ainsi, Client_2 trouvera la variable nbplace gale 0
lors du test et neffectuera pas de rservation. nbplace constitue donc une ressource
critique.
Le code dutilisation dune ressource critique est appel section critique. La section
critique doit au moins offrir la proprit essentielle de lexclusion mutuelle qui garantit
que la ressource critique manipule durant la section critique ne peut effectivement
tre utilise que par un seul processus la fois. Pour ce faire, la section critique est
prcde par un prlude et est suivie par un postlude qui assurent cette proprit
dexclusion mutuelle.
Pour garantir lexclusion mutuelle, il faut donc entourer lutilisation de la variable
nbplace dun prlude et dun postlude. Le prlude prend la forme dune protection
qui empche un processus de manipuler la variable nbplace si un autre processus le
fait dj. Ainsi le processus Client_2 est mis en attente ds quil cherche accder
la variable nbplace dj possde par le processus Client_1. Le postlude prend la
forme dune fin de protection qui libre la ressource nbplace et la rend accessible au
processus Client_2.
Ralisation dune section critique laide des interruptions matrielles
307
Rservation :
masquer_it; prlude de section critique
Si nbplace > 0
alors
rserver une place;
nbplace = nbplace 1;
fsi
dmasquer_it; postlude de section critique
Cependant, cette solution est moyennement satisfaisante car elle empche lexcution de tous les processus y compris ceux ne dsirant pas accder la ressource
critique. De plus, le masquage et le dmasquage des interruptions sont des oprations
rserves au mode superviseur et ne sont donc pas accessibles pour les processus
utilisateurs. Ce mode de ralisation dune section critique est donc uniquement utilis
dans des parties de code sensibles du systme dexploitation, comme par exemple, la
manipulation des files dattente de lordonnanceur.
Loutil smaphore
Une autre solution est dutiliser un outil de synchronisation offert par le systme
dexploitation : les smaphores.
Prsentation de loutil smaphore
Un smaphore sem est une structure systme compose dune file dattente L de
processus et dun compteur K, appel niveau du smaphore et contenant initialement
une valeur val. Cette structure ne peut tre manipule que par trois oprations P(sem),
V(sem) et init(sem, val). Ces trois oprations sont des oprations indivisibles cest-dire que lexcution de ces oprations seffectue interruptions masques et ne peut
pas tre interrompue. Un outil smaphore peut tre assimil un distributeur de jetons
dont le nombre initial est fix par lopration init. Lacquisition dun jeton par un
processus donne le droit ce processus de poursuivre son excution. Sinon, le
processus est bloqu.
Lopration init
Lopration init a pour but dinitialiser le smaphore, cest--dire quelle met vide
la file dattente L et initialise avec la valeur val le compteur K. On dfinit ainsi le
nombre de jetons initiaux dans le smaphore.
init(smaphore sem, entier val)
debut
masquer_it;
sem.K : = val;
sem.L : = vide;
dmasquer_it;
fin
308
Lopration P (sem)
Lopration P(sem) attribue un jeton au processus appelant sil en reste au moins un
et sinon bloque le processus dans la file sem.L. Lopration P est donc une opration
ventuellement bloquante pour le processus lu qui leffectue. Dans le cas du blocage,
il y a rordonnancement et un nouveau processus prt est lu. Concrtement, le
compteur K du smaphore est dcrment dune unit. Si la valeur du compteur devient
ngative, le processus est bloqu.
P(smaphore sem)
dbut
masquer_it;
sem.K : = sem.K 1;
si sem.K < 0
alors
ajouter ce processus sem.L;
bloquer ce processus;
fsi
dmasquer_it;
fin
Lopration V (sem)
Lopration V(sem) a pour but de rendre un jeton au smaphore. De plus, si il y a au
moins un processus bloqu dans la file dattente L du smaphore, un processus est
rveill. La gestion des rveils seffectue gnralement en mode FIFO, cest--dire
que cest le processus le plus anciennement endormi qui est rveill. Lopration V
est une opration qui nest jamais bloquante pour le processus qui leffectue.
V(smaphore sem)
dbut
masquer_it;
sem.K : = sem.K + 1;
si sem.K < = 0
il y a au moins un processus dans la file L
alors
sortir un processus de sem.L;
rveiller ce processus; passage ltat prt
fsi
dmasquer_it
fin
Ralisation dune section critique laide des smaphores
La ralisation dune section critique laide de loutil smaphore seffectue en utilisant un smaphore que nous appelons mutex, dont le compteur K est initialis 1.
Le prlude de la section critique correspond une opration P(mutex).
Le postlude de la section critique correspond une opration V(utex).
309
Interblocage
310
Un processus rdacteur exclut donc les autres rdacteurs ainsi que tous les lecteurs.
Autrement dit, un rdacteur accde donc toujours seul au fichier ou la zone de
311
mmoire commune, cest--dire quil effectue des accs en exclusion mutuelle des
autres rdacteurs et des lecteurs. Laccs du processus rdacteur peut donc tre gr
selon le schma dexclusion mutuelle vu prcdemment, en utilisant un smaphore
appel ici acces et initialis 1.
REDACTEUR
init (acces, 1);
massurer que laccs au fichier est libre : P(acces);
entrer en criture
librer laccs au fichier :
V(acces);
Le lecteur
Un lecteur exclut les rdacteurs mais pas les autres lecteurs. Seul le premier lecteur
doit donc sassurer quil ny a pas daccs en criture en cours. Par ailleurs, seul le
dernier lecteur doit librer la ressource et rveiller un ventuel rdacteur.
Il faut en consquence compter le nombre de lecteurs qui accdent au fichier ou
la zone de mmoire partage. On utilise pour cela une variable nl, initialise 0.
Cette variable nl est accde en concurrence par tous les lecteurs qui vont soit incrmenter cette variable (un lecteur de plus), soit la dcrmenter (un lecteur de moins).
Pour que le contenu de la variable reste cohrent, il faut que nl soit accde en exclusion mutuelle par tous les lecteurs. Laccs la variable est donc gard par un smaphore mutex initialis 1.
LECTEUR
accs nl pour compter un lecteur de plus
P(mutex);
nl : = nl + 1;
si (nl = 1)
alors
je suis le premier lecteur; je me place en exclusion mutuelle
dun rdacteur ventuel
P(acces);
fsi
V(Mutex);
accs en lecture
accs nl pour compter un lecteur de moins
P(mutex);
nl : = nl 1;
si (nl = 0)
alors
je suis le dernier lecteur; je libre la ressource et je rveille
dun rdacteur ventuel en attente
V(acces);
fsi
V(mutex);
312
Exemple
Le systme MVS permet de configurer louverture dun fichier en mode exclusif
(OLD) ou en mode partag (SHR). La ligne suivante, extraite dun JCL, demande
louverture en mode exclusif du fichier physique MDP1.ARTEMIS.V70.PRO003.MULTILIB.
000011 //A70DLMA DD DSN = MDP1.ARTEMIS.V70.PRO003.MULTILIB, DISP = OLD
313
Dans ce problme, deux types de ressources distinctes peuvent tre mis en avant :
le producteur consomme des cases vides et fournit des cases pleines;
le consommateur consomme des cases pleines et fournit des cases vides.
Il y a donc des ressources cases vides et des ressources cases pleines. Le problme
peut maintenant se rapprocher dun problme dallocation de ressources critiques tel
que nous lavons vu prcdemment. On associe donc un smaphore chacune des
ressources identifies, initialis au nombre de cases respectivement vides ou pleines
initialement disponibles (n et 0). Soient donc les deux smaphores vide initialis n
et plein initialis 0.
Le producteur salloue une case vide par une opration P(vide), remplie cette case
vide et de ce fait gnre une case pleine quil signale par une opration V(plein).
Cette opration rveille ventuellement le consommateur en attente dune case pleine.
PRODUCTEUR
index i de dpot : = 0
P(vide);
dposer le message dans tampon(i);
i : = i + 1 mod n;
V(plein);
Le consommateur salloue une case pleine par une opration P(plein), vide cette
case pleine et de ce fait gnre une case vide quil signale par une opration V(vide).
Cette opration rveille ventuellement le producteur en attente dune case vide.
CONSOMMATEUR
index j de retrait : = 0
P(plein);
retirer le message de tampon(j);
j : = j + 1 mod n;
V(vide);
Utilisation de ce schma au niveau du systme dexploitation
314
12.4 CONCLUSION
Un processus est un programme en cours dexcution auquel est associ un environnement processeur (CO, PSW, RSP, registres gnraux) et un environnement mmoire
appels contexte du processus.
Lordonnanceur est un programme systme dont le rle est dallouer le processeur
un processus prt. La politique dordonnancement dtermine le choix dun processus
lire parmi tous ceux qui sont prts. Les excutions de processus ne sont pas indpendantes : les processus peuvent vouloir communiquer et accder de manire concurrente des ressources. Le smaphore S est un outil systme de synchronisation
assimilable un distributeur de jetons et manipulable par seulement trois oprations
atomiques : P(S), V(S) et init(S).
Il existe plusieurs schmas typiques de synchronisation partir desquels sont
labors des outils de communication entre processus : lexclusion mutuelle, lallocation de ressources, les lecteurs-rdacteurs, le producteur-consommateur.
Chapitre 13
Gestion
de la mmoire centrale
13
316
processus
prts
PCB
5 632
programme
processus
actif
PCB
1 024
5 120
espace physique
adresse
dimplantation
2 048
CPU
programme
registre de translation
3 072
2 048
MMU
adresse physique = 1 024 + 2 048
bus
5 120
programme
mmoire physique
Figure 13.1
317
Dans cette mthode dallocation, le programme est considr comme un espace dadressage inscable. La mmoire physique est dcoupe en zones disjointes de taille
variable, adaptables la taille des programmes, qui sont dnommes partitions.
Initialement, la zone rserve aux programmes utilisateurs est vide et constitue une
unique zone libre (figure 13.2). Au fur et mesure des chargements de programmes,
la zone libre se rduit et linstant t, elle noccupe plus quune fraction de la mmoire
centrale. Lorsque les excutions des processus se terminent, la mmoire est libre :
il se cre alors pour chaque zone libre, une nouvelle zone libre. Finalement, la
mmoire centrale se retrouve constitue dune ensemble de zones alloues et de zones
libres rparties dans toute la mmoire.
Les zones libres sont souvent organises en une liste circulaire doublement chane
de zones libres. Chaque zone libre ZL est caractrise par une adresse dimplantation (adresse(ZL)) en mmoire centrale et une taille en octet (taille(ZL)).
318
0
Systme
n
n+1
0
Systme
Systme
n
n+1
Taille
ZONE
LIBRE
Chargement
Programme 1
n
n+1
Programme 1
Programme 2
Taille
ZONE LIBRE
Programme 3
Programme 4
ZONE LIBRE
Initialement
Programme 5
Programme 5
Taille
Taille
ZONE
LIBRE
ZONE
LIBRE
linstant t
linstant t
319
Une premire stratgie pour choisir une zone libre est de prendre la premire zone
libre suffisamment grande trouve au cours du parcours de la liste chane des zones,
cest--dire la premire zone libre ZL telle que taille (ZL) taille (programme charger).
Sur la figure 13.3, le programme 7 dont la taille est gale 80 Ko est ainsi plac
dans la zone libre de 120 Ko ce qui cre une nouvelle zone libre rsiduelle de 40 Ko.
Cette mthode optimise la rapidit du choix dune zone, mais elle ne conduit pas
forcment la meilleure utilisation possible de la mmoire centrale.
0
0
Systme
Systme
n
Zone libre
60 Ko
Zone libre
Programme 6
Programme 6
Zone libre
Programme 7
120 Ko
80 Ko
Programme 7
Programme 3
Zone libre
Zone libre
40 Ko
Programme 3
100 Ko
Zone libre
Programme 5
Zone libre
60 Ko
100 Ko
Programme 5
150 Ko
Figure 13.3
Zone libre
150 Ko
Une seconde stratgie pour choisir une zone libre est de prendre la zone libre dont la
taille est la plus proche de celle du programme allouer, donc celle engendrant
la plus petite zone libre rsiduelle. Cest la zone libre Zi pour laquelle pour tout i,
taille (Zi) taille (programme charger) est minimum.
Sur la figure 13.4, le programme 7 dont la taille est gale 80 Ko est ainsi plac
dans la zone libre de 100 Ko ce qui cre une nouvelle zone libre rsiduelle de 20 Ko.
Cette mthode optimise lutilisation de la mmoire centrale. Elle cre cependant
des zones libres rsiduelles de taille de plus en plus petite, qui ne sont pas forcment
utilisables pour une nouvelle allocation. Par contre, elle est beaucoup moins rapide
en terme de choix de la zone libre, puisque lensemble des zones libres de la mmoire
centrale doit tre examin afin de choisir celle dont la taille est la plus proche de
celle du programme charger.
320
0
Systme
Systme
n
Zone libre
60 Ko
Zone libre
Programme 6
Programme 6
Zone libre
60 Ko
120 Ko
80 Ko
Programme 7
Programme 3
Zone libre
120 Ko
Programme 3
Programme 7
Zone libre
100 Ko
Zone libre
Programme 5
Zone libre
20 Ko
Programme 5
150 Ko
Figure 13.4
Zone libre
150 Ko
Une dernire stratgie pour choisir une zone libre est de prendre la zone libre dont la
taille est la plus loigne de celle du programme allouer, donc celle engendrant la
plus grande zone libre rsiduelle. Cest la zone libre Zi pour laquelle pour tout i,
taille (Zi) taille (programme charger) est maximum.
Sur la figure 13.5, le programme 7 dont la taille est gale 80 Ko est plac dans la
zone libre de 150 Ko ce qui cre une nouvelle zone libre rsiduelle de 70 Ko.
Cette mthode prsente le mme inconvnient que la mthode de la meilleure zone
libre en terme de vitesse de choix de la zone libre. Par contre, les zones rsiduelles
cres suite une allocation, sont davantage utilisables pour de nouvelles allocations.
Fragmentation externe et compactage
Fragmentation externe
321
0
Systme
Systme
n
Zone libre
60 Ko
Zone libre
Programme 6
Programme 6
120 Ko
Zone libre
80 Ko
Programme 7
Programme 3
Zone libre
Zone libre
Zone libre
100 Ko
100 Ko
Programme 5
Programme 7
150 Ko
Zone libre
Figure 13.5
0
Systme
n
Zone libre
60 Ko
Programme 6
120 Ko
Zone libre
Chargement du programme 8
180 Ko
impossible
Programme 3
Dunod La photocopie non autorise est un dlit.
120 Ko
Programme 3
Programme 5
Zone libre
60 Ko
Programme 7
Zone libre
20 Ko
Programme 5
Zone libre
Figure 13.6
150 Ko
70 Ko
322
contenir le programme 8 de 180 Ko. Pourtant lensemble des 4 zones libres forme un
espace de 60 + 120 + 20 + 150 = 350 Ko suffisant pour y placer le programme 8. Il y
a fragmentation externe.
La mthode dallocation par partitions variables nengendre pas directement le
problme de fragmentation interne voqu dans lexemple des partitions fixes du
systme OS-MFT, puisque la taille des partitions alloues sadapte celle des
programmes. Cependant, si la zone rsiduelle cre lissue dune allocation est trop
petite (quelques mots) pour permettre une nouvelle allocation, le systme peut choisir
dallouer les mots rsiduels plutt que de les considrer comme une nouvelle zone
libre. Il existe alors bel et bien une fragmentation interne.
Compactage de la mmoire centrale
Systme
Systme
Systme
n
Zone libre
60 Ko
Programme 6
Programme 6
Programme 3
Programme 3
Programme 6
Zone libre
120 Ko
Programme 7
Programme B
180 Ko
Programme 7
Programme 3
Programme 5
Programme 7
Zone libre
Programme 5
20 Ko
Programme 8
Programme 5
Zone libre
Zone libre
350 Ko
150 Ko
Zone libre
COMPACTAGE
Figure 13.7
ALLOCATION
170 Ko
323
Mmoire centrale
adr
Registre limite
taille
oui
<
non
erreur
Figure 13.8
adr
Adresse t
a
+
physique i
l
l
e
Programme
324
325
Mmoire
Page 1
Case 1
4 Ko
Page 2
Page 1 P1
Case 2
Page 3 P1
Case 3
Page 1 P2
Case 4
ALLOCATION
Page 3
Page 4
Case 5
Page 1
Page 2 P1
Case 6
Page 4 P1
Case 7
Page 2 P2
Case 8
ALLOCATION
Page 2
Figure 13.9
Processus
Fragmentation interne
1 (libre)
1
P1
P1
3
P2
1
1 (libre)
P1
2
P1
4
P2
2
Table des cases
Principe de la pagination.
physique quivalente. Ladresse physique dun octet sobtient partir de son adresse
logique en remplaant le numro de page p par ladresse physique dimplantation de
la case contenant la page p et en ajoutant cette adresse physique dimplantation, le
dplacement d de loctet dans la page. Cest la MMU qui effectue cette conversion.
Pour toute page, il faut donc connatre dans quelle case de la mmoire centrale
celle-ci a t place. Cette correspondance seffectue grce une structure particulire appele la table de pages.
326
case physique dans laquelle la page est charge> ou <numro de page, adresse
dimplantation de case physique dans laquelle la page est charge>.
Dans lexemple de la figure 13.10, le processus P1 a 4 pages dans son espace
dadressage, donc la table des pages a 4 entres. Chaque entre tablit lquivalence
Mmoire
Page 1
Page 2
Page 3
4 Ko
Page 1
case 2
Page 2
case 6
Page 3
case 3
Page 4
case 7
Case 1
Page 1 P1
Case 2
Page 3 P1
Case 3
Page 1 P2
Case 4
Page 4
Case 5
Page 2 P1
Case 6
Page 1
case 4
Page 4 P1
Case 7
Page 2
case 8
Page 2 P2
Case 8
Page 1
Page 2
Processus
1 (libre)
1
P1
P1
3
P2
1
1 (libre)
P1
2
P1
4
P2
2
Table des cases
Figure 13.10
numro de page, numro de case dans laquelle la page est charge relativement au
schma de la mmoire centrale. Le processus P2 quant lui a un espace dadressage
compos de 2 pages, donc sa table des pages a 2 entres. Par ailleurs, lespace
dadressage du processus P2 tant de 7 Ko, la page 2 du processus a une taille gale
3 Ko. Il sensuit un phnomne de fragmentation interne en mmoire physique au
niveau de la case 8 dans laquelle la page 2 est charge.
327
Puisque chaque processus dispose de sa propre table des pages, chaque opration
de commutation de contexte se traduit galement par un changement de table des
pages, de manire ce que la table active corresponde celle du processus lu.
Deux approches existent pour la ralisation de la table des pages :
la table des pages est une structure matrielle ralise grce des registres de la
MMU. Lensemble des registres composant la table des pages est sauvegard avec
le contexte processeur dans le PCB du processus;
la table des pages est une structure logicielle place en mmoire centrale. Ladresse
en mmoire centrale de la table des pages du processus actif est place dans un
registre de la MMU, le PTBR (page-table base register). Chaque processus sauvegarde dans son PCB la valeur de PTBR correspondant sa table.
Dans la premire approche, accder un emplacement mmoire ncessite seulement un accs la mmoire, celui ncessaire la lecture ou lcriture de loctet
recherch puisque la table des pages est stocke dans des registres du processeur.
Cependant, cette solution ne peut convenir que pour de petites tables des pages,
noffrant par exemple pas plus de 256 entres.
La deuxime approche permet de raliser des tables de pages de trs grande taille.
Cependant, accder un emplacement mmoire partir dune adresse pagine <p, d>
ncessite maintenant deux accs la mmoire (figure 13.11) :
un premier accs permet de lire lentre de la table des pages correspondant la
page p cherche et dlivre une adresse physique c de case dans la mmoire centrale1 ;
un second accs est ncessaire la lecture ou lcriture de loctet recherch
ladresse c + d.
MMU
Adresse logique
p
Registre PTBR
adr
d
1
adr
p
+
2
cs
er ac
i
prem
seco c
+ acc nd
s
adresse
physique
Page
d
Mmoire
Figure 13.11
1. Si lentre de la table des pages contient le numro nc de la case dans laquelle la page est
charge, ladresse dimplantation c est obtenue en multipliant nc par la taille en octet dune case.
328
Pour acclrer les accs la mmoire centrale et compenser le cot li la pagination, un cache associatif (TLB look-aside buffers) est plac en amont de la mmoire
centrale. Ce cache associatif contient les couples <numro de page p, adresse dimplantation de la case contenant p> les plus rcemment accds. Lorsque la MMU doit
effectuer une conversion dadresse pagine, elle cherche tout dabord dans le cache
si la correspondance <numro de page p, adresse dimplantation de la case contenant p>
nest pas dans le cache. Si non, elle accde la table des pages en mmoire centrale
et place le nouveau couple rfrenc dans le cache. Si oui, elle effectue directement
la conversion : un seul accs mmoire est alors ncessaire pour accder loctet
recherch (figure 13.12).
La taille des pages est souvent choisie comme tant un compromis entre la taille
de la table des pages et la fragmentation interne possible. Ainsi, opter pour une petite
taille de pages (infrieure 4 Ko) diminue le problme de fragmentation interne,
mais conduit une plus grande table des pages pour chaque processus. Au contraire,
augmenter la taille des pages augmente le risque de fragmentation interne, mais
amne de plus petites tables des pages.
Cache associatif
MMU
p, c
Adresse logique
p
Registre PTBR
adr
adr
p
1
non
trouv
trouv
2
+
3 c
Page
d
Adresse
physique
Mmoire
Figure 13.12 Traduction dune adresse pagine
en adresse physique avec ajout dun cache associatif.
Des bits de protection sont associs chaque page de lespace dadressage du processus
et permettent ainsi de dfinir le type daccs autoriss la page. Ces bits de protection sont mmoriss pour chaque page, dans la table des pages du processus. Classi-
329
4 Ko
Page 1
r--
case 2
Page 2
rw-
case 6
Page 3
r-x
case 3
Page 4
r-x
case 7
Case 1
Page 1 P1, P2
Case 2
Page 3 P1
Case 3
Case 4
Page 4
Case 5
Page 1
Page 2
Page 2 P1
Case 6
Page 1
r--
case 2
Page 4 P1
Case 7
Page 2
r-x
case 8
Page 2 P2
Case 8
Page
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8
1 (libre)
1
3
1 (libre)
1 (libre)
2
4
2
Processus
P1, P2
P1
P1
P1
P2
330
Par ailleurs, chaque processus ne peut avoir accs qu sa propre table des pages
et donc ses propres pages. De ce fait, chaque espace dadressage est protg vis--vis
des accs des autres processus. Malgr tout, il peut tre souhaitable que des pages
soient accessibles par plusieurs processus diffrents. Cest par exemple souhaitable
pour viter la duplication en mmoire centrale du code des bibliothques ou la duplication de code excutable rentrant comme le code de lditeur de texte utilis
couramment par les utilisateurs de la machine. Pour que deux processus puissent
partager un ensemble de pages, il faut que chacun des deux processus rfrence cet
ensemble de pages dans sa table des pages respective. Ainsi, sur la figure 13.13, les
processus P1 et P2 rfrencent tous les deux la mme page 1, situe dans la case 2 de
la mmoire centrale.
Pagination multiniveaux
Lespace dadresses logiques support par les systmes dexploitation actuels est trs
grand, de lordre de 232 264 octets. Dans de telles conditions, la table des pages dun
processus peut devenir galement de trs grande taille et comporter jusqu un million
dentres. Il nest ds lors plus envisageable de charger de manire contigu la table
Cache associatif
MMU
Adresse logique
hp p
hp, c
adr
Registre PTBR
Hypertable
adr
hp non
trouv
hp trouv
c
1
2
+
+
Page
Adresse
physique
c
d
Mmoire
Figure 13.14
hp
331
des pages dun processus. Une solution consiste alors paginer la table des pages
elle-mme.
Ainsi, les processeurs de larchitecture Intel x86 peuvent adresser 4 Go. La taille
des pages est de 4 Ko et une entre de la table des pages occupe 4 octets. Dans ces
conditions, la table des pages peut contenir 1 048 576 entres ce qui reprsente une
occupation mmoire de 4 Mo.
Dans ce contexte, ladresse pagine devient un triplet <hp, p, d>, o hp dsigne
lentre dune hypertable des pages, dont chaque entre correspond une page contenant une partie de la table des pages du processus. p dsigne une entre de cette
partie de la table des pages qui permet daccder la page p de lespace dadressage
du processus et d un dplacement dans la page p.
Lhypertable des pages est elle-mme place en mmoire centrale et son adresse
dimplantation en mmoire centrale est repre par un registre matriel de la MMU.
La conversion de ladresse pagine <hp, p, d> en adresse physique et laccs loctet
mmoire dsign comporte maintenant une tape supplmentaire (figure 13.14) :
un premier accs permet de lire lentre de lhypertable des pages correspondant
la page hp cherche et dlivre une adresse physique c de case dans la mmoire
centrale, qui contient une partie de la table des pages du processus;
un second accs la case c permet de lire lentre p de la table des pages et de
rcuprer ladresse physique de la case ccontenant la page p;
un troisime accs est ncessaire la lecture ou lcriture de loctet recherch
ladresse c + d.
Pour acclrer la conversion de ladresse logique vers ladresse physique, un cache
associatif contient les couples <hp, p> les plus rcemment accds.
Sur larchitecture IBM 370, lespace virtuel dun processus peut atteindre 16 Mo. La
taille dune page et dune case est fixe 4 Ko. Une table des pages de processus
peut donc contenir jusqu 212 entres, chaque entre mesurant 2 octets et donc
occuper 8 Ko. Un second niveau de pagination est donc mis en place pour supporter
la taille de la table des pages des processus.
Lespace dadressage dun processus est dcoup en morceaux ou hyperpages constitus chacun de 16 pages du processus. Une table des pages est associe chaque
hyperpage. Lhypertable des pages comporte 256 entres de 4 octets, contenant chacune
ladresse dune table des pages pour une hyperpage. Ladresse en mmoire centrale
de cette table est maintenue pour le processus courant dans le registre de contrle 1,
CR1, appel aussi STOR (segment table origin register).
Une adresse virtuelle sur 24 bits se dcompose donc en trois parties :
les 8 premiers bits constituent le numro dhyperpage hp;
les 4 suivants donnent le numro de page p de lhyperpage;
les 12 derniers donnent le dplacement d dans la page.
332
Segment 1
50 Ko
donnes
Segment 2
20 Ko
Programme
principal
fonction X
Segment 3
70 Ko
Segment 4
25 Ko
Pile
Vue Utilisateur
Figure 13.15
Segmentation
Segmentation dun programme.
333
Segment 1
Segment 2
Segment 3
20 Ko
25 Ko
15 Ko
Taille t
Adresse
dimplantation adr
20 Ko
50 Ko
25 Ko
195 Ko
15 Ko
95 Ko
10 Ko
150 Ko
Systme
dexploitation
Zone libre
Segment 1
Zone libre
Segment 4
50 Ko
95 Ko
10 Ko
Espace dadressage
du processus P1
Zone libre
Segment 4
150 Ko
Zone libre
Segment 2
Figure 13.16
195 Ko
334
Tout comme la table des pages, la table des segments peut tre ralise laide de
registres de la MMU, mais avec les mmes limites au niveau de la taille de la table.
Aussi, la table des segments est plus souvent place en mmoire centrale. Un registre
STBR (segment-table base register) contient ladresse dimplantation en mmoire
centrale de la table de segments du processus actif, tandis quun registre STLR
(segment-table length register) contient le nombre de segments existants dans lespace
dadressage du processus actif. Les valeurs contenues dans les registres STLR et
STBR sont sauvegardes pour chaque processus dans son PCB.
La conversion dune adresse segmente <s, d> avec s, numro de segment, et d dplacement dans le segment, suit les tapes suivantes (figure 13.17) :
s est compar la valeur max_s contenue dans le registre STLR. Si s est suprieur
cette valeur, alors une trappe est leve car le segment adress nexiste pas;
sinon s est additionn au contenu du registre LTBR de manire indexer lentre
de la table concernant le segment s. On rcupre alors ladresse dimplantation
adr du segment s en mmoire centrale;
le dplacement d est alors compar la taille t du segment. Si d est suprieur t,
alors une trappe est leve car le dplacement est en dehors du segment. Sinon, le
dplacement d est ajout ladresse dimplantation du segment pour gnrer
ladresse physique.
MMU
Registre STLR
max_s
Adresse logique
s
Registre LTBR
ads
adr
ads
s
>?
non
oui
2
>?
oui
Segment
non
d
Adresse
physique
TRAPPE
TRAPPE
Mmoire
Figure 13.17
335
336
Registre LTBR
ads
adr_t
ads
s
>?
non
oui
2
>?
non
oui
p d
3
adr_t
TRAPPE
Page
4
TRAPPE
Segment
adr
d
Adresse
physique
Mmoire
Figure 13.18
337
Mmoire
Page 1
4 Ko
Page 2
Page 3
Page 1
case 2
Page 2
case 6
Page 3
case 3
Page 4
case 7
Page 2 P3
Case 1
Page 1 P1
Case 2
Page 3 P1
Case 3
Page 1 P2
Case 4
Page 1 P3
Case 5
Page 2 P1
Case 6
Page 4
Espace dadressage du processus P1 (16 Ko)
Table des pages
du processus P2
Page 1
Page 2
Page 1
case 4
Page 4 P1
Case 7
Page 2
case 8
Page 2 P2
Case 8
Page 1
Page 2
Page 3
Page 1
case 5
Page 2
case 1
Page 3
Fragmentation interne
Page 1
Page 5
Page 2
Dunod La photocopie non autorise est un dlit.
Page 6
Page 3
Page 8
Page 7
Page 9
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8
Processus
2
P3
1
P1
P1
3
P2
1
1
P3
P1
2
P1
4
P2
2
Table des cases
338
que les pages couramment utilises. Ainsi, sur la figure 13.20, seules les pages 1
et 3 du processus P1 sont charges ainsi que la page 1 du processus P2 et les pages 1
et 2 du processus P3.
Page 1
4 Ko
Page 2
Page 3
Mmoire
Page 2
Page 3
Page 4
case 2
case 3
Page 2 P3
Case 1
Page 1 P1
Case 2
Page 3 P1
Case 3
Page 1 P2
Case 4
Page 1 P3
Case 5
Page 4 P4
Case 6
Page 1 P4
Case 7
Page 7 P4
Case 8
Page 4
Espace dadressage du processus P1 (16 Ko)
Table des pages
du processus P2
Page 1
Page 2
Page 1
Page 2
case 4
Page 1
Page 2
Page 3
Page 1
case 5
Page 2
case 1
Page 3
Page
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8
Page 4
Page 1
Page 5
Page 2
Page 6
Page 3
Page 8
Page 7
Page 9
Figure 13.20
Processus
2
P3
1
P1
3
P1
1
P2
1
P3
P4
2
P4
4
P4
2
Table des cases
Page 1
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Mmoire virtuelle.
1
0
0
1
0
0
1
0
case 7
case 6
case 8
339
Par ailleurs, on remarquera sur cette mme figure, que lespace dadressage du
processus P4 est plus grand que la mmoire physique disponible pour les programmes
utilisateurs. Le principe de la mmoire virtuelle, qui consiste donc ne charger un
instant donn en mmoire centrale que la partie couramment utile de lespace dadressage des processus, permet de rsoudre ce problme et autorise donc la constitution
de programmes dont la taille nest plus limite par celle de la mmoire physique.
Puisque les pages dun espace dadressage de processus ne sont pas toutes charges
en mmoire centrale, il faut que le processeur puisse dtecter leur ventuelle absence
au moment o seffectue la conversion de ladresse logique vers ladresse physique.
Chaque entre de la table des pages comporte alors un champ supplmentaire, le bit
validation V, qui est 1 si la page est effectivement prsente en mmoire centrale,
0 sinon.
La figure 13.20 montre les valeurs des bits de validation pour les tables des pages
des quatre processus P1, P2, P3 et P4, en tenant compte des chargements de leurs
pages en mmoire centrale. Ainsi pour le processus P1, la page 1 est charge dans la
case 2, le bit de validation est 1. La page 3 est charge dans la case 3, le bit de validation est 1. Par contre les pages 2 et 4 ne sont pas prsentes en mmoire centrale
et donc le bit de validation est 0 : dans ce cas, le champ numro de case na pas de
signification.
Puisque lensemble des pages des processus ne sont plus charges en mmoire
centrale, il est maintenant ncessaire de dfinir comment les cases de la mmoire
physique vont tre rparties entre les processus. Deux stratgies existent :
lallocation quitable ou fixe rpartit quitablement les cases de la mmoire centrale
entre les processus qui disposent donc tous du mme nombre de cases quelle que
soit la taille de leur espace dadressage. Il peut en rsulter une mauvaise utilisation de la mmoire centrale car un processus avec un petit espace dadressage peut
disposer de beaucoup plus de cases que ncessaire son excution;
lallocation proportionnelle rpartit les cases de la mmoire centrale proportionnellement la taille des processus, attribuant ainsi dautant plus de cases un
processus que son espace dadressage est important.
Le principe de la mmoire virtuelle est couramment implment avec la pagination la demande, cest--dire que les pages des processus ne sont charges en
mmoire centrale que lorsque le processeur demande y accder. La mmoire
virtuelle peut galement tre implmente sur un systme de segmentation la
demande, mais elle est plus difficile mettre en uvre du fait de la longueur variable
des segments et donc plus rare. Cest pourquoi, nous avons dlibrment choisi ici
de nous placer dans le seul contexte de la pagination.
13.3.2 Le dfaut de page
Que se passe-t-il prsent lorsquun processus tente daccder une page de son
espace dadressage qui nest pas en mmoire centrale ? La MMU accde la table
des pages pour effectuer la conversion de ladresse logique vers ladresse physique
et teste la valeur du bit de validation. Si la valeur du bit V est 0, cela signifie que la
340
page nest pas charge dans une case et donc la conversion ne peut pas tre ralise.
Une trappe appele dfaut de page est leve qui suspend lexcution du processus
puis initialise une opration dentres-sorties afin de charger la page manquante en
mmoire centrale dans une case libre. Les pages constituant lespace dadressage du
processus sont stockes dans une zone particulire du disque communment appele
MMU
Adresse logique
Registre PTBR
p
adr
adr
p
+
Mmoire
2. Droutement
E/S disque
MMU
Adresse logique
p
adr
d
5
Registre PTBR
4. Mise jour
de la table
des pages
adr
Table des pages
V = 0 adresse p c
sur disque
5
+
+
c
3. Chargement
dans une case libre
page p
d
5. Adresse physique
Mmoire
Figure 13.21
Dfaut de page.
341
zone de swap. Ladresse de chaque page sur le disque est mmorise dans lentre
correspondante de la table des pages. Ainsi, sur un processeur de type Pentium,
lexception 14 correspond au dfaut de pages.
Avec ce principe de pagination la demande, le mcanisme de conversion dune
adresse logique <p, d> vers ladresse physique correspondante devient (figure 13.21) :
1. accs lentre p de la table des pages du processus actif et test de la valeur du bit
de validation V;
2. si la valeur du bit V est 0, alors il y a dfaut de page. Une opration dentressorties est lance pour charger la page dans la mmoire centrale (ladresse de la
page sur le disque est stocke dans la table des pages);
3. la page est place dans une case libre, trouve par lintermdiaire de la table des
cases;
4. la table des pages du processus est mise jour cest--dire que le bit de validation
V passe 1 et le champ numro de case est renseign avec ladresse dimplantation de la case abritant maintenant la page p;
5. la conversion de ladresse logique vers ladresse physique est reprise selon le
principe vu au paragraphe 13.2.2.
13.3.3 Le remplacement de pages
Lors dun dfaut de page, la page manquante est charge dans une case libre. Cependant, la totalit des cases de la mmoire centrale peut tre occupe. Il faut donc
librer une case de la mmoire physique pour y placer la nouvelle page. Lors de la
libration dune case, la page victime contenue dans cette case doit tre sauvegarde
sur le support de masse si elle a t modifie lors de son sjour en mmoire centrale.
Un bit M de modification mis 1 si la page est modifie est ajout chaque entre
de la table des pages afin dtre mme de savoir si la page doit tre rcrite sur le
disque avant dtre crase par la nouvelle page (figure 13.22).
Le choix de la page victime lors du traitement dun dfaut de page pour un processus
peut se faire soit localement ce processus, soit globalement sur lensemble des
processus. Dans le premier cas, la page victime doit forcment appartenir lespace
droits r w x
Accs
adresse
disque
N de case
physique
342
dadressage du processus en dfaut de page. Dans le second cas, la page victime peut
appartenir lespace dadressage de nimporte lequel des processus prsents en
mmoire centrale. Ce dernier cas est le plus souvent mis en uvre car il donne de
meilleurs rsultats quant lutilisation de la mmoire centrale.
Le mcanisme de conversion dune adresse logique <p, d> vers ladresse physique
correspondante devient maintenant :
1. accs lentre p de la table des pages du processus actif et test de la valeur du bit
de validation V;
2. si la valeur du bit V est 0, alors il y a dfaut de page.
3. une case libre est recherche. Si il ny a pas de cases libres, une page victime est
choisie. Si la valeur du bit M pour cette page est 1, alors une opration dentressorties est lance pour sauvegarder la page victime;
4. une opration dentres-sorties est lance pour charger la page dans la mmoire
centrale dans la case libre ou libre;
5. la table des pages du processus est mise jour cest--dire que le bit de validation V
passe 1 et le champ numro de case est renseign avec ladresse dimplantation
de la case abritant maintenant la page p;
6. la conversion de ladresse logique vers ladresse physique est reprise selon le
principe vu au paragraphe 13.2.2.
Le choix optimal pour la page victime consiste librer une case en dchargeant
de la mmoire centrale une page qui ne servira plus du tout, de faon ne pas provoquer de dfaut de page ultrieur sur cette mme page. videmment, il nest pas
possible de savoir si telle ou telle page dun processus est encore utile ou pas.
Plusieurs algorithmes, appels algorithmes de remplacement de pages, ont t
dfinis qui tendent plus ou moins vers lobjectif optimal. Ce sont les stratgies : FIFO
(First In, First Out), LRU (Least Recently Used), algorithme de la seconde chance,
LFU (Least Frequently Used) et MFU (Most Frequently Used).
Lvaluation de ces diffrentes stratgies seffectue en comptant sur une mme
suite de rfrences des pages, le nombre de dfaut de pages provoqus. Une telle
suite de rfrences un mme ensemble de pages est appele chane de rfrences.
Ainsi dans les paragraphes suivants, nous donnons un exemple de chaque stratgie
sur la chane de rfrences 8, 1, 2, 3, 1, 4, 1, 5, 3, 4, 1, 4, 3 o chaque chiffre i correspond un accs la page i. Dans chaque exemple, nous supposons une mmoire
centrale compose de trois cases initialement vides. La page victime apparat en
italique. La lettre D signale loccurrence dun dfaut de page.
Remplacement FIFO
Avec cet algorithme, cest la page la plus anciennement charge qui est remplace.
Une implmentation de cet algorithme peut tre ralise en conservant dans la table
des pages, la date de chargement de chaque page. La page choisie est alors celle pour
laquelle la date de chargement est la plus ancienne.
343
La mise en uvre de cet algorithme est simple, mais ses performances ne sont pas
toujours bonnes. En effet, lge dune page nest pas le reflet de son utilit.
La figure 13.23 donne un exemple de mise en uvre de cet algorithme.
Chane de rfrence
8
1
2
case 1
case 2
case 3
D
Figure 13.23
Remplacement FIFO.
Remplacement LRU
Avec cet algorithme, cest la page la moins rcemment utilise qui est remplace.
Cette stratgie utilise le principe de la localit temporelle selon lequel les pages
rcemment utilises sont celles qui seront rfrences dans le futur. La page la moins
rcemment utilise est donc juge comme tant celle devenue la plus inutile.
Une implmentation de cet algorithme peut tre ralise en conservant dans la
table des pages, la date de dernier accs de chaque page. La page choisie est alors
celle pour laquelle la date daccs est la plus ancienne. La figure 13.24 donne un
exemple de mise en uvre de cet algorithme.
Chane de rfrence
8
1
2
case 1
case 2
case 3
D
Figure 13.24
Remplacement LRU.
Lalgorithme LRU est lun des algorithmes les plus utiliss car il est considr
comme trs bon. Cependant sa mise en uvre est coteuse et ncessite le recours
des compteurs matriels spcifiques pour la dlivrance des dates daccs aux pages.
Algorithme de la seconde chance
Un bit de rfrence est associ chaque page dans la table des pages des processus.
Ce bit de rfrence est mis 1 chaque rfrence la page.
Le principe de lalgorithme de la seconde chance est le suivant :
344
Avec lalgorithme LFU, cest la page la moins frquemment utilise qui est remplace.
Cet algorithme prsente un problme vis--vis des pages abondamment rfrences
sur un court laps de temps. La valeur du compteur pour ces pages tant leve, elles
ne sont pas retires de la mmoire centrale, mme si elles ne sont plus jamais rfrences.
Avec lalgorithme MFU, cest au contraire la page la plus frquemment utilise
qui est remplace. Largument la base de cet algorithme est quune page ayant un
petit nombre de rfrences vient sans doute dtre charge en mmoire centrale et
doit donc y rester.
Limplmentation de ces deux algorithmes est ralise laide dun compteur
associ chaque entre de table des pages qui mmorise le nombre de rfrences
une page. Cependant, les performances de ces deux algorithmes ne sont pas trs bonnes
et ils sont rarement utiliss.
13.3.4 Performance
Les performances dun systme informatique peuvent tre sensiblement affectes
par le mcanisme de pagination la demande, si le nombre de dfauts de pages est
trop important. En effet, dans un systme utilisant la pagination la demande, le
temps daccs effectif un mot de la mmoire centrale augmente proportionnellement avec le nombre de dfaut de pages : soit p, 0 p 1 la probabilit dun dfaut
de page, soit ta, le temps daccs un mot de la mmoire centrale sans dfaut de
page alors le temps effectif daccs est (1 p) ta + p temps de dfaut de page.
Le temps de dfaut de page est surtout impact par le temps ncessaire pour
raliser lopration dentres-sorties permettant de charger la page manquante en
mmoire centrale. Un temps moyen pour raliser une telle opration dentres-sorties
avec les technologies de disque actuelles est de 25 ms. Ainsi, le temps effectif daccs
devient, si lon considre un temps daccs la mmoire centrale gal 100 ns :
(1 p) 100 + p 25 000 000 = 100 + 24 999 900 p
Pour obtenir une dgradation des performances infrieure 10 %, il faut que la
probabilit p soit infrieure 0,000 000 4, cest--dire que moins dun accs mmoire
sur 2 500 000 provoque un dfaut de page.
345
13.3.5 Exemples
Le drobeur de pages sous Linux
Lentre dune page dans une table des pages dun processus Linux contient les
champs suivants :
346
croulement
Dgr de multiprogrammation
Figure 13.25
croulement.
347
13.5 CONCLUSION
Lallocation en partitions variables considre le programme comme un ensemble
dadresses inscables. Ce type dallocation pose un problme de fragmentation et
ncessite des oprations de compactage de la mmoire centrale.
La pagination dcoupe lespace dadressage du programme en pages et la
mmoire physique en cases de mme taille. Une adresse gnre par le processeur
est de la forme <numro de page, dplacement dans la page>. La table des pages du
processus permet de traduire ladresse pagine en adresse physique.
La segmentation dcoupe lespace dadressage du programme en segments correspondant des morceaux logiques du programme. Une adresse gnre par le processeur est de la forme <numro de segment, dplacement dans le segment>. La table des
segments du processus permet de traduire ladresse segmente en adresse physique.
Remarque : Segmentation et pagination sont trs souvent associes.
Lorsque le principe de la mmoire virtuelle est appliqu, les pages dun processus
ne sont charges en mmoire centrale que lorsque le processus y accde. Lorsquun
processus accde une page non prsente en mmoire centrale, il se produit un
dfaut de page. La page manquante est alors charge dans une case libre. Si aucune
case nest libre, le systme utilise un algorithme de remplacement de pages pour
choisir une case librer.
Lcroulement est la situation pour laquelle un ou plusieurs processus passent
plus de temps paginer qu sexcuter.
Chapitre 14
14
La mmoire centrale de lordinateur est une mmoire volatile, cest--dire que son
contenu sefface lorsque lalimentation lectrique de lordinateur est interrompue.
Cependant, les programmes et les donnes stocks dans la mmoire centrale et en
premier lieu le code et les donnes mme du systme dexploitation, ont besoin
dtre conservs au-del de cette ventuelle coupure : cest le rle rempli par le
systme de gestion de fichiers qui assure la conservation des donnes sur un support
de masse non volatile, tel que le disque dur, la disquette, le CD-ROM ou encore la
bande magntique. Le systme dexploitation offre lutilisateur une unit de
stockage indpendante des proprits physiques des supports de conservation : le
fichier. Ce concept de fichier recouvre deux niveaux. Dune part, le fichier logique
reprsente lensemble des donnes incluses dans le fichier telles quelles sont vues
par lutilisateur. Dautre part, le fichier physique reprsente le fichier tel quil est allou
physiquement sur le support de masse. Le systme dexploitation gre ces deux
niveaux de fichiers et assure notamment la correspondance entre eux, en utilisant
une structure de rpertoire.
349
Exemple
Dans le langage Pascal, le type de donnes reprsentant un fichier est le type file of.
Un enregistrement est dfini comme une structure de type record. Un fichier est un
ensemble denregistrements.
Dfinition de lenregistrement element comportant 3 champs classe, professeur
et nb_eleves.
type element = record
classe : string [12];
professeur : string [25];
nb_eleves : integer;
end;
Le mode daccs squentiel traite les enregistrements dun fichier dans lordre o ils
se trouvent dans ce fichier, cest--dire les uns la suite des autres. Dans ce contexte,
une opration de lecture dun enregistrement dlivre lenregistrement courant et se
350
Le mode daccs index, encore appel accs alatoire, permet daccder directement
un enregistrement quelle que soit sa position dans le fichier. Un champ commun
tous les enregistrements sert de cl daccs. Une structure daccs (lindex) ajoute
aux donnes du fichier permet de retrouver un enregistrement en fonction de la
valeur du champ daccs.
Dans la fonction de lecture, la valeur du champ daccs recherch est spcifie et
lopration de lecture dlivre directement lenregistrement pour lequel la cl correspond. La fonction dcriture place le nouvel enregistrement en fin de fichier et met
jour la structure de donnes permettant de le retrouver ultrieurement. Une opration de
modification dun enregistrement peut tre disponible et permet de rcrire un enregistrement pralablement lu depuis le fichier sans avoir le rechercher de nouveau.
Avec ce mode, un fichier est soit accessible en lecture seule, soit en criture seule,
soit tout la fois en lecture et en criture.
Accs direct
Dans le mode daccs direct, encore appel accs relatif, laccs un enregistrement
se fait en spcifiant sa position relative par rapport au dbut du fichier. Ce mode
daccs constitue un cas particulier de laccs alatoire pour lequel la cl daccs est
la position de lenregistrement dans le fichier.
Modes daccs du systme MVS
La mthode daccs VSAM (Virtual Storage Access Method) est une mthode daccs
gnrale, qui sur les systmes MVS 370, remplace et unifie les anciennes mthodes
daccs IBM (QSAM, BSAM, ISAM, BDAM). La mthode daccs VSAM gre
en fait 4 modes daccs distincts :
le mode KSDS (key-sequenced data set) est un mode daccs de type index. Dans
cette organisation, les enregistrements sont reprs par une cl et classs physiquement par ordre de cls croissantes. Laccs un enregistrement passe par un
index qui indique la position de lenregistrement en fonction de la cl fournie;
le mode ESDS (entry_sequenced data set) est un mode daccs de type squentiel,
sans cl;
le mode RRDS (relative record data set) est un mode daccs de type relatif ou
direct. Un enregistrement est accd en fournissant son numro dordre dans le
fichier;
351
le mode LDS (linear data set) est un mode daccs qui efface la notion denregistrement. Le fichier se prsente simplement comme une suite doctets dcoups en
paquets dune taille de 4 096 octets. Cette organisation est similaire celle mise
en uvre par le systme Unix.
Paralllement la mthode daccs VSAM, le systme 370 gre un autre mode
daccs situ mi-chemin entre le mode squentiel et le mode direct. Dans cette
organisation appele organisation partitionne, le fichier est dcoup en membres,
stocks les uns derrire les autres, selon leur ordre de cration. Un index plac en
dbut de fichier pointe sur chacun des membres. Les enregistrements placs dans un
membre sont ensuite accds de manire squentielle.
14.1.3 Exemples
Manipulation de fichiers avec le langage Ada
352
353
IDENTIFICATION DIVISION.
PROGRAM-ID VSAM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FIC1 ASSIGN UNIT1.
SELECT FIC2 ASSIGN UNIT2
ORGANIZATION INDEXED
ACCESS DYNAMIC
RECORD KEY IS FIC2-ENR1-CLE.
FILE STATUS IS F-S.
DATA DIVISION.
FILE SECTION.
FD FIC1
RECORDING MODE f
LABEL RECORD STANDARD
DATA RECORD IS FIC1-ENR.
01 FIC1-ENR.
02 FIC1-ENR0
PIC X(80).
02 FIC1-ENR1 REDEFINES
FIC1-ENR0.
03 FIC1-ENR1-CHP1
PIC 9(5).
03 FILLER
PIC X(75).
FD FIC2
RECORDING MODE f
LABEL RECORD STANDARD
DATA RECORD IS FIC2-ENR.
01 FIC2-ENR.
02 FIC2-ENR0
PIC X(80).
02 FIC2-ENR1 REDEFINES
FIC2-ENR0.
03 FIC2-ENR1-CLE
PIC X(5).
03 FIC2-ENR1-LIB
PIC X(75).
354
Rotation
Cylindre : ensemble des pistes
accessibles sans dplacement
des ttes
Bloc : n secteurs
Plateau
355
La plus petite unit accessible physiquement sur le disque est donc le secteur.
Pour optimiser les oprations de lecture et criture, les secteurs sont regroups en
bloc. Un bloc est constitu de plusieurs secteurs et constitue la plus petite unit
dchange entre le disque et la mmoire centrale. Sa taille dpend du priphrique
dentres-sorties et est fixe par le matriel. La figure 14.1 illustre la structure
dun disque.
14.2.2 Mthodes dallocation de la mmoire secondaire
Les enregistrements composant le fichier logique doivent tre crits dans les secteurs
composant les blocs du disque, pour former ainsi le fichier physique correspondant
au fichier logique.
Le fichier physique est donc constitu dun ensemble de blocs physiques qui
doivent tre allous au fichier. Diffrentes mthodes dallocation de la mmoire
secondaire ont t dfinies qui se rapprochent grandement des mthodes dallocation
de la mmoire centrale voques au chapitre prcdent. Ce sont principalement les
mthodes de lallocation contigu, par zones, par blocs chans ou indexe.
Par ailleurs, pour pouvoir allouer des blocs aux fichiers, il faut connatre tout
moment lensemble des blocs libres et donc grer lespace libre sur le disque.
Allocation contigu
Cette allocation exige quun mme fichier occupe un ensemble de blocs physiques
contigus. Cette mthode a lavantage de la simplicit mais elle demande ce que
lors de la cration dun fichier la taille finale de celui-ci soit value afin quun
espace suffisant puisse tre rserv. Il en dcoule souvent une sous-utilisation de
lespace disque.
Lallocation dun fichier requiert de trouver un espace libre sur le disque suffisamment grand cest--dire dont le nombre de blocs est au moins gal au nombre de
blocs du fichier. Les mthodes First Fit, Best Fit et Worst Fit voques lors du
chapitre prcdent propos de lallocation de la mmoire centrale par partitions
variables sont appliques galement ici pour choisir lespace libre allouer. Ainsi,
sur la figure 14.2, lallocation du fichier fich_5 dune taille value maximale 4
blocs attribuera les blocs libres 4, 5, 6 et 7 dans le cas dune stratgie de type First
Fit, les blocs libres 13, 14, 15 et 16 dans le cas dune stratgie Best Fit et les blocs
libres 21, 22, 23 et 24 dans le cas dune stratgie Worst Fit.
Il dcoule de cette mthode dallocation ces mmes problmes de fragmentation
qui se traduisent par une difficult croissante pour trouver des espaces libres suffisants une nouvelle allocation. Il faut alors avoir recours une opration de
compactage pour regrouper les espaces libres disperss et insuffisants en un seul
espace libre exploitable. Cette opration est videmment trs coteuse puisquelle
ncessite le dplacement des blocs du disque, cest--dire la lecture de chaque bloc
et sa rcriture.
356
10
11
12
17
18
20
25
Bloc allou
Bloc libre
Figure 14.2
Allocation contigu.
Lopration de compactage du disque est ralise sur les systmes de type DOS
et Windows par le biais de lopration de dfragmentation.
Une dernire difficult est celle de lextension dun fichier si les blocs disques
voisins ne sont pas libres. Ainsi, sur la figure 14.3, lutilisateur souhaite tendre le
fichier fich_1 avec un nouveau bloc. Cependant, le bloc voisin au dernier bloc de
fich_1 est allou au fichier fich_5. Une solution peut tre alors de dplacer le fichier
dj existant dans une zone libre plus importante autorisant de ce fait son extension,
mais cette solution est excessivement coteuse. La solution plus gnralement utilise
dans ce cas est de gnrer une erreur.
357
10
11
12
17
18
20
25
Bloc allou
Figure 14.3
Bloc libre
Difficults de lallocation contigu.
Cette mthode dallocation supporte les modes daccs squentiel et direct. Par
ailleurs, elle offre de bonnes performances pour laccs aux diffrents blocs dun
mme fichier, car leur contigut minimise le nombre de repositionnements ncessaires des ttes de lecture/criture. Cependant, elle aboutit une mauvaise utilisation
de lespace disque qui fait quelle tend de plus en plus tre abandonne.
Allocation par zones
358
Fichier fich_1 : ZS
Fichier fich_3 : ZS
Fichier fich_5 : ZP
Fichier fich_1 : ZS
Fichier fich_2 : ZP
Fichier fich_3 : ZP
Fichier fich_4 : ZP
Bloc allou
Fichier fich_2 : ZS
Bloc libre
Zone primaire ZP
Figure 14.4
Zone secondaire ZS
Allocation par zones.
Cette mthode dallocation est celle mise en uvre sur les systmes IBM de type
MVS. Dans ce systme, un fichier est constitu par une zone primaire dune taille P
et dau plus 15 zones secondaires dune taille S. Les tailles P et S peuvent tre explicites en terme de pistes (environ 50 Ko), de cylindres (environ 15 pistes) ou de
359
blocs (4 Ko ou plus). Voici lexemple dun travail batch crit en JCL permettant la
cration dun fichier logique nomm FICHIER li au fichier physique de nom
DSE25.OUT. Le paramtre SPACE = (TRK, (5, 1)) indique que le fichier est compos
dune zone primaire dune taille de 5 pistes (TRK) et de zones secondaires dont la
taille est dune piste.
000001
000002
000003
000004
000005
000006
000007
000008
000009
000010
000011
000012
000013
000014
000015
000016
000017
000018
La mthode dallocation par zones diminue les performances daccs aux blocs
dun mme fichier puisque le passage dune zone un autre non contigu peut ncessiter un repositionnement important du bras. Elle minimise par ailleurs les problmes
de fragmentation externe sans cependant les rsoudre compltement. Ainsi, lutilitaire de gestion du disque de MVS, DFDSS (data facility dataset services), offre
entre autres une commande de compactage DEFRAG.
Dans cette mthode, un fichier est constitu comme une liste chane de blocs physiques, qui peuvent tre disperss nimporte o sur le support de masse. Chaque bloc
contient donc ladresse du bloc suivant dans le fichier.
tendre un fichier est alors simple : il suffit dallouer un nouveau bloc physique
puis de le chaner au dernier bloc physique du fichier. Ainsi, il nest plus ncessaire
de connatre la cration du fichier, la taille maximale de celui-ci. Par ailleurs, les
problmes de fragmentation externe disparaissent.
Cette mthode dallocation souffre malheureusement de deux inconvnients. Le
premier est que le seul mode daccs utilisable est le mode daccs squentiel. En
effet, accder un enregistrement donn du fichier ncessite de parcourir la liste
chane des blocs constituant ce fichier, donc de lire les uns la suite des autres
360
chacun des blocs du fichier pour connatre ladresse du suivant. Le second inconvnient est la place occupe dans chaque bloc par le chanage de la liste, fonction de la
taille des adresses physiques des blocs. La figure 14.5 illustre cette mthode.
Fichier fich_1
Fichier fich_2
14
10
15
12
17
18
Fichier fich_3
20
Bloc allou
Figure 14.5
Bloc libre
Une variante de lallocation par blocs chans est la solution retenue par les
systmes DOS/Windows. Lensemble des chanages des blocs (clusters) de fichiers
est regroup dans une table appele FAT (File Allocation Table). Cette table est
compose dautant dentres quil y a de blocs de donnes sur le disque. Chaque
entre de la table correspond un bloc du disque et contient :
si le bloc appartient un fichier et nest pas le dernier bloc de ce fichier, le numro
du bloc suivant du fichier;
si le bloc appartient un fichier et est le dernier bloc de ce fichier, une valeur de
fin de fichier (FF816);
si le bloc nappartient pas un fichier, une valeur de bloc libre (00016).
361
1
2
5
Fichier fich_2
7
8
10
12
14
15
17
18
Fichier fich_3
Figure 14.6
20
2
8
000
000
12
000
14
FF8
000
5
000
FF8
000
15
10
000
18
FF8
000
17
000
000
000
000
000
000
000
000
000
000
362
Allocation indexe
Lallocation indexe vise supprimer les deux inconvnients de la mthode dallocation chane. Dans cette mthode, toutes les adresses des blocs physiques constituant un fichier sont ranges dans une table appele index, elle-mme contenue dans
un bloc du disque. la cration dun fichier, lindex est cr avec toutes ses entres
initialises vide et celles-ci sont mises jour au fur et mesure de lallocation des
blocs au fichier. Ce regroupement de toutes les adresses des blocs constituant un
fichier dans une mme table permet de raliser des accs directs chacun de ces
blocs. Par ailleurs, les blocs allous au fichier contiennent prsent exclusivement
des donnes du fichier. La figure 14.7 illustre cette mthode.
Fichier fich_1
Fichier fich_2
Fichier fich_3
Bloc allou
Figure 14.7
Bloc libre
Bloc dindex
Un problme est inhrent cependant la taille de la table dindex qui est conditionne par celle dun bloc physique et par le nombre de blocs existants sur le
disque. Si le bloc est grand, le nombre dentres utilises dans le bloc dindex peut
363
Index multiniveaux
Blocs de donnes
Figure 14.8
Index multiniveaux.
Cette mthode dallocation indexe est mise en uvre pour lallocation de fichiers
dans le systme Unix. Dans ces systmes, un premier index compos de 13 entres
est maintenu dans le descripteur du fichier. Les 10 premires entres de cet index
contiennent les adresses des 10 premiers blocs de donnes du fichier. La 11e entre
par contre pointe, elle, sur un bloc dindex, qui contient les adresses des p (p = taille
bloc en octets/taille en octets dune adresse de bloc) blocs de donnes suivants du
fichier, introduisant ainsi un premier niveau dindirection dans lindex du fichier. La
12e entre de la table engendre un niveau dindirection supplmentaire. Elle pointe
364
galement sur un bloc dindex, qui contient les adresses de p blocs dindex dont les
entres pointent sur les p2 blocs de donnes suivants du fichier. Enfin, la dernire
entre de la table ajoute encore un niveau dindex supplmentaire (figure 14.9).
Table dindex
dans le descripteur
Index multiniveaux
dans les blocs du disque
Figure 14.9
365
Ainsi, si lon considre des blocs de donnes de 1 024 octets et des adresses de blocs
de 4 octets, la taille maximale dun fichier est de 10 + 256 + 65 536 + 16 777 216 blocs.
Chaque niveau dindirection additionnel ncessite un accs disque supplmentaire pour obtenir un bloc de donnes. Ainsi, un petit fichier dau plus 10 blocs a
ses blocs de donnes accessibles en une seule opration dentres-sorties. Par
contre, un trs gros fichier dont la taille est suprieure 10 + 256 + 65 536 blocs
demande 4 accs disque pour obtenir un bloc situ au-del du 65 803e bloc. Aussi,
un mcanisme de cache (buffer cache dUnix) qui conserve en mmoire centrale
les blocs disque les plus rcemment accds est mis en uvre pour limiter les
accs au disque.
Gestion de lespace libre
Le systme maintient une liste despace libre, qui mmorise tous les blocs disque
libres, cest--dire les blocs non allous un fichier.
Lors de la cration ou de lextension dun fichier, le systme recherche dans la
liste despace libre la quantit requise despace et lalloue au fichier. Lespace allou
est supprim de la liste.
Lors de la destruction dun fichier, lespace libr est intgr la liste despace libre.
Il existe diffrentes reprsentations possibles de lespace libre. Les principales sont la reprsentation de lespace libre sous forme dun vecteur de bits et
la reprsentation de lespace libre sous forme dune liste chane des blocs
libres.
Le systme de la FAT voqu plus haut, intgre directement la gestion de lespace
libre sur le disque, sans mcanisme additionnel.
Dans cette mthode, lespace libre sur le disque est reprsent par un vecteur binaire
dans lequel chaque bloc est figur par un bit. La longueur de la chane binaire est
donc gale au nombre de blocs existants sur le disque. Dans cette chane, un bit 0
indique que le bloc correspondant est libre. Au contraire, un bit 1 indique que le
bloc correspondant est allou. Ainsi, le vecteur de bits correspondant ltat du disque
de la figure 14.5 est 110010110101011011010000000000.
Gestion de lespace libre par liste chane
Dans cette mthode, lespace libre sur le disque est reprsent par une liste chane
de lensemble des blocs libres du disque. Avec cette mthode, la recherche sur disque
de n blocs conscutifs peut ncessiter le parcours dune grande partie de la liste
chane. Une variante de la mthode consiste indiquer pour chaque premier bloc dune
zone libre, le nombre de blocs libres constituant la zone, puis ladresse du premier
bloc de la zone libre suivante. La figure 14.10 illustre cette mthode de reprsentation de lespace libre.
366
Zones libres
Fichier fich_1
2 6
Fichier fich_2
1 11
1 16
1 13
1 19
Fichier fich_3
1 21
10 3
Bloc allou
Figure 14.10
Bloc libre
14.3 CORRESPONDANCE
FICHIER LOGIQUE-FICHIER PHYSIQUE
14.3.1 Notion de rpertoire
Dfinition
367
368
constitus par lensemble des sous-rpertoires et dun ensemble de feuilles qui sont
les fichiers eux-mmes.
Dans cette structure n niveaux, le nom complet dun fichier encore appel pathname est constitu de son nom prcd du chemin dans la structure de rpertoires
depuis la racine. Ce chemin est compos des noms de chacun des rpertoires traverser
depuis la racine, spars par un caractre de sparation (par exemple / sous Unix et \
sous DOS) Ainsi, sur la figure 14.11, le nom complet du fichier F3 de lutilisateur
Arthur est /Arthur/pg/F3.
Structure un niveau
Rpertoire
F1
F2
F3
F4
F5
Fichiers
Rpertoire racine
Structure deux niveaux
Rpertoires de travail
Arthur
Julie
F1
F2
F1
F3
Rpertoire racine
Structure arborescente
Rpertoires de travail
Julie
Arthur
texte
pg
F1
/Julie/F1
F1
F2
/Arthur/texte/F1
Figure 14.11
F1
F3
/Arthur/pg/F1
Structures de rpertoire.
F3
369
Rpertoire Fichiers
Fichiers
Rpertoire
Fichiers
Partition B
Rpertoire
Fichiers
Partition C
Rpertoire
Figure 14.12
Fichiers
Partition A
Partition D
Partitions.
Chaque partition est repre par un nom appel label. Pour pouvoir tre accessible, la partition doit tre connecte larborescence de fichiers de la machine, en
un point dancrage qui correspond un rpertoire. Rendre accessible le contenu
dune partition lutilisateur de lordinateur en liant une partition un rpertoire
constitue lopration de montage de la partition. Cette opration est souvent accomplie linitialisation du systme.
Ainsi, sous le systme Linux, la disquette constitue une partition qui doit tre lie
au systme de gestion de fichiers de la machine pour pouvoir tre accessible. Ceci
est ralis par la commande mount label_disquette/rep_disquette qui lie ici la
disquette un rpertoire plac directement sous la racine et appel rep_disquette.
Exemples
Partition FAT
Une partition principale de type FAT, sur les ordinateurs hbergeant les systmes
dexploitation de la famille Windows, est divise en six parties. On y trouve
(figure 14.13) :
un secteur damorage plac dans le premier secteur du disque qui contient
notamment la table des partitions, table dans laquelle sont stockes les informations relatives aux diffrentes partitions existantes sur le disque;
370
un secteur de boot qui contient des informations sur la structure du disque (taille
dun secteur, nombre de secteurs par piste, etc.) et un programme permettant le
chargement du systme dexploitation en mmoire centrale;
un exemplaire de la FAT;
une copie optionnelle de la FAT, cette redondance permettant dassurer une
certaine tolrance aux pannes en cas daccs inaccessible au premier exemplaire
de la FAT;
le rpertoire racine ou principal (root directory);
la zone de donnes et de sous-rpertoires.
Secteur
damorage
Copie
de la FAT
FAT
Rpertoire racine
Blocs
de donnes
FAT
1
2
5
7
8
10
12
14
15
17
18
20
2
8
000
000
12
000
14
FF8
000
5
000
FF8
000
15
10
000
18
FF8
000
17
000
000
000
000
000
000
000
000
000
000
Fich_1 Ext
Figure 14.13
Partition FAT.
371
Super bloc
Blocs de donnes
propritaire
type
permissions
dates
Figure 14.14
Partition Unix.
Dans ce contexte, un rpertoire Unix est un fichier part entire, dcrit par un inud, qui contient comme donnes, la liste des fichiers appartenant au rpertoire,
avec le numro di-nud qui leur est associ.
Une partition du systme Unix a le format suivant. On y trouve (figure 14.14) :
le bloc de boot occupe le premier secteur de la partition. Ce bloc contient le code
permettant dinitialiser le systme;
372
le super bloc contient des informations sur le systme de gestion de fichiers associ
la partition, telles que la taille du systme de gestion de fichiers, le nombre de
blocs libres et ladresse du premier bloc libre dans la liste des blocs libres, le
nombre di-nuds disponibles et ladresse du premier i-nud libre dans la liste
des i-nuds;
la liste des i-nuds allous des fichiers. Parmi, ces i-nuds se trouve li-nud
du rpertoire racine de la partition qui est le rpertoire partir duquel la partition
est accessible lutilisateur aprs lopration de montage;
les blocs de donnes constituant les fichiers.
Rpertoire MVS
Ces fonctions permettent soit la cration dun fichier, soit louverture dun fichier,
soit sa fermeture et sa destruction.
Cration de fichier
Lors de la demande de cration dun fichier caractris par un nom logique et divers
attributs tels que le type, la taille, le mode daccs, le systme dexploitation vrifie
quaucun autre fichier de mme nom nexiste dans le rpertoire de cration du
fichier. Si tel est le cas, il ajoute une entre au rpertoire pour le nouveau fichier, puis
373
alloue partir de la liste des blocs libres de lespace physique ce nouveau fichier,
en fonction de la mthode dallocation en vigueur sur le disque. Lentre du rpertoire concernant ce nouveau fichier est mise jour avec les attributs fournis par le
biais de la fonction systme et galement avec les informations concernant lallocation physique qui vient dtre ralise. Dans le cas o un fichier de mme nom existait dj ou si lallocation physique nest pas possible, une erreur est gnre.
Sous Unix, lappel systme creat (const char * nom_fichier, int mode) provoque
la cration dun fichier dont le nom est nom_fichier, selon le mode mode qui peut tre
lecture seule, criture seule ou lecture et criture.
Ouverture de fichier
Lors de la demande douverture dun fichier caractris par un nom logique et effectue selon un certain mode (lecture, criture ou lecture/criture), le systme dexploitation recherche dans le rpertoire devant contenir le fichier, sil existe une entre
correspondante. Si oui, il vrifie la compatibilit du mode douverture demand avec
les droits daccs associs au fichier, puis recherche ladresse physique du dbut de
fichier. Toutes les informations concernant le fichier, cest--dire les informations
contenues dans lentre de rpertoire correspondant au fichier sont alors copies
dans une structure en mmoire centrale, appele descripteur de fichier ou encore
bloc de contrle de fichier (BCF). Ainsi, lors des accs ultrieurs ce mme fichier,
le systme dexploitation naura pas besoin daccder de nouveau au disque pour les
connatre. Le systme effectue lassociation entre le fichier logique et le fichier
physique par le biais de ce bloc de contrle. Dans le cas o aucun fichier du nom
spcifi nexiste dans le rpertoire ou si le mode douverture ne correspond pas aux
droits daccs associs au fichier, une erreur est gnre.
Sous Unix, lappel systme int open (const char * nom_fichier, int mode) provoque
louverture du fichier dont le nom est nom_fichier, selon le mode mode qui peut tre
lecture seule, criture seule ou lecture et criture. Li-noeud disque dcrivant ce
fichier est copi en mmoire centrale. La fonction systme renvoie lutilisateur un
descripteur qui tablit la liaison avec la copie de li-nud.
Fermeture de fichier
Lopration de fermeture de fichier rompt la liaison entre le fichier logique et le
fichier physique. Le BCF est copi sur le disque, dans lentre de rpertoire correspondante, sil a t modifi durant son sjour en mmoire centrale, puis il est dtruit.
Sous Unix, lappel systme int close (int desc) provoque la fermeture du fichier
accessible via le descripteur desc. Li-nud mmoire est recopi sur le disque si
besoin est.
Destruction de fichier
Lors dune demande de destruction de fichier, caractris par un nom logique, le systme
dexploitation recherche dans le rpertoire devant contenir le fichier, sil existe une
entre correspondante. Si oui, il dtruit cette entre aprs avoir dsallou les blocs
assigns au fichier. Ces blocs sont rintgrs la liste des blocs libres du disque.
374
Rappels matriels
Sur les gros systmes de type MVS, la ralisation des oprations dentres-sorties
est ralise au niveau matriel par un processeur dentres-sorties appel sous-systme
canal. Ce sous-systme canal excute un programme plac en mmoire centrale,
appel programme canal et compos de mots de commande canal (CCW), qui dcrit
lopration dentres-sorties raliser. Le programme canal est construit par le
processeur principal, qui ensuite laisse la ralisation de lopration dentres-sorties
la charge entire du sous-systme canal. Ce dernier signale par interruption la fin
de lopration.
Le sous-systme canal dialogue avec le contrleur du disque. Le contrleur du
disque traduit les CCW du programme canal lunit disque qui lui est connecte.
La figure 14.15 illustre cette architecture matrielle.
375
CPU
Bus dentres-sorties
Bus mmoire
Mmoire
centrale
Canal
Contrleur
Figure 14.15
Canal
Contrleur
Canal
Contrleur
Contrleur
376
pondant au contrleur de lunit disque concerne, puis lance lopration dentressorties au niveau du sous-systme canal, si celui-ci est libre. Par ailleurs, le processus
initiateur de lopration dentres-sorties est mis dans ltat bloqu et lordonnanceur est invoqu pour rallouer le processeur principal.
Lorsque lopration dentres-sorties est termine, le matriel met une interruption qui est capte par le superviseur dentres-sorties. La routine dinterruption
analyse les rsultats de lopration dentres-sorties, puis la fin lopration est
signale au pilote du superviseur. Le superviseur dentres-sorties lance lopration
dentres-sorties suivante dans la file dattente du contrleur. Le processus initiateur
de lopration dentres-sorties est dbloqu et plac dans ltat prt et lordonnanceur est invoqu pour rallouer le processeur principal. Lors de llection du processus,
la mthode daccs achve son excution et renvoie lenregistrement souhait. La
figure 14.16 illustre cet ensemble dvnements.
Programme utilisateur
Pilote
du superviseur
Mthode daccs
open (fichier);
read (fichier, enrg)
enrg
Superviseur
MATRIEL
SYSTME
CANAL
Construction
programme canal
(CCW)
Construction IOB
Traduction CCW
Lancement
du superviseur
(START_IO)
BLOQU
Mise en file
dattente
de la requte
Excution
routine
dinterruption
Interruption
PRT
Figure 14.16
377
le temps de latence correspond au temps ncessaire pour quune fois la tte place
sur la bonne piste, le secteur passe sous la tte de lecture. Ce temps de latence
dpend de la vitesse de rotation du disque.
Le temps de positionnement est la partie la plus pnalisante pour la ralisation
dune opration dentres-sorties sur le disque. Afin de rduire cette pnalit induite
par les mouvements du bras, le systme ordonnance les requtes de la file dattente
du contrleur de manire rduire ces mouvements. Les principaux algorithmes
dordonnancement sont : FCFS (First Come, First Served), SSTF (Shortest Seek Time
First) et SCAN (ascenseur ou balayage).
Nous les prsentons chacune avec un exemple appliqu la file de requtes disque
suivante, o chaque nombre reprsente un numro de piste atteindre : 50, 110, 25,
105, 12, 100, 40, 45, 10, 80, 88. Le bras est initialement sur la piste 90. Le disque
comporte 150 pistes par plateau.
Algorithme FCFS
Avec cet algorithme, les requtes disque sont servies selon leur ordre de soumission.
Cette politique, si elle est simple mettre en uvre, ne minimise pas les mouvements du bras. Sur la file de requtes dfinie dans lexemple, le dplacement total du
bras est gal 624 pistes. La figure 14.17 illustre lordre de service des requtes et le
dplacement du bras qui sensuit.
10 12
25
40 45 50
Figure 14.17
80
88
Algorithme FCFS.
Algorithme SSTF
Avec cet algorithme, la prochaine requte disque servie est celle dont la position est
la plus proche de la position courante, donc celle induisant le moins de dplacement
du bras. Le problme de cette politique est le risque de famine pour des requtes
excentres par rapport au point de service courant. Sur la file de requtes dfinie
dans lexemple, lordre de service est 88, 80, 100, 105, 110, 50, 45, 40, 25, 12, et 10
et le dplacement total du bras est gal 140 pistes. La figure 14.18 illustre lordre
de service des requtes et le dplacement du bras qui sensuit.
378
10 12
25
40 45 50
Figure 14.18
80
88
Algorithme SSTF.
Algorithme SCAN
Cest un algorithme de type balayage. La tte de lecture/criture dmarre une extrmit du disque et parcourt celui-ci jusqu lautre extrmit, en servant les requtes
au fur et mesure de chaque piste rencontre. Quand la tte de lecture/criture est
parvenue lautre extrmit du disque, son mouvement sinverse et le service continue
en sens oppos. Sur la file de requtes dfinie dans lexemple, lordre de service est 100,
105, 110, 88, 80, 50, 45, 40, 25, 12, et 10 si lon suppose un parcours initialement ascendant des pistes et le dplacement total du bras est gal 195 pistes. La figure 14.19
illustre lordre de service des requtes et le dplacement du bras qui sensuit.
Une variante de cette politique est la politique C-SCAN. Le principe de cet algorithme est le mme que le prcdent. La seule diffrence consiste dans le mouvement
0 10 12
25
40 45 50
Figure 14.19
10 12
25
40 45 50
Figure 14.20
150
Algorithme SCAN.
80 88 100 105110
Algorithme C-SCAN.
150
14.4 Protection
379
25
40 45 50
Figure 14.21
80
88
Algorithme LOOK.
14.4 PROTECTION
La protection du systme de gestion de fichiers recouvre deux aspects dune part, la
protection contre les accs inappropris et, dautre part, la protection contre les
dgts physiques.
380
droits qui leur sont associs. Lorsquun utilisateur demande laccs un fichier, le
systme parcourt la liste daccs associ au fichier la recherche de lidentifiant de
lutilisateur et vrifie que le type de lopration que souhaite raliser lutilisateur est
conforme avec les droits quil possde.
videmment, la taille dune liste daccs peut se rvler trs importante si le
fichier est utilis par de nombreux utilisateurs diffrents. Pour remdier ce problme,
des groupes dutilisateurs auxquels sont associs des droits peuvent tre construits.
Un utilisateur hrite des droits du groupe auquel il appartient.
Ainsi, le systme de gestion de fichiers du systme dexploitation Unix dfinit
trois groupes : le propritaire dsigne lutilisateur qui a cr le fichier, le groupe
regroupe des utilisateurs appartenant un mme groupe de travail (par exemple, les
enseignants, les tudiants), enfin les autres assemblent tous ceux qui ne sont ni
le propritaire, ni le groupe. La dfinition de ces trois groupes et la gestion des
appartenances des utilisateurs aux groupes sont ralises par ladministrateur de la
machine. Pour chaque groupe, trois droits daccs sont dfinis : le droit daccs en
lecture (r), le droit daccs en criture (w) et les droits daccs en excution (x).
Voici la commande ls l permet de lister les fichiers du rpertoire courant en affichant les droits qui leur sont associs. Ainsi le fichier essai.c est accessible en
lecture et criture par le propritaire, et en lecture seule pour le groupe et les autres.
Lexcution de la commande chmod a + w essai.c demande lajout du droit daccs
en criture (+ w) pour tous (a).
> ls l
-rw-r--r-1 delacroi
-rwxr-xr-x
1 delacroi
-rw-r--r-1 delacroi
> chmod a + w essai.c
> ls l essai.c
-rw-rw-rw1 delacroi
14.5 Conclusion
381
couramment utilise. La seconde version appele version secondaire est une copie
de la version primaire et est utilise lorsque la version primaire devient inaccessible. Le systme assure la cohrence de contenu entre la version primaire et la
version secondaire. Ainsi, les systmes DOS/Windows maintiennent au niveau de
chaque partition deux exemplaires de la FAT. Le premier exemplaire de la FAT est
celui qui est couramment recopi en mmoire centrale pour permettre laccs aux
fichiers. Toute modification de cette copie de la FAT est recopie sur le disque
dans la version primaire et dans la version secondaire. Si jamais la version primaire
se rvle inaccessible, la version secondaire est lue et copie dans la version
primaire.
Redondance par sauvegardes priodiques
14.5 CONCLUSION
Le systme de gestion de fichiers assure la conservation des donnes sur un support
de masse non volatile avec comme unit de stockage, le fichier.
Le concept de fichier recouvre deux niveaux. Dune part, le fichier logique reprsente lensemble des donnes incluses dans le fichier telles quelles sont vues par
lutilisateur. Dautre part, le fichier physique reprsente le fichier tel quil est allou
physiquement sur le support de masse. Diffrentes mthodes dallocation permettent
dattribuer des blocs physiques au fichier.
Le systme dexploitation gre ces deux niveaux de fichiers et assure notamment
la correspondance entre eux, en utilisant une structure de rpertoire. Cette structure
382
de rpertoire est gnralement arborescente et attribue chaque utilisateur un rpertoire de travail dans lequel il dpose ses fichiers.
La protection du systme de gestion de fichiers recouvre deux aspects. Dune part
la protection contre les accs inappropris est assure par le biais de la dfinition de
droits daccs associs au fichier. Dautre part, la protection contre les dgts physiques est assure par les techniques de redondance et de sauvegardes.
Chapitre 15
15
Ce chapitre constitue une introduction des notions relatives aux rseaux. Aprs avoir
expos le rle grandissant du rseau dans la socit actuelle et prsent une classification courante des diffrents types de rseaux, nous consacrons une premire partie aux
principes fondamentaux des rseaux filaires dans laquelle nous dcrivons larchitecture de ces rseaux ainsi que les modes de transmissions des donnes mises en uvre.
Une seconde partie traite des notions lies aux rseaux sans fil, en exposant leurs particularits vis--vis des rseaux filaires. Dans chaque cas, des rseaux concrets tels que
Ethernet, Bluetooth ou Wi-Fi sont pris titre dexemples. Ce chapitre sachve en
abordant la problmatique de linterconnexion de rseaux et travers elle lInternet.
15.1 DFINITION
Un rseau est un ensemble de matriels et de logiciels distribus permettant doffrir
des services (par exemple le tlphone ou la diffusion de musiques ou de films) ou
de permettre le transport de donnes.
Il nexiste pas une manire unique de classer les rseaux, mais gnralement on
retient deux critres pour les caractriser : la taille et le mode de transmission de
linformation.
La taille
384
Rseaux locaux ou LAN (Local Area Network) : ce sont des rseaux qui recouvrent une surface gographique rduite (par exemple un btiment). Ils permettent
un partage des ressources informatiques avec des dbits importants (entre 10 et
100 Mbits/s).
Rseaux mtropolitains ou MAN (Metropolitan Area Network) : ils couvrent une
surface gographique de lordre de la ville. Ils sont gnralement utiliss pour
fdrer des rseaux locaux, assurer la diffusion dinformations pour des circonscriptions gographiques importantes telles des villes ou des campus. Un exemple
important est le rseau de tlvision par cble dans certaines grandes villes.
Rseaux longues distances ou WAN (Wide Area Network) : ce sont des rseaux
qui couvrent des surfaces correspondant un pays. Les dbits sont variables (de
quelques Kbits/s quelques Mbits/s).
Rseaux domestiques : ces rseaux commencent apparatre et permettront des
appareils domestiques, dans un appartement par exemple, de communiquer entre
eux.
Inter-rseaux : il existe un trs grand nombre de rseaux dans le monde, chacun
ayant des architectures matrielles et logicielles diffrentes. Le besoin de communiquer au travers de rseaux htrognes a provoqu le dveloppement de linterconnexion de rseaux au moyen de machines spcialises (les passerelles ou
gateway). Lobjet des passerelles est dassurer les traductions, tant au plan matriel que logiciel, permettant linformation de circuler dun rseau un autre.
Ainsi deux machines raccordes deux rseaux htrognes pourront communiquer, cest--dire changer de linformation. Un problme important est la traduction des adresses des machines (ladresse dune machine tant dtermine par le
type du rseau auquel la machine est connecte). LInternet est un exemple trs
important dinter-rseau.
Mode de transmission
385
point sappelle aussi transmission unicast. Ces rseaux sont aussi appels rseaux
de commutation indiquant par l une fonction fondamentale (la commutation)
utilise pour la transmission des informations dans de tels rseaux.
Enfin on peut noter lutilisation de plus en plus importante des rseaux sans fil. Ce
mode de transmission nest pas une nouveaut, mais lamlioration de la qualit des
transmissions permet le dveloppement important de ce type de rseaux.
On peut raisonnablement classer les rseaux sans fil en trois catgories : les
rseaux personnels, les LAN et les WAN.
386
La topologie physique dun rseau spcifie la manire dont les nuds composant le
rseau sont connects. Les topologies de base sont toutes des variantes dune liaison
point point (figure 15.1).
Topologies de base
Port srie
Figure 15.1
La topologie en bus est la plus simple des topologies de base (figure 15.2). Dans
une telle topologie, linformation est diffuse sur tout le rseau (rseau diffusion)
et chaque station accde directement au rseau (canal de diffusion unique). Cette
topologie induit des conflits daccs la ressource unique (canal de transmission)
qui se traduisent par des collisions. Une telle topologie ncessite de dfinir une politique daccs au rseau pour viter les conflits.
Dans la topologie en anneau (figure 15.2) chaque station est connecte la
suivante par une liaison point point. Les messages circulent, dans un seul sens, sur
lanneau. Chaque station reoit le message. Si le message lui est destin alors la
station recopie celui-ci et le rgnre, sinon la station se contente de le rgnrer. Ce
type de topologie permet des dbits levs sur de grandes distances (rgnration du
signal par les stations) mais est sensible la rupture de lanneau.
La topologie en toile est construite partir dun nud qui mule plusieurs
liaisons point point (figure 15.3).
387
Topologie en bus
Topologie en anneau
Figure 15.2
Topologie en toile
Figure 15.3
Topologie en toile.
388
Dans cette topologie, tous les messages transitent par le point central de ltoile qui
joue le rle de concentrateur. Le concentrateur est un composant actif qui examine
tous les messages et les retransmet au bon destinataire. Cette topologie est bien
adapte la distribution de postes tlphoniques dans une entreprise. Elle est performante, insensible la dfaillance dun nud mais sensible la dfaillance du
concentrateur.
Pour permettre lextension des rseaux on dveloppe des topologies arborescentes
(figure 15.3). Ces topologies sont construites partir de plusieurs rseaux en toiles
relis par des concentrateurs jusquau nud de base (la racine du rseau). Cette
topologie, arborescente, est trs utilise pour la construction des rseaux locaux. Ces
rseaux prsentent des faiblesses cause de lexistence des concentrateurs : la
dfaillance dun nud lisole du reste du rseau. Une solution consiste mettre en
place des chemins de secours. On volue alors vers les rseaux maills (figure 15.4).
Rseau maill
Figure 15.4
Rseau maill.
Dans ce type de topologie, il existe plusieurs chemins pour relier une station une
autre station. Une telle topologie est trs rsistante la dfaillance dun nud et
permet une rpartition des charges entre les nuds. Les nuds sont relis par des
liaisons point point. Le nombre de liaisons qui lient un nud aux autres dfinit la
connectivit du nud.
389
Cette topologie est utilise pour la construction des WAN. Ainsi on peut voir un
WAN comme compos des stations htes (qui abritent les applications des utilisateurs) relis entre elles par un sous-rseau. Le sous-rseau est constitu de nuds
(routeurs) et de lignes de transmission qui acheminent les informations dun routeur
lautre. Les liaisons sont base de fil de cuivre, de fibres optiques ou mme de
liaisons radio.
Lors de la mise en place dun rseau, il est indispensable de se proccuper des
cots dinstallation et de mettre en place une architecture permettant doptimiser les
performances. Ces choix sappuient sur une mutualisation des ressources que lon
ralise en utilisant des matriels (concentrateurs et multiplexeurs) et des fonctions
logicielles permettant de minimiser les lignes de transmissions entre les htes (la
commutation).
En informatique traditionnelle (figure 15.5), les concentrateurs permettent lutilisation dune seule ligne de transmission pour laccs n terminaux. Le concentrateur
possde une logique programme lui permettant de distribuer la bonne information
au bon terminal (les messages envoys par le serveur et destination des terminaux
utilisent tous la mme liaison de transmission).
Serveur
Concentrateur
Liaison partage
Serveur
Figure 15.5
Concentrateurs.
Larrive des LAN tend faire disparatre les concentrateurs (figure 15.5 en bas).
La fonction de concentration est assure par un ordinateur particulier du LAN. Cette
architecture est utilise dans le raccordement dun rseau local un WAN. Le LAN
accde alors au sous-rseau du WAN par le biais dun routeur qui joue galement la
fonction de concentration.
390
Le multiplexage (figure 15.6) permet le partage dun lien unique par plusieurs
utilisateurs.
Multiplexeur
Figure 15.6
Multiplexeur
Multiplexeurs.
Le multiplexeur simule n liaisons point point. Chaque station est relie au multiplexeur par une liaison dentre, lopration de regroupement des liaisons dentre
correspond au multiplexage. La liaison point point qui relie les multiplexeurs transporte alors un message composite. Le dmultiplexage permet de restituer aux bons
destinataires les donnes des diffrentes liaisons dentre.
On distingue le multiplexage frquentiel (FDM, Frequency Division Multiplexing)
et le multiplexage temporel.
Si lon veut permettre la connexion de tous les htes dun rseau, on est amen
tablir un trs grand nombre de liaisons physiques. Ainsi pour relier deux
machines il faut une liaison, pour trois machines, il faut trois liaisons, etc. On
montre facilement que pour relier N machines, il faut N(N 1)/2 liaisons physiques. Si lon applique ce rsultat au rseau tlphonique qui comporte plusieurs
centaines de millions dabonns dans le monde, il faudra de lordre de 1015 liens
physiques chez chaque abonn pour quil puisse atteindre nimporte quel autre
abonn du rseau.
La fonction de commutation permet chaque abonn partir dun seul lien de
communiquer avec nimporte quel autre abonn par simple commutation (figure 15.7).
Un tel rseau est dit rseau commutation. Nous verrons plus en dtail dans la
partie transmission des donnes cette fonction de commutation.
Accs aux rseaux
Dans cette partie, nous prsentons les moyens mis en uvre par un oprateur rseau
pour collecter le trafic des utilisateurs. Cette desserte des utilisateurs sappelle la
boucle locale. Au travers de cette boucle locale, un utilisateur accde aux rseaux
des oprateurs permettant les transmissions haut dbit.
La fibre optique est une premire solution pour raliser la boucle locale. Elle
implique le cblage intgral du rseau de distribution en fibre optique. Cette technique, dite FITL (Fiber In The Loop) permet dobtenir de hauts dbits jusquau
Figure 15.7
391
Principe de la commutation.
terminal utilisateur. Ce cblage est trs onreux et plusieurs solutions soffrent pour
rduire les cots :
FTTC (Fiber To The Curb) : le cblage optique est ralis jusqu un point proche
de limmeuble. Le reste du cblage est ralis par lutilisateur final;
FTTN (Fiber To The Node) : le cblage optique est ralis jusqu un rptiteur
dans limmeuble lui-mme;
FTTH (Fiber To The Home) : le cblage est ralis jusqu la porte de lutilisateur;
FTTT (Fiber To The Terminal) : le cblage est ralis jusqu la prise du terminal
de lutilisateur final.
La solution est dautant plus onreuse que lon cble en fibre optique proximit
de lutilisateur. La tendance actuelle est de cbler en fibre optique jusqu des points
rpartis dans les quartiers, la desserte des utilisateurs se fait par dautres techniques
moins onreuses. Le cblage mtallique permet de prendre en charge des dbits de
quelques mgabits, une solution consiste donc cbler en fibre optique jusqu quelques kilomtres de lutilisateur puis raccorder lutilisateur par du cblage mtallique. Cette solution moins onreuse est facilement ralisable dans les villes mais
difficile hors agglomration o il faudra trouver dautres solutions.
Les paires mtalliques sont les supports les plus utiliss en raison des cots mme
si les supports en fibre de verre et les supports hertziens se dveloppent normment.
Les liaisons mtalliques sont utilises depuis trs longtemps pour le transport de la
parole en tlphonie. Ces dernires annes, la mise en concurrence des tlcommu-
392
Vers rseaux
oprateurs
Concentrateurs
Rpartiteur
Rpartiteur
Rpartiteurs oprateurs
Regroupement des oprateurs
393
RTC
Rseau
Haut Dbit
Oprateur
DSLAM
Internet
Boucle locale
Figure 15.9
dbit de loprateur. Enfin pour que les transferts soient efficaces il ne faut pas que
laccs au fournisseur daccs soit loign de plus de quelques kilomtres.
Il existe dautres mthodes pour raliser la boucle locale. titre indicatif on
notera lutilisation des rseaux cbls de tlvision (CATV) lorsquils existent, et
lutilisation du rseau lectrique. Dans ce dernier cas, les tests effectus dans de
nombreux pays sont divergents. En tout tat de cause, comme pour lADSL, il ne
faut pas que laccs aux fournisseurs soit loign de plus de quelques kilomtres.
394
gnral dans les WAN, est appel transmission en mode diffr (store and forward) ou
commutation de paquets. Dans ce mode de transmission, les paquets peuvent
utiliser des chemins diffrents pour aller dun hte un autre. Ce choix se fait par
utilisation dalgorithmes de routages dont lobjet est de trouver le meilleur chemin
pour aller dun point un autre.
Afin dassurer la transmission des donnes il est ncessaire de prciser les notions
dadressage (qui permet didentifier les machines et les applications du rseau), et
les modalits dacheminements des informations dans le rseau.
Adressage
395
Acheminer les donnes dun point un autre consiste assurer le transit des paquets
de donnes du point dmission au point de rception. Lacheminement est ralis au
travers des algorithmes de routage qui permettent de dterminer un chemin au travers
de lensemble des routeurs du sous-rseau. Chaque routeur contient des tables de
routage qui indiquent la route suivre pour atteindre un destinataire. On distingue de
nombreux modes (ou protocoles) de routage :
le routage statique ou fixe : on construit dans chaque nud une table indiquant
pour chaque destination ladresse du nud suivant. Ce routage est simple, mais il
nexiste pas de solution de secours en cas de rupture dun lien. Il convient bien
aux petits rseaux. Il est mis en place par ladministrateur du rseau au moment de
la configuration du rseau;
le routage par diffusion : linformation est route simultanment vers plusieurs utilisateurs. Le message est dupliqu, cette technique oblige lmetteur connatre tous
les destinataires. Cette technique surcharge le rseau;
le routage par inondation : chaque nud envoie le message sur toutes les lignes de
sortie, sauf celle do provient le message. Chaque message comporte un compteur de saut qui est initialis au dmarrage de lmission et est dcrment au
passage de chaque nud. Le message est dtruit quand le compteur arrive zro.
Cette technique (compteur de sauts) vite la surcharge du rseau. Cette technique
est trs robuste et garantit de toujours trouver le chemin le plus court;
le routage par le chemin le plus court : chaque nud tient jour des tables de
routage indiquant quel est le chemin le plus court pour atteindre le routeur de
destination. Chaque lien a un cot affect ou calcul.
Ainsi les logiciels rseaux, sappuyant sur les supports physiques, garantissent
une qualit de lacheminement au travers :
du contrle derreur qui permet de vrifier que tous les messages mis sont bien
reus par le destinataire;
du contrle de flux, il sagit ici de ne pas submerger le rseau cause dmetteurs
trop rapides. Ce mcanisme implique lexistence de moyens de communication
permettant un destinataire dinformer lmetteur quil doit bloquer momentanment lmission pour ne pas saturer le destinataire. Ce contrle de flux peut tre
exerc au niveau de chaque routeur;
dun choix efficace de la route pour aller dun metteur un destinataire. Cest la
fonction de routage.
Services avec et sans connexion
396
sitent via un tuyau construit entre lmetteur et le destinataire. Tous les messages
utilisent le mme chemin, la route est calcule la connexion.
Un service sans connexion correspond plus au modle du systme postal. Chaque
message contient ladresse du destinataire. La route est calcule pour chaque message.
De ce fait, avec un tel service, on ne peut garantir que les messages mis dans un
certain ordre arrivent dans le mme ordre. Lordre darrive va dpendre des chemins
suivis par chacun des messages.
Enfin chaque service est caractris par une qualit de service. Un service est dit
fiable sil ne perd jamais de donnes. Cette qualit de service est ralise au moyen
dun mcanisme de notification par acquittement des donnes reues. Cette technique provoque une surcharge du rseau et induit des dlais qui justifient que
parfois, on se dispense de la qualit de service. Un cas justifi de lutilisation dun
service avec connexion et fiable est le transfert de fichiers dun metteur vers un
destinataire. Dans ce cas, il ne faut en effet ne pas perdre dinformation.
Tous les changes ne ncessitent pas un service avec connexion. La diffusion
dinformation sous forme de petits messages autonomes ne ncessite pas de service
avec connexion. De plus la livraison en mode fiable nest pas non plus ncessairement requise. Un service sans connexion et non fiable (sans acquittement) est appel
transmission de datagrammes. On peut enfin raliser une transmission pilote par un
service sans connexion (messages courts) avec fiabilit (quivalent dune lettre
recommande). On a alors une transmission par datagrammes acquitts.
Enfin il existe un autre service de type question-rponse. On envoie un seul datagramme et lon attend une rponse. Ce type de service est trs utilis dans le modle
client-serveur : le client met une requte, le serveur rpond cette requte.
Bien que pouvant paratre trange la communication non fiable se justifie par le
fait que la fiabilit induit un ralentissement qui peut tre inacceptable pour certaines
applications : les applications en temps rels et multimdias par exemple.
15.2.3 Exemple de rseau filaire
Un rseau personnel : Ethernet
Ethernet est un rseau local (LAN) diffusion dont les spcifications sont dfinies
par la norme IEEE 802.3. Il est construit sur la base dun canal unique et laccs
matriel se fait par le biais dune carte Ethernet (figure 15.10). La diffusion sappuie
sur la mthode daccs CSMA/CD qui permet la diffusion des messages toutes les
stations. Lorsquune station souhaite mettre, elle coute le rseau, si le rseau est
silencieux (aucune mission en cours) la station met. Si le rseau est occup, la
station diffre son mission jusqu ce que le rseau soit libre.
Malheureusement cela ne garantit pas que deux stations ne dtectent pas le silence
du rseau en mme temps. Dans ce cas, les deux stations mettent simultanment
leur message. Le message rsultant sur le rseau est pollu par lautre (collision), le
message est inexploitable. Aussi lorsquune station dtecte une collision, elle cesse
dmettre.
397
Cble connexion
Carte coupleur
Ethernet
Mise en forme
des donnes
Contrle
daccs
metteur-rcepteur
Module
codage/dcodage
Figure 15.10
Module
mission/rception
Pour dtecter une collision, une station coute le rseau en mme temps quelle
met. Lorsquelle dcle une perturbation de son message (le niveau lectrique ne
correspond pas lmission), elle arrte lmission et positionne un temporisateur
alatoire. lchance du temporisateur, la station coute le rseau et met le message
si le rseau est libre.
La figure 15.11 prsente le schma gnral dun rseau Ethernet. En fait, il existe
plusieurs versions de lEthernet qui se diffrencie par la norme, le type de cblage,
les dbits, les supports physiques. La figure 15.11 est donc une forme gnrique
des rseaux Ethernet diffusion.
La forme gnrale de la trame 802.3 commune toutes les versions dEthernet est
donne par le tableau 5.1.
Tableau 15.1
Adresse
Destination
6 octets
Adresse
Source
6 octets
Longueur
des donnes
utiles
2 octets
Donnes
utiles
46 octets
ou bourrage
Bourrage
Si donnes
utiles <
46 octets
FCS
4 octets
398
Rpteur
Station
Terminateur
Coaxial
metteur-rcepteur
Rpeteur distant
Figure 15.11
399
topologie en bus une topologie en toile (rseau tlphonique), assurer la diffusion des messages et dtecter les collisions. La solution consiste muler le bus
par un botier : le hub, charg de concentrer les connexions et dassurer la diffusion des messages. Ce type de rseau fonctionne 1 Mbits/s et la distance maximale entre une station et le hub est de 250 m. Cest cette architecture qui a donn
naissance au 10 base T (twisted pair).
Ethernet 100 Mbits/s Elle correspond lvolution de la version 10 base T (Fast
Ethernet) et rsulte des travaux du groupe de travail IEEE 802.14. Elle reprend la
mthode daccs CSMA/CD et conserve la taille des trames de 10 base T.
Ethernet Gigabit Cest une volution du 100 Mbits/s, il fonctionne en diffusion
mais aussi en commutation. Cette version Ethernet reprend donc les principes de
la commutation mise en place dans les rseaux point point. Le commutateur ne
diffuse pas la trame mais la rmet vers le port unique correspondant au destinataire. La fonction en mode commut permet de ne pas utiliser la fonction de dtection de collision ainsi que lmission et la rception simultanes (full duplex).
Cette version Ethernet fonctionne selon diffrents modes : en full duplex (de
commutateur commutateur ou de commutateur station) et en half duplex pour
les stations directement raccordes au rpteur Ethernet Gigabit (hub). Les quipements Gigabit Ethernet combinent des ports 10, 100, et plusieurs connexions
sur fibre optique 1 000 Mbits/s.
400
Les rseaux sans fils peuvent tre rpartis en quatre classes, selon leur zone de
couverture, cest--dire selon le primtre dans lequel une connexion est possible :
les rseaux personnels sans fil WPAN (Wireless Personal Area Network) concernent
les rseaux dune porte de quelques dizaines mtres. Ce type de rseau sert gnralement relier des priphriques tels quune imprimante, un scanner ou un assistant
personnel (PDA) un ordinateur sans liaison filaire. La principale technologie de ce
type est la technologie Bluetooth, lance par Ericsson en 1994, proposant un dbit
thorique de 1 Mbits pour une porte maximale dune dizaine de mtres;
les rseaux locaux sans fil WLAN (Wireless Local Area Network) sont des rseaux
dont la porte est denviron une centaine de mtres. Il existe plusieurs technologies
de ce type, la plus connue tant celle du Wi-Fi (Wireless Fidelity). Elles offrent des
dbits allant jusqu 54 Mbits sur une distance de plusieurs centaines de mtres;
les rseaux mtropolitains sans fil WMAN (Wireless Metropolitan Area Network)
offrent un dbit utile de 1 10 Mbits/s pour une porte de 4 10 kilomtres;
les rseaux tendus sans fil WWAN (Wireless Wide Area Network) possdent une
zone de couverture lchelle dun pays (centaine de kilomtres). Ils offrent un
dbit maximum de 170 kbit/s.
15.3.1 Architecture des rseaux sans fil
Larchitecture dun rseau sans fil (figure 15.12) sappuie sur des composants similaires ceux dun rseau filaire, cependant ceux-ci sont adapts afin de permettre
une transmission des signaux sous la forme dondes de la zone radio.
Lquipement (imprimante, tlphone mobile, ordinateur portable, PDA, etc.)
hberge une carte rseau qui ralise linterface entre linfrastructure du rseau sans fil
et lquipement. Cette carte rseau dispose dune antenne dont le rle est dassurer la
conversion entre les signaux numriques et les ondes radio.
Actuellement, les principales cartes rseaux disponibles sont les suivantes :
Carte PCI, gres par le bus PCI de lquipement;
PC-Card et CardBus dveloppes dans les annes 90 par lassociation PCMCIA
(Personal Computer Memory Card International Association). Ce type de carte a
la taille dune carte de crdit et sert doter un quipement de petite taille;
Mini-PCI, est une version rduite de la carte PCI, destine aux ordinateurs portables ;
CompactFlash, introduite en 1994, est trs petite et quatre fois moins encombrante quune PC-Card. Elles sont actuellement disponibles sur certains PDA;
les cartes adaptatrices PCMCIA permettent lutilisation dune carte PC-Card ou
CardBus sur linterface PCI dun quipement fixe. Ainsi la mme carte peut tre
utilise sur un ordinateur portable ou un ordinateur fixe;
Les modules USB Wi-Fi se branchent sur linterface USB de lquipement. Ces
modules peuvent prendre la forme de cls USB (dongles) et associent alors
souvent la carte rseau une mmoire de stockage de 64 Mo ou davantage.
Deux types darchitectures sont dfinis : le mode infrastructure et le mode ad-hoc.
Cellule
BSS
401
Point
daccs
Sys
tm
e de
Point
daccs
distr
ibuti
on
Point
daccs
Cellule
BSS
Rseau en mode infrastructure
ESS
Cellule
BSS
Internet
mission radio
Cellule
IBSS
Dans le mode infrastructure, des points daccs (AP, Access Point) permettent
lchange dinformations entre les quipements du rseau sans fil. Dans une cellule,
cest--dire dans la zone de couverture dun point daccs, toute communication entre
deux quipements de cette cellule passe ainsi obligatoirement par lintermdiaire du
point daccs. Les cellules ainsi dfinies peuvent tre disjointes ou se recouvrir.
La topologie BSS (Basic Service Set) comporte un seul point daccs. Celui-ci peut
grer jusqu 30 quipements qui se partagent le support de transmission ainsi que
le dbit;
402
Deux protocoles daccs au support sont dfinis pour les rseaux sans fil :
DCF (Distributed Coordination Function) : cette mthode daccs est une mthode
avec contention, cest--dire que des collisions peuvent se produire lorsque deux
quipements mettent en mme temps. Elle est utilise pour la transmission de
donnes asynchrones. Elle est utilise en mode infrastructure ou en mode ad-hoc;
PCF (Point Coordination Function) : cette mthode ne gnre pas de collisions
dans le sens o cest le point daccs qui gre les diffrentes transmissions de
donnes en donnant tour de rle accs au support aux quipements qui ont des
donnes mettre. Elle est utilise pour la transmission de donnes isochrones ou
temps rel (voix, vido) pour lesquelles les retards de transmission dus aux collisions ne sont pas tolrables. Elle est utilise seulement en mode infrastructure.
Le DCF tant la mthode principale, nous en prsentons brivement le principe
ci-dessous.
403
1. il vrifie par lintermdiaire dun champ de contrle associ la trame reue que
la transmission est correcte;
2. il attend un temps appel SIFS pour mettre une trame dacquittement ACK.
Lquipement metteur en labsence de rception de cette trame dacquittement,
considre quune collision sest produite et rmet les donnes.
Le tirage dun temps alatoire Tback-off par chaque quipement souhaitant mettre
permet dviter des collisions, chaque quipement tirant potentiellement une valeur
diffrente. Cependant deux quipements peuvent tirer une valeur gale. Une collision se produit qui nest dtecte que par labsence de rception dune trame
dacquittement par lquipement metteur (figure 15.14).
Par ailleurs, lquipement metteur peut avoir recours un mcanisme de rservation du support avant toute mission de donnes vers un quipement destinataire. Ce
mcanisme assure labsence de collision durant lchange. Il est facultatif et peut
tre surtout utilis lors de la transmission de trames de donnes de grande taille.
Dans ce cas (figure 15.15) :
1. lquipement metteur envoie une trame de rservation RTS. Cette trame contient
notamment des informations sur le volume de donnes mettre et sa vitesse de
transmission;
404
quipement A metteur
DIFS
DONNES
quipement B rcepteur
SIFS
ACK
quipement C
DONNES
quipement D
DIFS
DIFS
DIFS
DONNES
Transmission
coute du support et attente de sa libration
Dbit alatoire T back_off
Dbit alatoire T back_off restant
Figure 15.13
Protocole CSMA/CA.
Tas de rception
dACK : remission
DIFS
DONNES
quipement A metteur
DIFS
quipement B rcepteur
C
O
L
L
I
S
I
O
N
quipement C
DONNES
Tas de rception
dACK : remission
DIFS
DONNES
quipement D
DIFS
Transmission
DONNES
405
2. les quipements de la cellule qui entendent la trame extraient de celle-ci les informations de volume et de vitesse et calculent partir de ces donnes une dure
doccupation du support;
3. lquipement destinataire rpond par une trame CTS;
4. lquipement metteur reoit la trame CTS. Elle est assure que le support est
rserv pour la totalit de sa transmission de donnes. Elle commence mettre.
quipement A metteur
DIFS
RTS
DONNES
quipement B rcepteur
SIFS
SIFS
CTS
ACK
quipement C
DONNES
NAV
DIFS
Transmission
coute du support et attente de sa libration
Figure 15.15
406
Frquences
Temps
quipement A
quipement B
Technique FHSS
Bande de frquence
Canaux
quipement A
quipement B
quipement C
Technique DSSS
Figure 15.16
Scurit
Les problmes de scurit constituent lun des points faibles des rseaux sans fil. En
effet, tout quipement prsent dans la zone de couverture dune cellule peut en capter
les missions ou mme reconfigurer le rseau.
Les mcanismes suivants sont implments afin dempcher les coutes clandestines et les tentatives daccs non autoriss :
identifiant du rseau SSID (Service Set ID) : tout quipement souhaitant intgrer
une cellule doit fournir au point daccs le nom du rseau quil souhaite rejoindre,
le SSID;
ACL (Access Control List) : le point daccs maintient une liste des adresses des
cartes rseau sans fil (adresses MAC) autorises dans la cellule. Cela permet de
limiter laccs au rseau un certain nombre de machines;
407
quipement
quipement
quipement
quipement
quipement
PICONET
quipement
quipement
quipement matre
quipement esclave
Figure 15.17
408
Un rseau local
Les rseaux locaux sans fil rpondent la norme IEEE 802.11. Bien quissues de la
mme norme, de nombreuses implmentations peuvent tre distingues, principalement celles rpondant la certification Wi-Fi et par exemple, le rseau HiperLAN/2.
Wi-Fi est une certification appose sur des quipements de rseaux sans fil ds
lors que ceux-ci rpondent un certain nombre de critres prdfinis. Cette certification a t mise en place par lorganisme international Wi-Fi Alliance dans les annes
2000 afin de rendre interoprables un ensemble dimplmentations diverses de la
norme 802.11.
Les rseaux locaux sans fil certifis Wi-Fi reprennent la plupart des mcanismes
que nous avons prsents au paragraphe prcdent : techniques dtalement de bandes,
accs au support via le protocole CSMA/CA, scurit grce au protocole WEP.
HiperLAN/2 (High Performance Radio LAN) est une implmentation distincte de
rseau local sans fil dveloppe par la division BRAN (Broadband Radio Access
Networks) de LETSI (European Telecommunications Standards Institute). Ce rseau
utilise la bande des 5 GHz, avec des dbits de 54 Mbits/s. Il nutilise pas le protocole
CSMA/CA pour grer laccs au support mais le protocole TDMA (Time Division
Multiple Access expliqu au paragraphe suivant) qui permet de donner chaque
quipement un accs rgulier au support la diffrence de CSMA/CA. Pour cette
raison, ce rseau local est plus performant dans le transfert de donnes isochrones
telles que la voix et la vido. Cependant ce rseau est encore au stade de prototype,
sans version commercialise ce jour.
Un rseau grande distance
Les rseaux satellites, utiliss notamment dans la diffusion tlvise et aussi pour
assurer des connexions Internet, constituent un exemple de rseaux grand distance
sans fil.
Dans ce type de rseau, un quipement au sol envoie des signaux radio en direction du satellite par le biais dune antenne parabolique. Le satellite que lon peut
assimiler un point daccs est quip dun circuit rpteur spcialis, le transpondeur, qui capte le signal et le rmet vers un autre quipement terrestre.
La plupart des satellites sont placs diffrents endroits de lorbite gostationnaire, soit une distance de 35 900 km de la Terre. Ils supportent un trafic bidirectionnel dans la bande de frquences situe entre 450 MHz et 20 GHz. Dans cette
bande, les basses frquences sont rserves la liaison descendante tandis que les
hautes frquences sont rserves la liaison montante.
La grande distance que doivent parcourir les signaux radios, soit 35 900 kilomtres, porte le dlai de transmission une valeur situe autour de 100 ms et la dure
du trajet Terre-Satellite-Terre 200 ms. De ce fait, les protocoles daccs mis en
uvre dans la norme 802.11 et notamment le protocole CSMA/CA ncessitant un
acquittement pour chaque paquet transmis sont inefficaces.
Les rseaux satellites utilisent des protocoles daccs au support ddis. Ces
protocoles rservent un canal pour chaque quipement, ce qui permet de rduire
409
Internet
Ethernet
RTC
FAI
Token Ring
Figure 15.18
410
Dans ce qui suit nous allons prsenter les caractristiques essentielles de lInternet
en suivant le mode de prsentation que nous avons adopt lors des paragraphes
prcdents de ce chapitre.
15.4.1 Architecture de lInternet
Supports physiques et topologies
Du point de vue des accs, on trouve la ralisation de la boucle locale aussi bien au
travers de rseaux filaires (liens RTC hauts dbits, rseaux locaux filaires), quau
travers de rseaux sans fils (liaisons satellites par exemple).
15.4.2 Circulation de linformation
Adressage
Internet est un rseau logique pour lequel est dfini le mcanisme dadressage que
rappelle la figure 15.19.
Ladressage Internet permet de spcifier une adresse rseau pour une machine
(adresse IP) et ladresse du processus qui va traiter les donnes sur la machine dont
ladresse IP est spcifie.
Ladresse IP est code sur 32 bits et est organise en classes dadresses (A, B, C).
Pour chacune des classes, on code le numro du rseau et le numro de la machine
dans ce rseau :
classe A : 128 rseaux et 16 777 216 htes (7 bits pour le rseau et 24 pour les
htes);
classe B : 16 384 rseaux et 65 535 htes (14 bits pour les rseaux et 16 pour les
htes);
classe C : 2 097 152 rseaux et 256 htes (21 bits pour les rseaux et 8 pour les
htes).
Il sagit l du codage de ladresse correspondant la premire gnration IP
(IPv4). Le codage de ladresse est en cours dvolution vers le IPv6 qui correspond
la nouvelle gnration de lInternet.
Afin dassurer lunicit des numros de rseau, les adresses Internet sont attribues par un organisme central, le NIC (Network Information Center).
Codes sur 32 bits, les adresses Internet sont trop limites pour relier toutes les
machines. Dans la version IPv6, les adresses seront codes sur 128 bits ce qui donne
un trs grand confort dutilisation.
411
3
1
(1,1)
(5,3)
1
(1,2)
0
Adresse Internet :
(N rseau, N machine)
(4,1)
78
31
0
0
AA
31
15 16
10
0
11
Figure 15.19
B
23 24
31
C
Adressage Internet.
Internet est un rseau logique et les adresses des machines sont construites indpendamment des adresses physiques de ces machines. Ainsi pour envoyer un datagramme sur Internet le logiciel rseau doit convertir ladresse Internet en une adresse
physique. Il sagit de la rsolution des adresses qui permet de dterminer ladresse
dun quipement partir de ladresse Internet.
Il existe deux protocoles importants permettant la rsolution dadresse entre le
monde IP et le monde Ethernet : ARP (Adress Resolution Protocol) et RARP (Reverse
ARP).
Manipuler les adresses physiques (32 ou 128 bits) dans le corps des applications
est complexe, aussi lInternet dfinit des adresses logiques construites sur une
hirarchie de domaines permettant de dfinir des adresses symboliques plus simples
manipuler : ceante.cnam.fr est la machine ceante du domaine cnam appartenant
au domaine France.
Pour raliser la traduction dune adresse exprime logiquement (hirarchie de
domaines en adresse Internet code sur 32 bits), lInternet utilise des serveurs de noms
(DNS, Domain Name Server) pouvant rpondre aux requtes de rsolution des noms.
La transmission des messages se fait entre des applications qui sexcutent sur des
machines. Les adresses IP permettent didentifier les machines mais pas les applica-
412
(1,1)
(5,3)
1
(1,2)
Message
paquet 1
paquet 2
paquet 3
paquet 4
(4,1)
paquet 5
Mode connect
tablissement de la connexion : CV
changes
On peut noter une particularit des transmissions des donnes dans lInternet. Le
protocole de base est lInternet Protocol qui fonctionne en mode datagramme. Pour
assurer un service avec connexion fiable, lInternet fonctionne de bout en bout,
cest--dire quil neffectue les vrifications que sur la machine distante (au travers
du protocole TCP) et non pas sur chacun des routeurs intervenant dans les rseaux
physiques traverss. Si le rseau physique fonctionne bien cela confre Internet
une plus grande efficacit dans la transmission des donnes.
413
Pour rsumer et conclure, une application voulant transmettre des donnes une
application situe sur une machine distante disposant dune adresse Internet, utilise :
une structure de donne permettant de spcifier ladresse de lapplication
distante;
une structure de donne permettant de spcifier les modalits de lchange (TCP/
IP ou mode datagramme);
un ensemble de fonctions permettant de raliser lchange soit en mode connect
fiable soit en mode datagramme.
Chapitre 16
Exercices corrigs
16
ORDONNANCEMENT DE PROCESSUS
16.1
Algorithmes dordonnancement
On considre 5 processus P1, P2, P3, P4 et P5 dont les caractristiques sont rsumes dans le tableau suivant (un petit numro de priorit indique une priorit forte).
Ordre darrive
P1
P2
P3
Temps dexcution
Priorit
10
P4
P5
12
On considre 5 processus P1, P2, P3, P4 et P5 dont les caractristiques sont rsumes dans le tableau suivant (un petit numro de priorit indique une priorit forte).
16 Ordonnancement de processus
415
Date darrive
Temps dexcution
Priorit
P1
P2
P3
P4
P5
Chronogramme dexcutions
On considre 3 processus P1, P2 et P3 qui effectuent chacun du calcul sur un processeur et des entres-sorties avec un disque. Lordonnancement des processus sur le
processeur se fait selon une politique de priorit premptive, avec priorit (P1) > priorit (P2) > priorit (P3). Un seul processus la fois peut tre servi par le disque et la
ralisation dune entre-sortie est non premptive. Lordre de service sur le disque
est selon un mode premier arriv, premier servi .
Les processus sexcutent selon les profils suivants. Ils sont tous les trois prts en
mme temps linstant 0.
P1
P2
P3
Calcul durant 7 units
Reprsentez lexcution des processus dans le temps en mentionnant les changements dtats intervenant entre ltat prt, ltat lu et ltat bloqu.
16.4
416
16 Exercices corrigs
mis en uvre sappuie sur la routine dinterruption horloge qui fait rgulirement
passer le processus en mode noyau. Plus prcisment :
chaque interruption horloge, le systme incrmente dune unit la valeur du
compteur utilisation du processeur pour le processus lu;
toutes les secondes cest--dire toutes les 50 100 interruptions horloge, la valeur
du compteur utilisation du processeur pour tous les processus est divise par deux;
enfin, la priorit des processus est recalcule selon la formule :
priorit du processus = (utilisation du processeur/2)
+ (priorit de base du niveau utilisateur)
Du fait de ce recalcul des priorits, les processus se dplacent dans les files de
priorit.
On considre prsent trois processus A, B et C qui ont chacun une priorit initiale
de 60. La priorit de base du niveau utilisateur est galement la priorit 60. Linterruption horloge se dclenche 60 fois au cours dune seconde. Sur un intervalle de
temps gal 5 secondes, dterminez lordre dlection des trois processus A, B et C.
16.5
16 Synchronisation de processus
417
SYNCHRONISATION DE PROCESSUS
16.6
Producteur(s)-Consommateurs(s)
On considre un systme compos de 3 processus respectivement appels Acquisition, Collecteur et Bilan. On dispose par ailleurs dune seule ressource disque et
dune seule ressource imprimante.
418
16 Exercices corrigs
Bilan
dbut
dbut
boucle
boucle
lire_mesures(tampon, mesures);
P(disque);
P(imp);
P(imp);
P(disque);
lire_disque(mesures);
enregistrer_disque(mesures);
res = traitement(mesures);
imprimer(mesures);
imprimer(res);
V(disque);
V(imp);
V(imp);
V(disque);
fin boucle
fin boucle
fin
fin
419
processus utilisateur de R
dbut
P(R);
utilisation de R en effectuant un appel systme bloquant;
V(R);
fin
Soit un systme qui utilise lallocation par partitions variables. On considre linstant t,
ltat dallocation de la mmoire centrale reprsent sur la figure 16.1, o les zones
grises reprsentent les zones libres.
10 Ko
5 Ko
10 Ko
20 Ko
30 Ko
Figure 16.1
5 Ko
10 Ko
30 Ko
E
10 Ko
F
15 Ko
20 Ko 10 Ko
Allocation de la mmoire t.
420
16 Exercices corrigs
421
P2 :
Calcul utilisant la page 1 et la page 2 pendant 40 ms.
Calcul utilisant la page 1 et la page 3 pendant 20 ms.
Calcul utilisant la page 1, la page 2 et la page 3 pendant 50 ms.
P3 :
Calcul utilisant la page 1 pendant 20 ms.
Calcul utilisant la page 2 pendant 20 ms.
tablissez le chronogramme dexcution des 3 processus en figurant les tats prt,
lu, et bloqu cest--dire en opration dentres-sorties pour dfaut de page.
422
16 Exercices corrigs
423
professeurs
etudiants
bin
sbin
ls
ping
dupont
exo1.c
Figure 16.2
jeanne
delacroix
exo1.c
fichier.o
rapport.txt
pb.c
Arborescence de fichiers.
Jeanne appartient au groupe des tudiants. Les droits associs au fichier exo1.c
dont elle est le crateur sont rwx pour le premier niveau, r x pour le second
niveau, r pour le troisime niveau. Lutilisateur delacroix appartenant au groupe
des professeurs peut-il modifier ce fichier ?
16.17 Algorithmes de services des requtes disque
On considre un disque compos de 300 pistes numrotes de 0 299. Le bras est
couramment positionn sur la piste 50. La liste des requtes (numro de piste cherche) servir donne selon lordre darrive est la suivante :
62, 200, 150, 60, 12, 120, 250, 45, 10, 100.
Donnez lordre de service des requtes et le dplacement de bras total en rsultant
dans le cas dun service FCFS, dun service SSTF et dun service LOOK sens initial
montant.
424
16 Exercices corrigs
ligne ligne, de gauche droite. Les rectangles blancs sont des blocs libres. Les
numros apparaissant dans les blocs colors correspondent au numro du fichier
auquel le bloc appartient (exemple : 1 pour fichier_1).
Reprsentez le contenu des vingt premires entres de la table en fonction de lallocation figure par la figure 16.3.
fichier 1
fichier 2
2
fichier 3
Figure 16.3
Allocation du disque C.
425
Processus
Priorit
P1
12
P2
P3
18
1. On ordonnance ces trois processus selon une politique de priorit premptive puis
non premptive. Reprsentez lexcution des trois processus pour chacun de ces
deux cas. Donnez leur temps de rponse.
2. Les trois processus P1, P2 et P3 font prsent des entres-sorties en utilisant un
disque non requrable. Les demandes dentres-sorties des trois processus sont
traites selon un ordre FIFO. Sur le processeur, les processus sont ordonnancs
selon un mode de priorit premptive. Les dates de soumission et les priorits des
processus demeurent inchangs.
Les trois processus ont chacun une excution dfinie comme ci-dessous :
P1
P2
P3
4 secondes calcul
5 secondes E/S disque
4 secondes calcul
2 secondes E/S disque
4 secondes calcul
3 secondes calcul
6 secondes E/S disque
6 secondes calcul
6 secondes calcul
5 secondes E/S disque
6 secondes calcul
3 secondes E/S disque
6 secondes calcul
Reprsentez lexcution des trois processus en prcisant leurs tats prt, lu,
bloqu. Donnez leur temps de rponse.
3. Les trois processus P1, P2 et P3 font des entres-sorties en utilisant un disque
pour lequel lallocation des blocs physiques est gre selon un systme de gestion
de fichiers de type FAT. On suppose que ce disque comporte 30 blocs physiques
numrots de 1 30. Quatre fichiers sont allous sur ce disque.
Le fichier 1 nomm fich_1, dune taille de 5 632 octets, comporte dans lordre
les blocs 1, 5, 9, 15, 25, 29.
Le fichier 2 nomm fich_2, dune taille de 4 098 octets, comporte dans lordre
les blocs 3, 2, 7, 11, 30.
Le fichier 3 nomm fich_3, dune taille de 6 272 octets, comporte dans lordre
les blocs 4, 8, 17, 12, 13, 16, 21.
Le fichier 4 nomm fich_4, dune taille de 3 104 octets, comporte dans lordre
les blocs 22, 24, 6, 10.
Donnez la FAT correspondant cette allocation et donnez lentre de rpertoire
pour chaque fichier, en la compltant avec les attributs connus.
4. Les trois processus P1, P2 et P3 disposent dun espace dadressage pagin. La
mmoire centrale est compose de dix cases numrotes de 1 10. Chaque case a
426
16 Exercices corrigs
une capacit de 512 octets. Lors dun dfaut de pages, la page manquante est
charge dans la case libre de plus grand numro.
La figure 16.4 reprsente lallocation de la mmoire centrale linstant t pour ces
trois processus ainsi que les tables des pages. Compltez-la.
Table des pages P1
1
Espace d'adressage de P1
3 pages Pg1, Pg2, Pg3
2
V
Pg1 P2
Pg3 P2
5
6
7
8
Pg1 P1
Pg1 P3
Pg2 P1
9
10
Figure 16.4
SOLUTIONS
16.1
Algorithmes dordonnancement
P1 P3
P2
P4
4
temps dattente moyen = (0 + 5 + 4 + 8 + 18) / 5 = 7
Priorit premptive
P5
P5
P3
P5 P1
2
2 1
P2
P4
4
temps dattente moyen = (0 + 8 + 0 + 0 + 18) / 5 = 4,8
Figure 16.5
428
16 Exercices corrigs
16.3
Chronogramme dexcutions
3
2
lu
Prt
Bloqu
2
5
10
15
P2
20
lu
Prt
Bloqu
3
2
10
15
1
10
P3
0
lu
Prt
Bloqu
10
Figure 16.6
16.4
20
15
20
Chronogramme dexcutions.
16 Solutions
429
linstant 5, les priorits deviennent pour le processus A gal 67 (60 + 15/2), pour
le processus B gal 75 et le processus C gale 63. Le processus C est donc lu.
16.5
actif
prt
0
100
200
300
E/S
attente E/S
P2
actif
prt
100
200
300
E/S
attente E/S
P3
actif
prt
0
100
200
300
E/S
attente E/S
P4
actif
prt
0
100
Figure 16.7
16.6
200
300
Ordonnancement Linux.
Producteur(s)-Consommateurs(s)
430
16 Exercices corrigs
Acquisition
Excution
Impression
mess : message;
mess : message;
i : index : = 0;
j, k : index : = 0;
l : index : = 0;
dbut
dbut
dbut
boucle
boucle
boucle
enregistrer_travail(mess); P(mplein);
P(nplein);
P(mvide);
mess = requete(j);
mess = avis(l);
requete(i) = mess;
j = j + 1 mod m;
l = l + 1 mod n;
i = i + 1 mod m;
V(mvide);
V(nvide);
V(mplein);
fin boucle
P(nvide);
fin boucle
fin
avis(k) = res;
fin
k = k + 1 mod n;
V(nplein);
fin boucle
fin
2. Il faut maintenant grer les accs concurrents aux tampons avis et requte. En effet :
les diffrents processus Acquisition se partagent lindex i;
les diffrents processus Excution se partagent lindex j et k;
les diffrents processus Impression se partagent lindex k.
Les variables i, j, k, l sont maintenant globales et les accs ces variables doivent
se faire en exclusion mutuelle. On ajoute donc quatre smaphores dexclusion
mutuelle initialiss 1 (un smaphore par index).
dclarations globales :
requte : tampon (0..m 1) de messages;
avis : tampon (0..n 1) de messages;
m, n : entier;
i, j, k, l : index sur les tampons;
mvide, nvide, mplein, nplein, muti, mutj, mutk, mutl : smaphores;
dbut
init(mvide, m); init (nvide, n); init(mplein, 0); init(nplein, 0);
init(muti, 1); init(mutj, 1); init(mutk, 1); init(mutl, 1);
i = j = k = l = 0;
16 Solutions
431
Acquisition
Excution
Impression
mess : message;
mess : message;
dbut
dbut
dbut
boucle
boucle
boucle
enregistrer_travail(mess); P(mplein);
P(mutl);
P(mvide);
P(mutj)
P(nplein);
P(muti);
mess = requete(j);
mess = avis(l);
requete(i) = mess;
j = j + 1 mod m;
l = l + 1 mod n;
i = i + 1 mod m;
V(mutj);
V(nvide);
V(muti);
V(mvide);
V(mutl);
V(mplein);
fin boucle
P(nvide);
fin boucle
fin
P(mutk);
fin
avis(k) = res;
k = k + 1 mod n;
V(mutk);
V(nplein);
fin boucle
fin
16.7
432
16 Exercices corrigs
teur lui-mme se bloque sur lopration P(disque) car le disque est allou au
processus Bilan.
Une solution est dinverser les oprations P(imp) et P(disque) par exemple chez le
processus Bilan de faon ce que les oprations dallocation de ressources soient
effectues dans le mme ordre chez les 2 processus.
3. On considre deux smaphores depot et lire respectivement initialiss la
valeur 1 et 0.
Les pseudos codes des 2 processus concernant la prise des mesures sur le tampon
de 3 cases sont alors de la forme :
Acquisition
Collecteur
dbut
dbut
boucle
boucle
attendre (reveil);
P(lire);
P(depot);
lire_mesures(tampon, mesures);
ecrire_mesures(tampon, mesures);
V(depot)
V(lire);
P(imp);
fin boucle
P(disque);
fin
enregistrer_disque(mesures);
imprimer(mesures);
V(disque);
V(imp);
fin boucle
fin
16.8
16 Solutions
433
12
10
Case 1
10
12
12
12
12
Case 2
Case 3
Case 4
Dfaut
Accs
12
10
Case 1
10
12
12
12
12
LRU
Case 2
Case 3
Case 4
Dfaut
434
16 Exercices corrigs
tat Initial
10 Ko
5 Ko
10 Ko
20 Ko
30 Ko
5 Ko
10 Ko
30 Ko
E
10 Ko
15 Ko
20 Ko 10 Ko
5 Ko
10 Ko
20 Ko
20 Ko
10 Ko
30 Ko
E
10 Ko
15 Ko
20 Ko 10 Ko
Dpart du programme B
10 Ko
30 Ko
5 Ko
20 Ko
10 Ko
30 Ko
A
10 Ko
5 Ko
10 Ko
15 Ko
20 Ko 10 Ko
5 Ko
10 Ko 15 Ko 15 Ko
20 Ko
10 Ko
30 Ko
E
10 Ko
15 Ko
20 Ko 10 Ko
Dpart du programme E
10 Ko
5 Ko
10 Ko 15 Ko 15 Ko
20 Ko
10 Ko
30 Ko
F
30 Ko
20 Ko 10 Ko
Arrive du programme I, taille 40 Ko. Ltat de la mmoire est fragmentee. Il faut compacter :
A
10 Ko 15 Ko 20 Ko 10 Ko
A
10 Ko 15 Ko 20 Ko 10 Ko
30 Ko
20 Ko
30 Ko
20 Ko
40 Ko
Figure 16.8
70 Ko
30 Ko
16 Solutions
435
tat Initial
10 Ko
5 Ko
10 Ko
20 Ko
30 Ko
5 Ko
10 Ko
30 Ko
E
10 Ko
15 Ko
20 Ko 10 Ko
5 Ko
10 Ko
20 Ko
20 Ko
10 Ko
30 Ko
E
10 Ko
15 Ko
20 Ko 10 Ko
Dpart du programme B
10 Ko
30 Ko
5 Ko
20 Ko
10 Ko
30 Ko
A
10 Ko
5 Ko
10 Ko
30 Ko
10 Ko
15 Ko
20 Ko 10 Ko
5 Ko
20 Ko
10 Ko
30 Ko
E
10 Ko
15 Ko
F
20 Ko 10 Ko
Dpart du programme E
10 Ko
A
10 Ko
30 Ko
5 Ko
20 Ko
10 Ko
30 Ko
H
15 Ko 15 Ko
F
20 Ko 10 Ko
Arrive du programme I, taille 40 Ko. Ltat de la mmoire est fragmentee. Il faut compacter :
D
10 Ko 20 Ko 10 Ko
30 Ko
15 Ko
20 Ko
30 Ko
15 Ko
20 Ko
40 Ko
10 Ko 20 Ko 10 Ko
Figure 16.9
70 Ko
30 Ko
436
16 Exercices corrigs
taille
1
v
8
12
n de case
10
2
3
4
0
1
0
Page 3 S1B
Page 1 S1A
Page 2 S1A
Page 1 S3A
16
9
0
1
1
0
11
2
15
Page 2 S2A
10
Page 2 S1B
11
12
13
14
15
MC
Figure 16.10 Tables des pages
et tables des segments pour les processus A et B.
2. adresse logique <S1A, page 1, 12>. = adresse relle <12 Ko, 12> = 12 Ko + 12 = 12 300.
3. adresse logique <S2B, page 2, 10>. La page 2 du segment 2 du processus B nest
pas en mmoire centrale. Il se produit un dfaut de page. Nous pouvons supposer
que la page manquante est charge dans la premire case libre, cest--dire la case 1.
Il sensuit alors que ladresse physique correspondante est 10.
4. 4 098 pour le processus A : adresse virtuelle <S1, page 2, dplacement 2> = adresse
relle <case 5, dplacement 2> = octet 16 386.
16 Solutions
437
12 292 pour le processus A : adresse virtuelle <S2, page 2, dplacement 4> = adresse
relle <case 10, dplacement 4> = octet 331 780.
8 212 pour le processus B : adresse virtuelle <S1, page 3, dplacement 20> = adresse
relle <case 2, dplacement 20> = octet 4 116.
16.12 Mmoire virtuelle et ordonnancement de processus
La solution est donne par la figure 16.11.
40
20
30
lu
Prt
Bloqu
P1
10
10
20
100
50
150
10
20
70
10
30
lu
Prt
Bloqu
10
50
100
150
200
10
100
P3
250
10
20
lu
Prt
Bloqu
70
40
0
250
30
40
P2
200
10
50
Figure 16.11
100
150
200
250
438
16 Exercices corrigs
1
Page 1 PA
0
1
Page 3 PA
Page 1 PC
Page 3 PC
7
8
9
12
10
11
Table des pages proc C
V
1
Page 1 PB
13
14
0
1
12
15
7
MC
Figure 16.12
16 Solutions
439
SSTF :
ordre de service : 45, 60, 62, 100, 120, 150, 200, 250, 12, 10;
dplacement du bras : 5 + 15 + 2 + 38 + 20 + 30 + 50 + 50 + 238 + 2 = 450.
LOOK montant :
ordre de service : 60, 62, 100, 120, 150, 200, 250, 10, 12, 45;
dplacement du bras : 15 + 2 + 38 + 20 + 30 + 50 + 50 + 240 + 2 + 38 = 485.
16.18 Fichiers Unix
1. Nombre total daccs disque ncessaire et temps dattente en entres-sorties :
lecture des 10 premiers blocs : 4 10 accs disque,
lecture des 256 blocs suivants (niveau dindirection 1) : on a deux accs disque
par lecture donc 8 256 accs disque,
lecture des 7 926 blocs restants (niveau dindirection 2) : on a trois accs disque
par lecture donc 12 7 926 accs disque.
440
16 Exercices corrigs
Soit un total de 97 200 accs disque et une dure moyenne de lecture gale
4 860 s.
2. On a un accs disque par blocs de donnes lors de la lecture des 256 premiers octets
du bloc. On a un total de 33 blocs dadresse lire, soit un nombre daccs disque
gal 8 192 + 33 = 9 224 et un temps moyen de lecture gal seulement 461 s !
16.19 Systme de gestion de fichiers
La table dallocation (FAT) correspondant lallocation du disque est la suivante :
Numro entre
Numro entre
11
17
libre
12
libre
libre
13
20
14
Fin fichier
libre
15
Fin fichier
16
14
16
17
13
libre
18
libre
10
19
libre
10
15
20
Fin fichier
16 Solutions
441
Priorit premptive
P3
P2
P1
0
10
20
30
40
t
Temps de rponse (P1) = 18 6 = 12 ; Temps de rponse (P2) = 39 0 = 39 ; Temps de rponse(P3) = 34 4 = 30.
Priorit non premptive
P3
P2
P1
0
10
20
30
40
Figure 16.13
B bloqu
P prt
Chronogramme dexcution.
E lu
B
P
E
P1
B
P
E
P2
B
P
E
P3
0123
10
20
30
40
Figure 16.14
Chronogramme dexcution.
442
16 Exercices corrigs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
nom fichier
taille (octets)
fich_1
5 632
fich_2
4 098
fich_3
6 272
fich_4
3 104
22
Entres de rpertoire
FAT
Figure 16.15
16 Solutions
443
V
V
1
8
5
I
V
5
4
2
3
Pg1 P2
Pg3 P2
Pg3 P1
7
8
Pg1 P1
Espace d'adressage de P3
Pg1 P3
Pg2 P1
9
10
Figure 16.16
MC
manquante est charge dans la case libre de plus grand numro soit la case 10.
Ladresse physique correspondante est alors <case 10, dplacement 64> soit
(9 512) + 64.
Index
A
ACL 406
Activit de programmation 25
Additionneur n bits 94
Adressage 394
NSAP 394
Adresse 5
pagine 324
segmente 332
ADSL 392
Algorithme 1, 25
C-SCAN 378
dordonnancement 270
de la seconde chance 343
FCFS 377
LOOK 379
SCAN 378
SSTF 377
Allocation 317
contigu 355
indexe 362
par blocs chans 359
par zones 357
Analyse
lexicale 38
smantique 42
syntaxique 40
Appel systme 271, 280, 296
Apple 218
ART 392
Assembleur 29, 31, 87
B
Bande
ISM 402
U-NII 402
Bascule 99
Best Fit 355
Bibliothque 47, 57, 281
Bit 65, 66
de carry 73
Bloc
de contrle du processus 290
du disque 355
Bluetooth 400, 407
Bootstrap 19
Bus 3, 134, 210
AGP 216
asynchrones 136
dadresses 8
de commandes 9
de communication 8, 207
de donnes 9
EISA 211
ISA 211
MCA 211
parallles 210
PC-AT 211
PCI 212
SCSI 236
srie 210
USB 232
synchrones 135
C
Cble coaxial 385
Cache 193
associatif 191, 328
direct 189
mixte 192
Carte
CardBus 400
446
CompactFlash 400
Mini-PCI 400
PC-Card 400
PCI 400
PCMCIA 400
CDMA 409
Chane de production de programme 30, 35
Chargement 59
dun systme dexploitation 286
dynamique 60, 315
statique 60
Chargeur 18, 31
Circuit
logique 90
squentiel 99
CISC 198, 200, 202
Coalition 300
Code relogeable 44
Commande 271, 280, 282
Communication 205
Commutation de contexte 277, 296
Compactage 322, 355
Compilateur 29, 31
Compilation 36
spare 46
Concentrateur 388, 389
Contexte du processus 289
Contrleur 229
Convention
de la valeur signe 70
du codage DCB 72
du complment 2 71
Cylindre 354
D
Datagrammes 396
Dcodage 141
Dfaut de page 340
Dpassement de capacit 73
Descripteur de fichier 373
Diffusion
broadcast 384
multicast 384
Disque 181
DMA 241
DRAM 172
Driver 268, 270
Droit daccs 379
DSL 392
E
change 219
chance 275
croulement 346
diteur
de liens 31
de texte 30
dition des liens 46
dynamique 57, 61
statique 57
EDO 172
lection 290, 295
Entres-sorties 236, 374
asynchrones 241
Espace
dadressage 289, 304, 317, 324, 332
dadresses logiques 316
dadresses physiques 316
tat
bloqu 289
dun processus 289
lu 289
prt 290
ETCD 224
Ethernet 227, 396
ETSI 408
ETTD 224
Exception 277
Exclusion mutuelle 305, 306
Excution 129, 154
Extinction de priorit 302
F
Famine 300
FAT (File Allocation Table) 360
FDMA 409
FETCH 139
Fibre optique 385, 390
Fichier 270
logique 348
physique 354
First Fit 355
Formatage 354
Fragmentation 355
externe 320, 324, 335, 359
interne 318, 322, 324
Full duplex 399
G
Gnration dun systme dexploitation 285
Index
H
Half duplex 399
HiperLAN 408
I
Index 362
multiniveaux 363
Instruction 2, 163
machine 27, 79, 137
Intel 217
Interblocage 309
Internet 409
adressage 410
protocole 412
Interprteur 29
de commandes 271, 280, 283
Inter-rseaux 384
Interruption 19, 154, 239, 279, 281, 306,
376
logicielle 279
matrielle 279
L
Label 369
LAN 384
Langage
dassemblage 28, 84
de haut niveau 29, 36
volu 29
machine 15, 27
Liaison programme 237
Libration mmoire 317
Lien
satisfaire 47, 50, 52
utilisable 47, 50, 51
Liste daccs 379
M
Make 62
Makefile 62
MAN 384
Mmoire
cache 169, 184
centrale 3, 4, 13, 131, 207, 315
de travail 171
morte 180
virtuelle 195, 270, 339
vive 171
Mmorisation 168
Micro-instructions 145, 148
447
N
Norme IEEE 754 75
Notation de Backus-Naur 37
Numration
binaire 66
hexadcimale 66
octale 66
O
Oprateur
ET 93
NON 92
OU 92
OU exclusif 93
Ordinateur 1, 127
Ordonnancement 295
des requtes disque 376
non premptif 296
premptif 296
448
PCF 402
PSW 11
Pagination 324
la demande 339
des segments 335
multiniveaux 330
Paire
mtallique 391
torsade 385
PAN 383
Partition 369
FAT 369
Unix 371
variable 317
Pathname 368
Performance 162
Priphrique 205, 218
interface 206
Piconet 407
Pilote 208
Pipeline 163
Piste 354
Plateau 354
Politique
dordonnancement 297
du Plus Court dAbord 299
du Premier Arriv, Premier Servi 298
par priorit constante 300
par tourniquet 301
Porte 92
Processeur 2, 10, 165, 199, 207
matriciel 165
vectoriel 165
Processus 289
Unix 292
Programme 25
damorage 286
machine 154
objet 36
rentrant 289
source 36
Protection 267, 270, 323, 328, 335, 379
contre les accs inappropris 379
contre les dgts physiques 380
Protocole CSMA/CA 403
Protocole daccs
DCF 402, 403
R
RAM 19, 171
Redondance
interne 380
par sauvegarde priodique 380
Registre 11, 101, 145, 171, 180
Registre dtat (PSW) 73
Remplacement
de pages 342
FIFO 342
LFU 344
LRU 343
MFU 344
Rpartiteur 297
Rpertoire 366
deux niveaux 367
un niveau 367
de travail 367
racine 367
Reprsentation
dun nombre sign 69
des caractres 77
des nombres flottants 74
Rseau
commutation 390
adressage 394
cartes ~ 400
de commutation 385
dfinition 383
domestique 384
Ethernet 396
filaire 385
grande distance 408
interconnexion 409
inter-rseaux 384
local 384, 408
longues distances 384
maill 388
mtropolitain 384
personnel 383, 407
qualit de service 396
routage 395
sans fil 399
Index
scurit 406
topologie 386
Ressource critique 305, 306
RISC 198, 201, 202
ROM 19, 171
Routage 395
Routeur 389
Routine systme 271, 276
RS232 224
S
Sauvegarde
complte 381
incrmentale 381
Schma
de lallocation de ressources 309
lecteurs-rdacteurs 310
producteur-consommateur 312
Secteur 354
Section critique 306, 308
Segmentation 332
Smaphore 307
Squencement 150
Squenceur
cbl 150
microprogramm 153
Session de travail 284
SIMD 167
SISD 167
SRAM 172
SSID 406
Stratgie de la
meilleure zone libre (Best Fit) 318
plus mauvaise zone libre (Worst Fit) 318
premire zone libre (First Fit) 318
Superscalaire 165
SVC 242
Swap 347
Synchronisation 270, 305, 307
Systme
traitement par lots 272
batch 272
dexploitation 265, 268
interactif 274
de gestion de fichiers 270, 348
embarqu 276
en temps partag 274
ouvert 271
ractif 276
temps rel 275, 300
449
T
Table
de vrit 91
des cadres de pages 324
des pages 325
des segments 333
des vecteurs dinterruptions 279
TDMA 409
Technique de transmission
DSSS 405
FHSS 405
Temps de rponse 274
Topologie
BSS 401
en anneau 386
en bus 386
en toile 386
ESS 402
Traitant dinterruption 279
Transistor 101, 102
bipolaire 103
unipolaire 103
Trappe 277, 280
U
UAL 11, 146
UART 221, 222
Unit
dchange 16
de contrle 3
USB 214
V
V24 224
Vecteur dinterruptions 158
W
WAN 384
WEP 407
Wi-Fi 408
WLAN 400
WMAN 400
Worst Fit 355
WPAN 400
WWAN 400
Z
Zone de swap 341, 347
SCIENCES SUP
3 e dition
Alain Cazes
Jolle Delacroix
ARCHITECTURE DES
MACHINES ET DES SYSTMES
INFORMATIQUES
Cet ouvrage sadresse aux tudiants de premier cycle informatique et il
constitue galement un bon ouvrage de rfrence pour les tudiants dIUT
et les lves ingnieurs.
Il prsente le fonctionnement dun ordinateur au niveau matriel et au
niveau systme dexploitation. Ainsi, lordinateur est tudi depuis son
niveau le plus haut celui du langage de programmation et celui de
linterface du systme jusqu son niveau le plus bas celui de lexcution
binaire et des composants lectroniques. Pour chaque fonction ou
composant de la machine, les notions de base sont prsentes, puis les
concepts sont approfondis. Des exemples sont donns sappuyant sur
des architectures base de processeurs connus, ainsi que sur des systmes
dexploitation tels que Unix, Linux, Windows ou encore MVS.
Un chapitre est consacr aux rseaux : leurs particularits, leurs usages
et leur interconnexion.
Louvrage se compose de trois grandes parties :
la production de programmes ;
la structure de lordinateur ;
les systmes dexploitation.
Chacune de ces parties sachve par un ensemble dexercices corrigs,
encore plus nombreux dans cette nouvelle dition.
ALAIN CAZES
est matre de confrences
en informatique au
Conservatoire National
des Arts et Mtiers. Il est
docteur en informatique.
JOLLE DELACROIX
est matre de confrences
en informatique au
Conservatoire National
des Arts et Mtiers. Elle est
docteur en informatique.
MATHMATIQUES
PHYSIQUE
CHIMIE
SCIENCES DE LINGNIEUR
INFORMATIQUE
SCIENCES DE LA VIE
SCIENCES DE LA TERRE
LICENCE
MASTER
DOCTORAT
1 2 3 4 5 6 7 8
ISBN 978-2-10-053945-1
www.dunod.com