Vous êtes sur la page 1sur 464

SCIENCES SUP

Cours et exercices corrigs


coles dingnieurs IUT Licence 1re, 2e et 3e annes

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

Bases de donnes et modles de calcul


Outils et mthodes pour lutilisateur
4e dition
Jean-Luc Hainaut
440 pages
Dunod, 2005

ARCHITECTURE
DES MACHINES
ET DES SYSTMES
INFORMATIQUES
Cours et exercices corrigs
Alain Cazes

Matre de confrences en informatique


au Conservatoire National des Arts et Mtiers

Jolle Delacroix

Matre de confrences en informatique


au Conservatoire National des Arts et Mtiers

3e dition

Illustration de couverture : digitalvision

Dunod, Paris, 2003, 2005, 2008


ISBN 978-2-10-053945-1

Table des matires

CHAPITRE 1 STRUCTURE GNRALE ET FONCTIONNEMENT DUN ORDINATEUR

1.1

Introduction

1.2

Structure et fonctionnement dun ordinateur


1.2.1 Structure gnrale dun ordinateur
1.2.2 La mmoire centrale
1.2.3 Le bus de communication
1.2.4 Le processeur central ou microprocesseur

3
3
4
8
10

1.3

Fonctionnement : relation microprocesseur / mmoire centrale

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

Les units dchanges

16

1.6

Conclusion

17

PARTIE 1 PRODUCTION DE PROGRAMMES


CHAPITRE 2 DU PROBLME AU PROGRAMME MACHINE

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

Architecture des machines et des systmes informatiques

2.2

Les diffrents niveaux de langage de lordinateur


2.2.1 Langage machine
2.2.2 Langage dassemblage
2.2.3 Langage de haut niveau ou volu

26
27
28
29

2.3

Introduction la chane de production de programmes

30

2.4

Un exemple

31

2.5

Conclusion

33

CHAPITRE 3 LA CHANE DE PRODUCTION DE PROGRAMMES

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

Ldition des liens


3.2.1 Rle de lditeur de liens
3.2.2 Fonctionnement de lditeur de liens

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

CHAPITRE 4 LE LANGAGE MACHINE ET LA REPRSENTATION DES INFORMATIONS

65

4.1

La reprsentation des informations


4.1.1 Numration binaire, octale et hexadcimale
4.1.2 Reprsentation des nombres signs
4.1.3 Reprsentation des nombres flottants
4.1.4 Reprsentation des caractres

65
66
69
74
77

4.2

Les instructions machine


4.2.1 Les diffrents types dinstructions
4.2.2 Les diffrents types doprandes
4.2.3 Un exemple

79
80
81
82

4.3

Les instructions du langage dassemblage


4.3.1 Format dune instruction du langage dassemblage
4.3.2 Fonctionnement de lassembleur

84
85
87

4.4

Conclusion

89

Table des matires

VII

CHAPITRE 5 LES CIRCUITS LOGIQUES

90

5.1

Les circuits logiques


5.1.1 Dfinition
5.1.2 Les circuits combinatoires
5.1.3 Les circuits squentiels
5.1.4 Technologie des circuits logiques

90
90
91
99
101

5.2

Le futur

106

CHAPITRE 6 EXERCICES CORRIGS

108

Production de programmes
6.1
Compilation
6.2
dition des liens
6.3
Utilitaire Make
6.4
Compilation

108
108
110
111
111

Reprsentation des informations


6.5
Conversions
6.6
Reprsentation des nombres signs
6.7
Reprsentation des nombres flottants
6.8
Synthse

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

Dunod La photocopie non autorise est un dlit.

PARTIE 2 STRUCTURE DE LORDINATEUR


CHAPITRE 7 LA FONCTION DEXCUTION

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

Les interruptions : modification du flux dexcution dun programme machine


7.4.1 Principe des interruptions
7.4.2 Un exemple

154
154
158

VIII

Architecture des machines et des systmes informatiques

7.5

Amlioration des performances


7.5.1 Paralllisme des instructions
7.5.2 Paralllisme des processeurs

162
163
165

7.6

Conclusion

166

CHAPITRE 8 LA FONCTION DE MMORISATION

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

Mmoires de stockage : le disque magntique


8.3.1 Caractristiques gnrales
8.3.2 Organisation gnrale

181
182
182

8.4

Amlioration des performances


8.4.1 Les mmoires caches
8.4.2 Mmoire virtuelle

184
184
195

8.5

Complments : approches CISC/RISC


8.5.1 Les performances dun processeur
8.5.2 La traduction des programmes
8.5.3 Approche CISC
8.5.4 Approche RISC
8.5.5 Pour conclure sur les RISC et les CISC

198
199
200
200
201
202

8.6

Conclusion

203

CHAPITRE 9 LA FONCTION DE COMMUNICATION

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

Les bus ISA (ou PC-AT), MCA et EISA


Le bus PCI (Peripherical Component Interconnect)
Le bus AGP (Accelerated Graphics Port)
Deux exemples

9.3

Les interfaces daccs aux priphriques


9.3.1 Les units dchanges
9.3.2 Les bus dextension

218
219
232

9.4

Les diffrents modles de gestion des entres-sorties


9.4.1 La liaison programme
9.4.2 Entres-sorties pilotes par les interruptions
9.4.3 Gestion des entres-sorties asynchrones

236
237
239
241

9.5

Conclusion

244

Table des matires

IX

CHAPITRE 10 EXERCICES CORRIGS

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

Cache correspondance directe


Calcul de la taille relle dun cache
Cache associatif et remplacement de lignes
Cache correspondance directe

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

10.12 Exercice de synthse

250

SOLUTIONS

253

PARTIE 3 LES SYSTMES DEXPLOITATION


CHAPITRE 11 INTRODUCTION AUX SYSTMES DEXPLOITATION MULTIPROGRAMMS

265

11.1 Rle et dfinition dun systme dexploitation multiprogramm

265

Dunod La photocopie non autorise est un dlit.

11.1.1 Un premier rle : assurer le partage de la machine physique


11.1.2 Un second rle : rendre conviviale la machine physique
11.1.3 Dfinition du systme dexploitation multiprogramm

267
267
268

11.2 Structure dun systme dexploitation multiprogramm

269

11.2.1 Composants dun systme dexploitation


11.2.2 La norme POSIX pour les systmes ouverts

269
271

11.3 Principaux types de systmes dexploitations multiprogramms


11.3.1 Les systmes traitements par lots
11.3.2 Les systmes interactifs
11.3.3 Les systmes temps rel
11.4 Notions de base
11.4.1 Modes dexcutions et commutations de contexte
11.4.2 Gestion des interruptions matrielles et logicielles
11.4.3 Langage de commande

271
272
274
275
276
277
279
282

Architecture des machines et des systmes informatiques

11.5 Gnration et chargement dun systme dexploitation


11.5.1 Gnration dun systme dexploitation
11.5.2 Chargement dun systme dexploitation

285
285
286

11.6 Conclusion

286

CHAPITRE 12 GESTION DE LEXCUTION DES PROGRAMMES : LE PROCESSUS

288

12.1 Notion de processus

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

12.2 Ordonnancement sur lunit centrale


12.2.1
12.2.2
12.2.3
12.2.4

Ordonnancement premptif et non premptif


Entits systmes responsable de lordonnancement
Politiques dordonnancement
Exemples

12.3 Synchronisation et communication entre processus


12.3.1
12.3.2
12.3.3
12.3.4

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

CHAPITRE 13 GESTION DE LA MMOIRE CENTRALE

315

13.1 Mmoire physique et mmoire logique

315

13.2 Allocation de la mmoire physique

317

13.2.1 Allocation contigu de la mmoire physique


13.2.2 Allocation non contigu de la mmoire physique
13.3 Mmoire virtuelle
13.3.1
13.3.2
13.3.3
13.3.4
13.3.5
13.3.6

Principe de la mmoire virtuelle


Le dfaut de page
Le remplacement de pages
Performance
Exemples
Notion dcroulement

317
323
336
336
339
341
344
345
346

13.4 Swapping des processus

347

13.5 Conclusion

347

Dunod La photocopie non autorise est un dlit.

Table des matires

XI

CHAPITRE 14 SYSTME DE GESTION DE FICHIERS

348

14.1 Le fichier logique


14.1.1 Dfinition
14.1.2 Les modes daccs
14.1.3 Exemples

348
348
349
351

14.2 Le fichier physique


14.2.1 Structure du disque dur
14.2.2 Mthodes dallocation de la mmoire secondaire

354
354
355

14.3 Correspondance fichier logique-fichier physique


14.3.1 Notion de rpertoire
14.3.2 Ralisation des oprations

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

CHAPITRE 15 INTRODUCTION AUX RSEAUX

383

15.1 Dfinition

383

15.2 Les rseaux filaires


15.2.1 Architecture des rseaux filaires
15.2.2 Circulation des informations
15.2.3 Exemple de rseau filaire

385
385
393
396

15.3 Les rseaux sans fil


15.3.1 Architecture des rseaux sans fil
15.3.2 Circulation des informations
15.3.3 Exemples de rseaux sans fil

399
400
402
407

15.4 Linterconnexion de rseaux : Internet


15.4.1 Architecture de lInternet
15.4.2 Circulation de linformation

409
410
410

CHAPITRE 16 EXERCICES CORRIGS

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

Architecture des machines et des systmes informatiques

16.7
16.8

Allocations de ressources et interblocage


Allocation de ressources et tats des processus

417
418

Gestion de la mmoire centrale


16.9 Gestion de la mmoire par partitions variables
16.10 Remplacement de pages
16.11 Mmoire pagine et segmente
16.12 Mmoire virtuelle et ordonnancement de processus
16.13 Pagination la demande

419
419
419
420
420
421

Systme de gestion de fichiers


16.14 Modes daccs
16.15 Organisation de fichiers
16.16 Noms de fichiers et droits daccs
16.17 Algorithmes de services des requtes disque
16.18 Fichiers Unix
16.19 Systme de gestion de fichiers FAT
16.20 Systme de gestion Unix
16.21 Synthse

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

Le rle de linformatique est de rsoudre des problmes laide dun ordinateur. Un


problme sexprime sous la forme dun nonc qui spcifie les fonctions que lon
souhaite raliser. Par exemple dfinir toutes les fonctions dun traitement de texte.
Pour rsoudre un problme les informaticiens utilisent la notion dalgorithme.
Pour illustrer cette notion, prenons lexemple du problme suivant : confectionner
une omelette avec 6 ufs.

1 Structure gnrale et fonctionnement dun ordinateur

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

machine virtuelle et son langage de programmation. Aussi, connatre le langage de


programmation dune machine virtuelle quivaut connatre les capacits dexcution de cette machine.
En rsum rsoudre un problme avec une machine virtuelle consiste construire
une squence dinstructions pour cette machine ( partir de son langage de programmation) telle que lexcution de cette squence soit une solution ce problme. En
informatique la machine cible, celle avec laquelle nous devons rsoudre les problmes,
est lordinateur. Nous devons donc connatre les caractristiques de cette machine,
tout particulirement son langage de programmation (les instructions quelle est
capable dexcuter), lalphabet permettant de coder les instructions ainsi que les
donnes et les outils permettant dexcuter ces instructions.
Les instructions dun ordinateur sont les instructions machines, elles constituent le
langage de programmation de lordinateur : le langage machine. Rsoudre un problme
avec un ordinateur consiste donc exprimer ce problme sous la forme dune
squence dinstructions machines que nous devrons soumettre aux outils permettant
lexcution de cette squence. Cette squence dinstructions machine excutables
par lordinateur sappelle le programme machine.

1.2

STRUCTURE ET FONCTIONNEMENT
DUN ORDINATEUR

Dunod La photocopie non autorise est un dlit.

Aprs ce bref rappel sur la manire algorithmique de rsoudre un problme nous


allons nous intresser la rsolution dun problme avec comme machine cible un
ordinateur. Pour cela nous donnons tout dabord une prsentation de la structure
matrielle dun ordinateur, de son fonctionnement, pour ainsi en dduire comment
on peut laide dun ordinateur, rsoudre un problme. Lordinateur cible nous
servant de support descriptif est un ordinateur de type Von Neumann qui caractrise
bien la quasi-totalit des ordinateurs actuels. Il est compos des lments suivants :
une mmoire centrale pour le stockage des informations (programme et donnes);
un microprocesseur ou processeur central pour le traitement des informations
loges dans la mmoire centrale;
des units de contrle des priphriques et des priphriques;
un bus de communication entre ces diffrents modules.
1.2.1 Structure gnrale dun ordinateur
La figure 1.1 prsente lorganisation gnrale dun ordinateur. On y trouve deux parties
principales :
le processeur comprenant les modules mmoire centrale, processeur central (microprocesseur), les units dchange et le bus de communication entre ces diffrents
modules;

1 Structure gnrale 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

Structure matrielle gnrale.

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.

1.2 Structure et fonctionnement dun ordinateur

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

Dunod La photocopie non autorise est un dlit.

1
0
1
0
1
1
1
0

La mmoire centrale.

Pour stocker linformation la mmoire est dcoupe en cellules mmoires : les


mots mmoires. Chaque mot est constitu par un certain nombre de bits qui dfinissent sa taille. On peut ainsi trouver des mots de 1 bit, 4 bits (quartet) ou encore 8 bits
(octet ou byte), 16 bits voire 32 ou 64 bits. Chaque mot est repr dans la mmoire
par une adresse, un numro qui identifie le mot mmoire. Ainsi un mot est un contenant accessible par son adresse et la suite de digits binaires composant le mot reprsente le contenu ou valeur de linformation.
La mmoire centrale est un module de stockage de linformation dont la valeur est
code sur des mots. Linformation est accessible par mot. La capacit de stockage de
la mmoire est dfinie comme tant le nombre de mots constituant celle-ci. Dans
lexemple de la figure 1.2, notre mmoire a une capacit de 8 mots de 16 bits
chacun. On exprime galement cette capacit en nombre doctets ou de bits. Notre
mmoire a donc une capacit de 16 octets ou de 128 bits. Linformation que lon
trouve en mmoire centrale est donc code sur un alphabet binaire. La figure 1.3
rappelle le nombre de combinaisons que lon peut raliser partir dune suite
dlments binaires. Coder linformation en mmoire centrale cest donc associer
chaque suite de bits un sens particulier.

1 Structure gnrale et fonctionnement dun ordinateur

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

n bits donnent 2n combinaisons diffrentes


Figure 1.3

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 diffrentes informations


prsentes en mmoire centrale.

1.2 Structure et fonctionnement dun ordinateur

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.

Dunod La photocopie non autorise est un dlit.

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

La valeur maximale dun entier sur p bits est 2p 1


Un exemple de codage de linformation.

1 Structure gnrale et fonctionnement dun ordinateur

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

1.2 Structure et fonctionnement dun ordinateur

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

Dunod La photocopie non autorise est un dlit.

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

1 Structure gnrale et fonctionnement dun ordinateur

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

Bus de communication et mmoire centrale.

1.2.4 Le processeur central ou microprocesseur


Le microprocesseur (unit centrale) a pour objet dexcuter les instructions machines
places en mmoire centrale. La figure 1.8 prsente son architecture gnrale.
Y1
Z

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

Bus Processeur / Mmoire

Figure 1.8

Le microprocesseur.

1.2 Structure et fonctionnement dun ordinateur

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 sont des zones de mmorisation de linformation internes au microprocesseur. Ils


sont de faible capacit et de temps daccs trs faible. Leur nombre et leur taille sont
variables en fonction du type de microprocesseur. Ils peuvent tre de type adresse
(ils contiennent alors une adresse de mot mmoire) ou donnes (ils contiennent alors
le contenu dun mot mmoire). Ils peuvent tre spcifiques et avoir une fonction trs
prcise (par exemple le registre pointeur de pile) ou gnraux et servir essentiellement aux calculs intermdiaires, par exemple, de lunit arithmtique et logique.
Lunit arithmtique et logique (UAL)

Dunod La photocopie non autorise est un dlit.

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

1 Structure gnrale et fonctionnement dun ordinateur

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

Cest un registre dadresses. chaque instant il contient ladresse de la prochaine


instruction excuter. Lors de lexcution dune instruction il est prvu, au cours de
cette excution, la modification du contenu du CO. Ainsi en fin dexcution de
linstruction courante le compteur ordinal pointe sur la prochaine instruction excuter
et le programme machine peut continuer se drouler.
Le registre dinstruction RI

Cest un registre de donnes. Il contient linstruction excuter.


Le dcodeur

Il sagit dun ensemble de circuits dont la fonction est didentifier linstruction


excuter qui se trouve dans le registre RI, puis dindiquer au squenceur la nature de
cette instruction afin que ce dernier puisse dterminer la squence des actions
raliser.
Le squenceur

Il sagit dun ensemble de circuits permettant lexcution effective de linstruction


place dans le registre RI. Le squenceur excute, rythm par lhorloge du microprocesseur, une squence de microcommandes (micro-instructions) ralisant le travail
associ cette instruction machine. Pour son fonctionnement le squenceur utilise
les registres et lUAL. Ainsi lexcution effective dune instruction machine se traduit
par lexcution dune squence de micro-instructions excutables par les circuits de
base du microprocesseur. Nous reviendrons plus en dtail sur cet aspect des choses
dans le chapitre 7, consacr lexcution des instructions machines.
Le registre RAD

Cest un registre dadresses. Il est connect au bus dadresses et permet la slection


dun mot mmoire via le circuit de slection. Ladresse contenue dans le registre
RAD est place sur le bus dadresses et devient la valeur dentre du circuit de slection
de la mmoire centrale qui va partir de cette entre slectionner le mot mmoire
correspondant.
Le registre RDO

Cest un registre de donnes. Il permet lchange dinformations (contenu dun mot


mmoire) entre la mmoire centrale et le processeur (registre).
Ainsi lorsque le processeur doit excuter une instruction il :
place le contenu du registre CO dans le registre RAD via le bus dadresses et le
circuit de slection;
dclenche une commande de lecture mmoire via le bus de commandes;
reoit dans le registre de donnes RDO, via le bus de donnes, linstruction;

1.3 Fonctionnement : relation microprocesseur / mmoire centrale

13

place le contenu du registre de donnes RDO dans le registre instruction RI via le


bus interne du microprocesseur.
Pour lire une donne le processeur :

place ladresse de la donne dans le registre dadresses RAD;


dclenche une commande de lecture mmoire;
reoit la donne dans le registre de donnes RDO;
place le contenu de RDO dans un des registres du microprocesseur (registres gnraux ou registres dentre de lUAL).

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

Lobjet de cette partie est de prsenter succinctement comment sexcute un programme


machine sur le matriel que nous venons de dfinir. Pour tre excutable une instruction doit ncessairement tre prsente en mmoire centrale. La mmoire centrale
contient donc des instructions et des donnes. De plus toutes les informations en
mmoire sont codes sur un alphabet binaire. Les informations sont alors, quelle que
soit leur nature, des suites de 0 et de 1. Il faut donc pouvoir diffrencier instructions
et donnes afin que le registre instruction RI contienne bien des instructions et non
des donnes (et rciproquement). Dans le cas contraire le dcodeur ne pourrait interprter la nature du travail faire (RI ne contenant pas une instruction mais une

Dunod La photocopie non autorise est un dlit.

Mmoire
Instructions
Donnes

3
Horloge
4

Figure 1.9

Excution dune instruction.

14

1 Structure gnrale et fonctionnement dun ordinateur

donne). En gnral lors du placement du programme machine et des donnes dans


la mmoire centrale les instructions et les donnes sont spares et occupent des
espaces mmoires diffrents (voir figure 1.9). la fin du chargement du programme
machine et des donnes en mmoire le compteur ordinal CO reoit ladresse de la
premire instruction du programme excuter.
Lexcution peut alors commencer. Le principe gnral dexcution est illustr
dans la figure 1.9.
Les diffrentes phases de lexcution dune instruction sont les suivantes :
1. le contenu du compteur ordinal CO est plac dans le registre dadresses RAD : il
y a slection de linstruction excuter;
2. une commande de lecture de la mmoire centrale est dclenche via le bus de
commandes;
3. linstruction est transfre de la mmoire centrale vers le registre instruction RI
via le bus de donnes et le registre de donnes RDO;
4. le dcodeur analyse linstruction place dans le registre instruction RI, reconnat
cette instruction et indique au squenceur la nature de linstruction;
5. le squenceur dclenche au rythme de lhorloge la squence de micro-instructions
ncessaires la ralisation de linstruction.
On peut rsumer les tapes de lexcution dune instruction (chargement/dcodage/excution) par lalgorithme suivant :
dbut
charger linstruction excuter depuis la mmoire dans le registre
instruction;
modifier le compteur ordinal pour quil pointe sur la prochaine
instruction excuter;
dcoder linstruction qui vient dtre charge dans le registre
dinstruction;
charger les donnes ventuelles dans les registres;
excuter la squence des micro-instructions permettant la ralisation
de linstruction;
fin

Les oprations charger/modifier ralisent le chargement de linstruction dans le


registre dinstruction RI. Cette phase est la phase dite de FETCH.
Enfin, lexcution dun programme machine peut tre dcrite par lalgorithme
suivant :
dbut
excuter la premire instruction du programme
tant que ce nest pas la dernire instruction
faire
excuter linstruction;
fin faire
fin

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.

Dunod La photocopie non autorise est un dlit.

Code opration

Champ oprande

0001

0100

0001

0100

Charger le contenu du mot mmoire dadresse 0100 dans le registre A

0010

0101

Additionner le contenu du registre A avec le contenu du mot


mmoire dadresse 0101 et placer le rsultat dans le registre A

0011

0110

Placer le contenu du registre A dans le mot mmoire dadresse 0110

0000

Stopper le programme
Figure 1.10

Le langage de la machine.

16

1 Structure gnrale et fonctionnement dun ordinateur

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

Traduction en langage machine

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.

LES UNITS DCHANGES

Les units dchanges permettent la communication entre les modules du processeur


et les priphriques. Cette fonction de communication est complexe et nous la
dtaillons dans le chapitre 9.
Une unit dchange a une double nature :
elle est en communication, via le bus interne du processeur, avec la mmoire
centrale et le microprocesseur. Des instructions machines spcifiques permettent

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

Dunod La photocopie non autorise est un dlit.

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)

excution programme machine


excution squentielle
du programme machine

excution dune instruction


Chargement (fetch)
et modification du CO
Dcodage
Excution de la squence
de micro-instructions

Principales tapes de la rsolution dun problme avec lordinateur.

18

1 Structure gnrale et fonctionnement dun ordinateur

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

Dunod La photocopie non autorise est un dlit.

ensuite les notions rencontres ici de langage machine, de modes dadressages et de


codages pour la reprsentation des informations.
Dans la seconde partie nous dtaillons :
la fonction dexcution o nous apportons des prcisions sur ce quest rellement
lexcution dune instruction machine. Nous prcisons la notion de micro-instruction.
Dans cette partie nous abordons galement la notion dinterruption qui est un
mcanisme fondamental dans nos ordinateurs;
la fonction de mmorisation en prcisant les diffrents types de mmoires constituant la mmoire centrale. Nous abordons les problmes de synchronisation entre
processeur et mmoire centrale et voyons comment la mmoire cache apporte des
solutions aux diffrences de vitesse entre microprocesseur et mmoire centrale;
la fonction de communication dans laquelle nous revenons sur la manire dchanger
des informations entre processeur et priphriques.
Enfin, nous commenons le voir, le systme dexploitation joue un rle central
dans la gestion et le fonctionnement des ordinateurs. Nous y consacrons la troisime
partie de cet ouvrage.
Pour terminer cette introduction, quelques mots pour prciser le processus de
dmarrage dun ordinateur. En plus de la mmoire centrale (communment appele
mmoire RAM) il existe une mmoire ROM, dite mmoire morte, uniquement accessible en lecture donc non modifiable par programme et qui de plus nest pas volatile :
quand le courant est coup, le contenu de cette mmoire ROM nest pas altr
contrairement aux mmoires RAM pour lesquelles le contenu est perdu lorsque le
courant est coup. Cette mmoire ROM est charge, une fois pour toutes, avec un
programme : le bootstrap.
Par ailleurs sur le disque magntique est plac le systme dexploitation. Le
systme dexploitation est un ensemble de programmes excutables sur le microprocesseur. Un de ces programmes, linterprteur de langage de commandes (le Shell
sous Unix), comprend des commandes telles que demander lexcution dun diteur
de texte, dun compilateur, dun lanceur de programmes.
Le bootstrap connat ladresse sur le disque du systme dexploitation, en particulier de son noyau compos entre autre de linterprteur de langage de commandes.
Lors de la mise sous tension de lordinateur, automatiquement le bootstrap sexcute :
le bootstrap charge en mmoire centrale le noyau du systme dexploitation (en
particulier linterprteur du langage de commande) et lance son excution;
ce dernier attend, au travers dune interface de communication, les commandes de
lutilisateur. Celui-ci demande :
un diteur de texte pour saisir le code de son programme;
un compilateur pour le traduire en langage machine;
le lancement de lexcution de son programme machine rsultat de la traduction.
Pour cela, lutilisateur, doit connatre le langage de commande quest capable
de comprendre linterprteur de langage de commande du systme dexploitation utilis. Il existe plusieurs types dinterface de communication qui vont de
lcriture textuelle de la ligne de commande, encore courante sous Unix, aux

20

1 Structure gnrale et fonctionnement dun ordinateur

interfaces graphiques sophistiques que lon trouve sous Windows, Mac OS X


ou Linux. Avec ces interfaces graphiques on ncrit plus de ligne de commandes,
dont il faut connatre la syntaxe, mais on clique sur des icnes faisant rfrence
au programme que lon souhaite excuter;
le lanceur du programme machine le charge (via le chargeur) en mmoire
centrale, place ladresse de la premire instruction excuter dans le compteur
ordinal : le programme machine sexcute.

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

partir de la description du rle premier dun ordinateur, nous exposons le


processus qui permet un tre humain de soumettre la rsolution dun problme un
ordinateur, ceci sous forme dun programme crit dans un langage de programmation dit langage de haut niveau, qui code une solution appele algorithme. Lordinateur ne pouvant excuter que des instructions codes en langage machine, il est
ncessaire de traduire ce langage de haut niveau vers le langage machine de lordinateur : cest le rle de la chane de production de programmes.

2.1

DU PROBLME AU PROGRAMME

2.1.1 Rappel du rle dun ordinateur


Lordinateur est prsent de nos jours dans de multiples domaines et lieux. En une
cinquantaine dannes, il a envahi notre quotidien et il est bien des domaines
prsent o son utilisation et sa puissance se rvlent indispensables. En effet, lordinateur a investi de multiples espaces et remplit des missions trs diverses qui vont du
calcul scientifique pour par exemple squencer lADN ou analyser les modles
mtorologiques, au pilotage de procd tel que la surveillance dune centrale
nuclaire et encore les jeux ou la communication via lInternet.
De fait, la multiplicit des missions remplies par lordinateur cache en quelque
sorte son unique rle : archiver des donnes et excuter un programme de traitement

24

2 Du problme au programme machine

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.

2.1 Du problme au programme

25

2.1.2 Problme, algorithme, programme et instructions


Lordinateur est puissant et rapide mais il na aucune intelligence propre et aucune
imagination. Tout ce dont lordinateur est capable, cest dexcuter ce que ltre humain
lui commande de faire; en aucun cas, il ne peut fournir de lui-mme une solution
un problme donn. Ltre humain utilise donc lordinateur pour rsoudre un problme,
encore faut-il que ce problme puisse tre exprim lordinateur : cest lactivit de
programmation. Ainsi, vouloir rsoudre un problme laide de lordinateur demandera de mettre en uvre le processus suivant (figure 2.1) :
charge de ltre humain de trouver une ou plusieurs solutions au problme;
au moins une des solutions trouves est ensuite exprime sous forme de rgles
opratoires telles que des itrations, des conditionnelles, des tests boolens, des
oprations arithmtiques : cest la construction de lalgorithme;
lalgorithme est cod sous forme dinstructions dans un langage excutable et
comprhensible par lordinateur : cest lactivit de programmation qui construit
un programme. Une instruction quivaut un ordre qui entrane lexcution par
lordinateur dune tche lmentaire.
1.
Jai un problme rsoudre :
b
a

primtre ?

Dunod La photocopie non autorise est un dlit.

2.

Jcris une solution !


ALGORITHME
Primtre = 2 a + 2 b

3. En utilisant un langage de programmation, je code la solution


pour la faire excuter par lordinateur
PROGRAMME constitu dinstructions
function perimetre (a, b : in integer) return integer is
begin
perimetre := (2 * a) + (2 * b);
end;
Figure 2.1

Rsoudre un problme laide de lordinateur.

26

2 Du problme au programme machine

On notera quil dcoule de ce processus que lordinateur a besoin de trois lments


essentiels :
un moyen de communication avec ltre humain : clavier, souris, cran, etc.;
un moyen dexcuter les instructions du langage : le processeur;
un moyen de conserver des donnes : les priphriques de stockage tels que le
disque dur, la disquette, le CD-ROM.

2.2

LES DIFFRENTS NIVEAUX DE LANGAGE


DE LORDINATEUR

La programmation est donc lactivit qui consiste traduire par un programme un


algorithme dans un langage assimilable par lordinateur. Cette activit de programfunction perimetre (a, b : in integer) return integer is
begin
perimetre := (2 * a) + (2 * b);
Programme en langage de haut niveau
end;
instructions de haut niveau

COMPILATEUR
perimetre : pop Rg1 R1
pop Rg1 R2
mul Im R1 2
mul Im R2 2
add Rg2 R1 R2
push Rg1 R1
ret

Programme en langage dassemblage :


Instructions composes de Mmmoniques

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.

2.2 Les diffrents niveaux de langage de lordinateur

27

mation peut seffectuer diffrents niveaux, plus ou moins proches et dpendants de


larchitecture physique de la machine. Essentiellement on distinguera trois niveaux
(figure 2.2) : la programmation de bas niveau en langage machine, la programmation de bas niveau en langage dassemblage, la programmation de haut niveau
laide dun langage de haut niveau ou langage volu.
2.2.1 Langage machine
La donne de base manipule par la machine physique est le bit (Binary Digit) qui
ne peut prendre que deux valeurs : 0 et 1. Ce 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 (voir
chapitre 5, Les circuits logiques). 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. Cest le niveau de
programmation le plus bas et le plus proche du matriel, celui du langage machine.
ce niveau, la programmation et les instructions du langage sont totalement
dpendantes de larchitecture de la machine et du processeur et manipulent directement les registres du processeur ou encore les adresses en mmoire physique, tout
cela sous forme de chanes binaires. Ainsi, une instruction machine (figure 2.3) est
une chane binaire compose essentiellement de deux parties :
le code opration dsigne le type dopration effectuer (addition, ou logique,
lecture mmoire);
le reste de linstruction sert dsigner les oprandes, cest--dire les donnes sur
lesquelles lopration dfinie par le code opration doit tre ralise. Ces oprandes
sont soit des mots mmoires, soit des registres du processeur ou encore des valeurs
immdiates.
32 bits

Dunod La photocopie non autorise est un dlit.

adresse

code opration

dsignation des oprandes

8 bits : 28 instructions diffrentes


00000000 : addition
00100110 : multiplication
etc.
Figure 2.3

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

2 Du problme au programme machine

2.2.2 Langage dassemblage


Une premire amlioration a consist substituer aux chanes binaires reprsentant
des codes oprations ou des adresses mmoires, des chanes de caractres plus aisment manipulables par ltre humain que lon appelle des mnmoniques : cest le
langage dassemblage qui constitue une variante symbolique du langage machine,
permettant au programmeur de manipuler les instructions de la machine en saffranchissant notamment des codes binaires et des calculs dadresse. Le langage dassemblage comporte le mme jeu dinstructions que le langage machine et est galement
spcifique de la machine.
Une instruction du langage dassemblage (figure 2.4) est compose de champs,
spars par un ou plusieurs espaces. On identifie :
un champ tiquette, non obligatoire, qui correspond ladresse de linstruction
machine;
un champ code opration, qui correspond la chane binaire code opration de
linstruction machine;
un champ oprandes pouvant effectivement comporter plusieurs oprandes spars
par des virgules qui correspondent aux registres, mots mmoires ou valeurs immdiates apparaissant dans les instructions machine.
tiquette

code opration

dsignation des oprandes

linstruction en langage dassemblage


tiquette
boucle :

code opration
ADD

oprandes
Rg2 R0, R1

correspond linstruction machine


adresse
01110110

code opration
00000000
Figure 2.4

oprandes
111 0000 0001

Instruction en langage dassemblage.

La programmation au niveau du langage dassemblage, quoique bien plus aise


quau niveau machine, est encore fastidieuse pour ltre humain et requiert surtout
de connatre larchitecture du processeur et de la machine. On parle ainsi du langage
dassemblage du processeur Intel Pentium ou du langage dassemblage du processeur Athlon AMD.
Lorsque la programmation en langage dassemblage est mise en uvre, elle
ncessite une tape de traduction, car seules les instructions en langage machine sont
comprhensibles et excutables par la machine. Pour pouvoir excuter un programme
crit en langage dassemblage, il faut donc traduire les instructions de celui-ci vers

2.2 Les diffrents niveaux de langage de lordinateur

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 :

Dunod La photocopie non autorise est un dlit.

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

2 Du problme au programme machine

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

INTRODUCTION LA CHANE DE PRODUCTION


DE PROGRAMMES

La chane de production de programmes est prsente sur la figure 2.5.


Lditeur de texte est un logiciel interactif permettant de saisir du texte partir
dun clavier et de le stocker dans un fichier le programme source , sur un support
Algorithme

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

Chane de production de programmes.

2.4 Un exemple

31

de masse tel quun disque. Le compilateur permet la traduction du programme source


en un programme objet qui est soit directement le langage machine, soit le langage
dassemblage. Le passage du langage dassemblage au langage machine se fait par
lintermdiaire dun autre traducteur, lassembleur. Le programme objet est stock
sur le disque. Lditeur de liens est un logiciel qui permet de combiner plusieurs
programmes objet en un seul et de rsoudre des appels des modules de librairie.
Lditeur de liens rsout les rfrences externes.
Le programme construit lissue de ldition des liens comporte une allocation
des instructions commenant 0. Pour tre excut, le programme doit tre transfr
depuis le disque vers la mmoire centrale : cest le rle du chargeur de placer le
programme en mmoire centrale partir dune adresse dimplantation et de translater toutes les adresses du programme de la valeur de ladresse dimplantation.

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.

Dunod La photocopie non autorise est un dlit.

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

2 Du problme au programme machine

Qui se traduit par exemple en langage C par le programme suivant :


#define
#define
#define
#define

triangle 1
cercle 2
carre 3
rectangle 4

int perimetre (objet, a, r, h, b)


int objet, a, b, h, r;
{
switch (objet) {
case 1 : return (3 * a);
case 2 : return (2 * * r);
case 3 : return (4 * a);
case 4 : return (2 * a + 2 * b);}
}

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();

Dunod La photocopie non autorise est un dlit.

2.5

CONCLUSION

Ce chapitre nous a permis de comprendre le rle essentiel dun ordinateur savoir


excuter un programme qui est le codage dans un langage comprhensible par la
machine dune solution un problme pos par un tre humain. La solution ce
problme est appele algorithme.
Le programmeur dispose de plusieurs niveaux de langage pour coder son algorithme :
le langage de haut niveau est le niveau de programmation le plus utilis aujourdhui.
Cest un niveau de programmation indpendant de la structure physique de la
machine et de larchitecture du processeur de celle-ci;

34

2 Du problme au programme machine

le langage dassemblage est un langage au contraire dpendant de larchitecture de


la machine physique. Il correspond une forme symbolique du langage machine
associ au processeur;
le langage machine est un langage compos sur un alphabet binaire. Cest le seul
langage excutable directement par le processeur.

Chapitre 3

La chane de production
de programmes
3

La chane de production de programmes dsigne le processus permettant la cration


dun programme excutable plac en mmoire centrale partir dun programme dit
source crit en langage de haut niveau. Ce processus se dcompose en plusieurs tapes
(figure 3.1) que nous allons successivement tudier dans ce chapitre : la compilation,
ldition de liens et enfin le chargement.

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

3 La chane de production de programmes

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

La compilation constitue la premire tape de la chane de production de programmes.


Elle permet la traduction dun programme dit programme source crit le plus souvent
en langage de haut niveau vers un programme dit programme objet qui est soit directement le langage machine, soit le langage dassemblage. Le programme objet est
stock sur le disque.
Le compilateur est une application. Cest un logiciel dpendant de la machine
physique vers laquelle il doit produire le langage. Ainsi un programme compil sur
une machine A ne sexcutera pas forcment sur une machine B, notamment si B est
diffrente physiquement de A.

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

Avant de dbuter ltude du fonctionnement du compilateur, nous nous attachons


dfinir la structure dun langage haut niveau. La dfinition dun langage de haut niveau
sappuie sur :
un alphabet : cest lensemble des symboles lmentaires disponibles dans le langage
(caractres, chiffres, signes de ponctuation);
un ensemble de mots encore appels lexmes : un mot est un groupe de symboles
lmentaires admis par le langage dont la structure est donne par une grammaire;

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.

Dunod La photocopie non autorise est un dlit.

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

Les rgles de Backus-Naur suivantes permettent la description dun langage de


programmation que nous appellerons L_exemple contenant deux types dinstructions : dune part des instructions permettant doprer des dclarations de variables,
dautre part des instructions de type affectation.
<programme> :: = PROGRAM <identificateur> <corps de programme>
<corps de programme> :: = <suite de dclarations> DEBUT <suite
daffectations> FIN
<suite de dclarations> :: = <dclaration> | <dclaration> <suite
de dclarations>

38

3 La chane de production de programmes

<dclaration> :: = INT <identificateur>;


<suite daffectations> :: = <affectation> | <affectation> <suite
daffectations>
<affectation> :: = <identificateur> = <terme>; |
<identificateur> = <terme> <oprateur> <terme>;
<terme> :: = <entier> | <identificateur>
<oprateur> :: = + | | * | /
<identificateur> :: = <lettre> | <lettre> <chiffre>
<entier> :: = <chiffre> | <entier> <chiffre>
<lettre> :: = A | B | C | D | E. | | X | Y | Z
<chiffre> :: = 0 | 1 | 2 | 3 | 4. | .. | 9

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.2 Analyse lexicale


La premire tape de lopration de compilation sappelle lanalyse lexicale.
Lanalyseur lexical (figure 3.2) lit le programme source caractre par caractre, et
reconnat dans cette suite de caractres les lexmes du langage en sappuyant sur les
rgles de Backus Naur les dfinissant. Par ailleurs, lanalyseur lexical limine les
espaces non significatifs et les commentaires qui nont pas de signification propre.
Pour rendre plus aises les tapes ultrieures, il traduit les lexmes reconnus qui
constituent des chanes de caractres en symboles plus aisment manipulables, par
exemple en entiers.

3.1 La compilation

39

Lexmes
P
r
o
g
r
a
m
m
e

Suite
de caractres

Suite
de symboles
Analyseur lexical

Erreurs : symboles non reconnus


Figure 3.2

Analyseur lexical.

Dunod La photocopie non autorise est un dlit.

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

3 La chane de production de programmes

Des erreurs peuvent survenir et correspondent lutilisation de symboles non


conformes au langage. Ainsi une phrase telle que INT g5 provoquera une erreur lexicale dans le cadre du langage L_exemple car le symbole g ne fait pas partie de
lalphabet du langage (seules les lettres majuscules sont admises). Par contre la phrase
G 5 = 2; sera reconnue par lanalyseur lexical comme tant quivalente la suite :
17 (G) 5 (5) 5 (=) 2 (2) 6 (;).
La phase danalyse lexicale sapparente notre propre processus de lecture qui
nous permet de reconnatre et former les mots dans la suite de caractres dun texte.
3.1.3 Analyse syntaxique
Ltape suivante dans le processus de compilation est celle de lanalyse syntaxique.
Lanalyseur syntaxique (figure 3.3) analyse la suite de symboles issus de lanalyseur
lexical et vrifie si cette suite de symboles est conforme la syntaxe du langage telle
quelle est dfinie par les rgles de Backus-Naur. Pour cela, lanalyseur syntaxique
essaye de construire larbre syntaxique correspondant au programme. Dans cet arbre,
les feuilles correspondent aux symboles issus de lanalyse lexicale et les nuds intermdiaires correspondent aux objets grammaticaux. Si lanalyseur syntaxique ne
parvient pas construire larbre syntaxique du programme compil, alors cela traduit
le fait que la syntaxe du programme est errone.
BNF
A
n
a
l
y
s
e
u
r

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)

Dunod La photocopie non autorise est un dlit.

<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

3 La chane de production de programmes

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 de declarations >

<suite daffectations>

DEBUT
( 8)

<affectation>

<identificateur>
G ( 17)

( 5) ?
NON => erreur

Figure 3.5

Arbre syntaxique impossible construire sur lanalyse de G 5 = 2.

La construction des arbres syntaxiques fait apparatre la ncessit davoir dfini la


grammaire du langage sans ambigut afin qu aucun moment, une suite de symboles
issue de lanalyse lexicale puisse correspondre plusieurs rgles de production diffrentes, ce qui conduirait une interprtation du sens du programme peut-tre diffrente
de celle voulue par le programmeur.
3.1.4 Analyse smantique
Lanalyse smantique constitue la troisime tape danalyse du compilateur. Elle a
pour but dassocier un sens aux diffrentes phrases du programme source. Ce travail
recouvre principalement deux points diffrents :
reconnatre les objets manipuls et analyser leurs proprits : quel est le type de
lobjet, sa dure de vie, sa taille et son adresse ?
contrler que lutilisation de ces objets se fait de manire cohrente : ce niveau,
lanalyse smantique recherche les erreurs de typage, les dclarations multiples,
absentes ou inutiles, les expressions incohrentes.
Soit, par exemple, le programme Ada suivant :
procedure prog_ada is
float i;
variable i de type rel
integer A, B;
variables A et B de type entier
tab : array(1.5) of float; tableau de 5 rels

3.1 La compilation

43

begin
A : = 5;
B : = A/2;
for (i = 1 to 5)
loop
tab(i) : = B + i;
end loop;
end;

Dunod La photocopie non autorise est un dlit.

Lanalyseur smantique signale dans ce programme deux erreurs smantiques dues


des incohrences de type :
le rsultat de lopration A/2 donne un rsultat qui est de type rel alors que la
variable B est dclare de type entier;
la variable i qui permet de parcourir lensemble des cases du tableau tab dans la
boucle est de type rel.
procedure prog_ada is
float B;
variable B de type rel
integer A, i;
variables A et i de type entier
tab : array(1.5) of float; tableau de 5 rels
begin
A : = 5;
B : = A/2;
for (i = 1 to 5)
loop
tab(i) : = B + i;
end loop;
end;
Dans le programme corrig comme ci-dessus, la phrase tab(i) : = B + i; pose
encore problme car elle amne additionner entre elles une variable de type entier (i)
avec une variable de type rel (B). Dans ce dernier cas, le compilateur peut insrer de
lui-mme un ordre de conversion de la variable i du type entier vers rel, comme lexplicite lexemple suivant.
procedure prog_ada is
float B;
variable i de type rel
integer A, i;
variables A et B de type entier
tab : array(1.5) of float; tableau de 5 rels
begin
A : = 5;
B : = A / 2;
for (i = 1 to 5)
loop
tab(i) : = B + (entierversreel)i;
end loop;
end;

44

3 La chane de production de programmes

3.1.5 Gnration du code final


La table des symboles

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

TABLE DES SYMBOLES DU PROGRAMME Z.

Nom de lobjet

Type

Taille (octets)

Adresse

entier

(0)16

entier

(4)16

C2

entier

(8)16

Gnration du code et optimisation

La gnration du code constitue ltape ultime de la compilation. Elle consiste


produire dans un fichier objet le code machine quivalent au code du langage de haut
niveau. Elle se dcompose gnralement en trois tapes : la gnration dun code intermdiaire, loptimisation de ce code intermdiaire, enfin, la gnration du code final.
Le code obtenu ce niveau est appel code relogeable, cest--dire que toutes les
adresses des objets figurant dans ce code sont calcules en considrant que ladresse
du premier octet du code est gale 0.
Gnration dun code intermdiaire

La gnration du code intermdiaire consiste remplacer les phrases reconnues par


des macros plus aisment manipulables. Les objets sont eux-mmes remplacs par
ladresse qui leur a t affecte dans la table des symboles. Les macros ne sont pas
des instructions machine; elles sen diffrencient notamment par le fait quelles ne
font aucune rfrence aux registres de la machine et restent donc indpendantes de
larchitecture de celle-ci. Ainsi le programme Z suivant pourra tre transform de
faon ce que INIT a b soit une macro dinitialisation qui initialise lobjet a avec la
valeur b, la macro DIV a b c correspond la division de lobjet b par lobjet c avec
stockage du rsultat dans lobjet a et enfin la macro ADD a b c reprsente laddition
de lobjet b par lobjet c avec stockage du rsultat dans lobjet a.

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

Optimisation du code intermdiaire

Dunod La photocopie non autorise est un dlit.

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

3 La chane de production de programmes

est transform de la manire suivante :


for i = 1 to n
loop
a = a + 5;
end loop;
On remarquera que lensemble des oprations prsentes dans le programme Z
peuvent tre effectues par la phase doptimisation et que le programme Z peut ainsi
se rsumer trois macros dinitialisation INIT.
PROGRAM Z
Z :
INT A;
(0)16
INT B;
(4)16
INT C2;
(8)16
DEBUT
A = 4;
INIT (0)16 4
B = A / 2;
B = 2;
DIV (4)16 (0)16 2
INIT (4)16 2
C2 = B + A; C2 = 6;
ADD (8)16 (4)16 (0)16 INIT (8)16 6
FIN
STOP
Gnration du code final

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

LDITION DES LIENS

3.2.1 Rle de lditeur de liens


Ldition des liens constitue la deuxime tape du processus de production de
programmes. Elle permet la construction du programme excutable final en rsolvant
les liens vers les bibliothques ou entre diffrents modules objets construits laide
de compilations spares.

3.2 Ldition des liens

47

Nous avons vu que le compilateur traduit un programme crit en langage de haut


niveau vers un programme objet, crit en langage machine. Toute modification intervenant au niveau du programme source en langage de haut niveau ne peut tre prise
en compte que par le biais dune opration de compilation, qui traduit la modification
en langage machine. Or, la dure dune opration de compilation est fortement lie
la taille du programme source compiler : plus celui-ci est gros, plus la compilation
est longue. Cest pourquoi on prfre souvent, pour lcriture dun gros programme,
dcouper celui-ci en modules, compilables sparment. Un module correspond souvent
une unit logique du programme : une procdure avec les donnes quelle manipule, le programme principal, etc. La compilation spare de chacun des modules
source donne autant de modules objet. La construction du programme excutable
final est alors la charge de lditeur de liens, qui doit relier les modules objets entre
eux pour construire un seul programme excutable.
Par ailleurs, les modules utilisateurs vont souvent faire appel des fonctions
prdfinies disponibles dans des bibliothques du langage de haut niveau utilis : par
exemple, les fonctions mathmatiques, les fonctions graphiques, linterface des fonctions du systme. Cest galement le rle de lditeur de liens que de faire la liaison
entre les appels ces fonctions dans le code source utilisateur et le code de ces fonctions, stock dans les bibliothques. Pour effectuer ces oprations de liaison entre
modules utilisateurs et fonctions de bibliothques, lditeur de liens utilise des informations de liaison, crites en entte de chaque module par le compilateur : ce sont
les liens satisfaire et les liens utilisables des modules.
3.2.2 Fonctionnement de lditeur de liens
Nous allons prsent dcrire le fonctionnement de lditeur de liens. partir dun
exemple, nous commenons par dfinir les notions de liens utilisables et de liens
satisfaire.
Notion de lien utilisable et de lien satisfaire

Dunod La photocopie non autorise est un dlit.

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

3 La chane de production de programmes

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;

3.2 Ldition des liens

49

procdure rserver_livre(in chane de caractres cote_livre);


dbut
code qui effectue une rservation de livre dans le catalogue
de la bibliothque
appelle une fonction crire_fichier de la bibliothque du langage
fin;
fin module
module affichage;
export afficher;
procdure afficher(in liste liste_livre);
dbut
code qui effectue un affichage des livres de la liste liste_livre;
appelle une fonction affiche_cran de la bibliothque du langage
fin
fin module;

Le module interface fait appel :

Dunod La photocopie non autorise est un dlit.

aux procdures poser_question et lire_rponse qui sont dfinies dans le module


mme;
aux procdures chercher_livre, rserver_livre et afficher qui ne sont pas dfinies localement mais dans les deux autres modules (respectivement recherche et
affichage);
aux procdures lit_clavier et affiche_cran qui elles aussi ne sont pas dfinies
localement mais appartiennent une bibliothque du langage.
Pour sa part, le module recherche fait appel aux procdures lire_fichier et
crire_fichier qui ne sont pas dfinies localement mais appartiennent une bibliothque du langage.
Enfin, le module affichage fait appel la procdure affiche_cran qui nest pas
dfinie localement mais appartient une bibliothque du langage.
Pour chacun de ces modules, ces appels des objets qui ne sont pas dfinis localement correspondent des importations dobjets. Ainsi, le module interface importe
les objets chercher_livre, rserver_livre et afficher ainsi que les objets lit_clavier
et affiche_cran. Le module rechercher importe les objets lire_fichier et crire_
fichier et le module affichage importe lobjet affiche_cran.
Cependant pour que des objets puissent tre imports dans un module, il faut que
le module dans lequel ces objets sont dfinis exporte ces mmes objets, cest--dire
quil rende ces objets accessibles depuis lextrieur. Cest le rle des lignes de code
export chercher_livre, rserver_livre; et export afficher; places en en-tte des
modules rechercher et affichage. On parlera ici dexportation dobjets. La figure 3.6
schmatise les relations entre les trois modules.

50

3 La chane de production de programmes

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

Relation dimportation et dexportation dobjets


entre les modules affichage, interface et rechercher.

Lors de la compilation spare de chacun de ces modules, le code objet final ne va


pas pouvoir tre compltement gnr puisque les modules contiennent des objets
qui ne sont pas dclars localement. Le compilateur notamment ne connat pas
ladresse dimplantation de ces objets. Aussi, chaque fois que le compilateur va
trouver dans un module, un objet import, cest--dire un objet utilis dans le
module mais non dfini dans le module, il va gnrer un lien satisfaire concernant
cet objet. Le lien satisfaire correspond une demande du compilateur lintention
de lditeur de liens pour que celui-ci trouve dans un autre module, la dclaration de
lobjet cherch et ainsi son adresse. Lditeur de liens va rechercher lobjet en question parmi les objets exports par dautres modules. Aussi, lorsque le compilateur
dans un module rencontre des dclarations dobjets exports, il cre un lien utilisable. Un lien utilisable signale lditeur de liens la prsence dans un module dun
objet export.

3.2 Ldition des liens

51

Exemples dimportation et dexportation dobjets

dans les langages de programmation de haut niveau

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 :

Dunod La photocopie non autorise est un dlit.

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

3 La chane de production de programmes

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>

3.2 Ldition des liens

53

LAS <affiche_cran, adr_m_affichage_2>


code objet translatable correspondant au module dans lequel ladresse
adr_m_affichage_1 correspond ladresse de la procdure afficher
dans le module et o adr_m_affichage_2 correspond lappel
vers la procdure affiche_cran.
fin module;
Fonctionnement de lditeur de liens

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.

Dunod La photocopie non autorise est un dlit.

Construction de la carte dimplantation

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

3 La chane de production de programmes

Compilation : modules ayant


pour premire adresse la valeur 0

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 :

le module interface.o a une adresse dimplantation gale 0;


le module recherche.o a une adresse dimplantation gale 512 Ko;
le module affichage.o a une adresse dimplantation gale 652 Ko;
la taille totale du programme excutable final est 780 Ko.

Construction de la table des liens

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;

3.2 Ldition des liens

Dunod La photocopie non autorise est un dlit.

table des liens : tableau (1.1000) de structure entre_table_des_liens;


la table des liens
le_lien : structure lien;
pour tous les modules de la liste
faire
se placer sur le premier lien de len-tte;
tant que (il y a un lien dans len-tte du module)
faire
si (table_des_liens.nom_objet < > lien.nom_objet pour toutes
les entres de la table)
alors
lobjet nexiste pas dans la table
crer une nouvelle entre nv_entree dans table_des_liens
pour laquelle nom_objet = lien.nom_objet;
si lien.genre = LU
alors
nv_entree.adresse_objet : = lien.adresse_objet +
adr_implantation_module;
fsi
si lien.genre = LAS
alors
nv_entree.adresse_objet : = indfinie;
fsi
sinon
il existe une entre dans la table pour laquelle
nom_objet = lien.nom_objet : cest entree_trouvee
si (lien.genre = LU et entree_trouvee.adresse_objet = indefinie)
alors
resolution LAS/LU
entree_trouvee.adresse_objet : = lien.adresse_objet +
adr_implantation_module;
fsi
si (lien.genre = LU et entree_trouvee.adresse_objet < > indefinie)
alors
deux LU pour un seul LAS : ERREUR
fsi
si (lien.genre = LAS)
alors
ne rien faire
fsi
fsi
passer au lien suivant;
fait
passer au module suivant;
fait

55

56

3 La chane de production de programmes

Lapplication de cet algorithme aux trois modules interface.o, recherche.o et


affichage.o mne construire la table des liens suivante :
prise en compte du module interface.o (tableau 3.2) :
Tableau 3.2

TABLE DES LIENS

APRS LA PRISE EN COMPTE DU MODULE INTERFACE.O.

Nom de lobjet

Adresse dans la carte dimplantation

Commentaire

chercher_livre

indfinie

LAS

afficher

indfinie

LAS

rserver_livre

indfinie

LAS

lit_clavier

indfinie

LAS

affiche_cran

indfinie

LAS

prise en compte du module recherche.o (tableau 3.3) :


Tableau 3.3

TABLE DES LIENS

APRS LA PRISE EN COMPTE DU MODULE RECHERCHE.O.

Nom de lobjet

Adresse dans la carte dimplantation

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

prise en compte du module affichage.o (tableau 3.4) :


Tableau 3.4

TABLE DES LIENS

APRS LA PRISE EN COMPTE DU MODULE AFFICHAGE.O.

Nom de lobjet

Adresse dans la carte dimplantation

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

3.2 Ldition des liens

57

Prise en compte des bibliothques du langage

lissue de la prise en compte des diffrents modules utilisateurs entrant dans la


construction du programme excutable final, il peut rester des entres de la table des
liens pour lesquelles le champ adresse est toujours gal la valeur indfinie. ce
niveau, lditeur de liens peut suivre deux comportements diffrents selon si ldition
des liens demande est une dition des liens statique ou une dition des liens dynamique. Ces deux types dditions des liens dfinissent le comportement de lditeur
de liens vis--vis des bibliothques du langage.
Une bibliothque est une collection de modules objets prdfinis et fournie avec
la chane de production de programme relative au langage. Elle permet au programmeur de faire appel ces fonctions sans avoir videmment les crire. Les bibliothques principales sont notamment :
la bibliothque mathmatique qui fournit des fonctions mathmatiques standard
telles que la fonction racine carre, la fonction puissance ou encore les fonctions
trigonomtriques
la bibliothque graphique qui fournit des fonctions dinterface graphique permettant de dessiner des traits, des ronds, de se positionner sur lcran
la bibliothque dinterface avec le systme dexploitation qui contient les procdures
permettant lappel aux services du systme dexploitation, telles que ouvrir_fichier,
fermer_fichier, lire_donnes, etc.

Dunod La photocopie non autorise est un dlit.

dition des liens statique


Lors dune dition des liens statique, lditeur de liens va rechercher les objets
encore manquants lissue de la prise en compte des modules utilisateurs dans les
bibliothques du langage. Les bibliothques prendre en compte par lditeur de
liens lui sont indiques en mme temps que la liste des modules objets utilisateur
entrant dans la composition du programme excutable final.
Exemple
La commande ld l nom_bib o fich_exe module1.o module2.o permet la construction du programme excutable fich_exe partir des modules objets utilisateurs
module1.o module2.o ainsi que de la bibliothque nom_bib sous un systme de type
Unix.
Les objets trouvs sont extraits des bibliothques et placs dans la carte dimplantation du programme en cours de construction la suite des modules utilisateurs. La
table des liens est complte. lissue de la prise en compte des bibliothques,
aucune entre de la table des liens ne doit rester avec une entre pour laquelle le
champ adresse est indfini. En effet, un tel cas de figure traduit le fait quun objet na
pas t trouv et donc la construction du programme final nest pas possible.
Reprenons prsent notre exemple. Lditeur de liens va rechercher prsent les
4 objets non rsolus dans la bibliothque spcifie dans la commande ddition des
liens. Appelons la_bibliothque, cette bibliothque; elle a le format suivant :

58

3 La chane de production de programmes

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 :

le module interface.o a une adresse dimplantation gale 0;


le module recherche.o a une adresse dimplantation gale 512 Ko;
le module affichage.o a une adresse dimplantation gale 652 Ko;
le module lit_clavier.o a une adresse dimplantation gale 780 Ko;
le module affiche_ecran.o a une adresse dimplantation gale 785 Ko;
le module lire_fichier.o a une adresse dimplantation gale 805 Ko;
le module crire_fichier.o a une adresse dimplantation gale 820 Ko;
la taille totale du programme excutable final est 850 Ko.
La table des liens devient (tableau 3.5) :
Tableau 3.5

TABLE DES LIENS APRS LA PRISE EN COMPTE DE LA BIBLIOTHQUE

LA_BIBLIOTHQUE.

Nom de lobjet

Adresse dans la carte dimplantation

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

dition des liens dynamique


Lors dune dition des liens dynamique, lditeur de liens ne recherche pas dans les
bibliothques du langage les objets qui nont pas t trouvs dans les modules utilisateurs. La table des liens reste donc avec des entres pour lesquelles le champ
adresse est une valeur indfinie.
La rsolution des liens vis--vis des modules objet appartenant des bibliothques
est repousse une tape ultrieure, soit au moment du chargement du programme en
mmoire centrale, soit au moment de son excution et de lappel lobjet non rsolu.
Construction du programme excutable final

La dernire tape est la construction du programme excutable final proprement


dite. Dans un premier temps toutes les adresses dans les modules sont translates de
la valeur de ladresse dimplantation du module. Dans un second temps, les rfrences
aux liens satisfaire dans les modules sont remplaces par ladresse de lobjet telle
quelle est dfinie dans la table des liens (figure 3.8). Le programme excutable
obtenu est stock sur un support de masse, tel quun disque dur.
Carte dimplantation

nom de lien

Module B
<LAS nom de lien>

Module C

Module A

taille (B)

taille (B) + taille (C)

adresse

Translation des adresses du module C


dune valeur gale taille (B)
Translation des adresses du module A
dune valeur gale taille (B) + taille (C)

Table des liens

Dunod La photocopie non autorise est un dlit.

Figure 3.8

3.3

Construction du programme excutable final.

LE CHARGEMENT

3.3.1 Rle du chargeur


Le chargement constitue la dernire tape de la chane de production de programmes
et met en uvre loutil chargeur. Le chargeur est appel lorsque lutilisateur souhaite
excuter son programme. Le chargeur copie alors le programme excutable depuis le
disque vers la mmoire centrale.
Le fichier excutable stock sur le disque par lditeur de liens est qualifi de
fichier relogeable : toutes les adresses des instructions et des donnes dans ce code

60

3 La chane de production de programmes

excutable sont calcules partir de 0, cest--dire que le premier octet du code


excutable une adresse gale 0. Lorsque le chargeur copie le code excutable
depuis le disque vers la mmoire centrale, il implante le code dans un espace libre de
la mmoire centrale, dont le premier octet na pas forcment ladresse 0 (et gnralement jamais car la mmoire haute est rserve au systme), mais une adresse quelconque appele adresse dimplantation mmoire. Toutes les adresses adr calcules
dans le programme excutable stock sur le disque doivent donc tre modifies pour
tenir compte de cette adresse dimplantation mmoire : cest lopration de translation des adresses qui consiste ajouter chaque adresse adr apparaissant dans le
programme excutable du disque, la valeur de ladresse dimplantation mmoire
(figure 3.9).
diteur de texte

Compilateur

Adresse dimplantation
en mmoire centrale

adr

chargeur

adresse
dimplantation

diteur de liens

0 adr
Programme relogeable
Excutable sur disque
Figure 3.9

Chargement du programme excutable relogeable.

Deux types de chargement peuvent tre distingus :


le chargement statique : dans ce cas, lopration de translation des adresses adr est
effectue une fois pour toutes au moment du chargement et les adresses sont modifies dans le programme excutable;
le chargement dynamique : dans ce cas, lopration de translation nest pas effectue au moment du chargement, mais seulement au moment o le processeur utilise
une adresse relogeable au cours de lexcution. La valeur de ladresse dimplantation du programme en mmoire centrale est conserve dans un registre du processeur appel le registre de translation et elle est ajoute ladresse adr seulement
au moment o le processeur utilise adr.

3.3 Le chargement

61

3.3.2 Chargement et dition des liens dynamique


Nous avons vu prcdemment que lors dune dition des liens dynamique, lditeur
de liens ne recherche pas dans les bibliothques du langage les objets pour lesquels
des liens nont pas t rsolus une fois les modules objets utilisateurs entrant dans la
composition du programme excutable pris en compte. Le programme excutable
construit alors est incomplet puisque des objets nont pas dadresse. En effet, dans le
cas dune dition des liens dynamique, la prise en compte des bibliothques est
repousse ltape de chargement. Dans ce cas les bibliothques du langage sont
charges en mmoire centrale. Lors du chargement du programme excutable de
lutilisateur, le chargeur rsout les liens restants en fonction des adresses en mmoire
centrale des objets appartenant aux bibliothques.
Ce mode opratoire prsente un avantage et un inconvnient vis--vis de ldition
des liens statique. Lors dune dition des liens statique, lditeur des liens extrait des
bibliothques les objets utiliss par les modules utilisateurs et les ajoute la carte
dimplantation du programme excutable en cours de construction. Imaginons que
lditeur de liens ait construit deux programmes utilisateurs faisant rfrence la
mme fonction mathmatique SQRT1. Si ces deux programmes utilisateurs sont chargs
en mme temps en mmoire centrale, alors le code de la fonction SQRT se trouvera
galement deux fois en mmoire centrale, une fois dans chacun des programmes utilisateurs. Cette duplication engendre ici une perte de place inutile en mmoire centrale.
Ldition des liens dynamique rsout ce problme puisque la fonction SQRT se trouvera une seule fois en mmoire centrale, au sein de la bibliothque (figure 3.10).
DITION
DE LIENS STATIQUE

DITION
DE LIENS DYNAMIQUE
Bibliothque math.lib
Fonction SQRT()

Dunod La photocopie non autorise est un dlit.

Module A
appel SQRT()
Fonction SQRT()

Module A
appel SQRT()

Module B
appel SQRT()

Module B
appel SQRT()

Fonction SQRT()

Figure 3.10

1. Fonction racine carre.

Chargement du programme excutable relogeable.

a
l u
i
e c
n h
a
r r
g
s e
o m
l e
u n
t

62

3 La chane de production de programmes

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()
{

Cet outil utilise deux sources dinformations : un fichier de description appel le


Makefile qui contient la description des dpendances entre les modules et les noms
et les dates de dernires modifications des modules.
3.4.1 Format du fichier Makefile
Le fichier Makefile dcrit les dpendances existantes entre les modules intervenant
dans la construction dun excutable : il traduit sous forme de rgles le graphe de
dpendance du programme excutable construire et indique pour chacune de ces
dpendances, laction qui lui est associe.
Une rgle dans le fichier Makefile est de la forme :
module cible : dpendances
commande pour construire le module cible

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

3.4 Lutilitaire Make

63

par le biais dun ordre dinclusion #include. Le graphe de dpendance du programme


prog est donn sur la figure 3.11.
Le fichier Makefile rsultant est :
prog : x.o y.o z.o
ld x.o y.o z.o o prog
x.o : defs x.c
cc o x.c
y.o : defs y.c
cc c y.c
z.o : z.c
cc c z.c
La premire rgle stipule la dpendance associe au programme excutable prog
qui est donc construit partir des modules x.o, y.o et z.o. La commande permettant
la construction du programme excutable prog partir de ces trois modules objets
est la commande ddition des liens ld x.o y.o z.o o prog.
prog

excutable

dition des liens


z.o

y.o

x.o

objets

Compilation
x.c

defs

Figure 3.11

y.c

z.c

sources

Graphe de dpendance du fichier prog.

Dunod La photocopie non autorise est un dlit.

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 La chane de production de programmes

lancer la commande associe la rgle de dpendance du module z.o, soit la


commande de compilation cc c z.c. Lexcution de cette commande va son tour
gnrer un module z.o plus rcent que le programme excutable prog. En consquence, lutilitaire Make va reconstruire le programme excutable prog en lanant la
commande ddition des liens ld x.o y.o z.o o prog. Dune faon similaire, toute
modification au sein du module defs entranera la reconstruction des modules y.o et
x.o, par le biais de deux oprations de compilation, puis la reconstruction du
programme excutable prog. Dans ces deux cas, seules les oprations de compilation
ou ddition des liens ncessaires sont excutes.
Lutilitaire Make est appel au moyen de la commande make prog qui suppose
quun fichier Makefile est prsent dans le rpertoire o la commande est lance. La
commande make f nom_fichier prog fait galement appel lutilitaire Make mais
avec un fichier de dpendance appel nom_fichier et non Makefile.

3.5

CONCLUSION

Ce chapitre nous a permis dtudier la chane de production de programmes compose


des tapes de compilation, dition des liens et chargement.
Un compilateur est un logiciel qui traduit un programme source crit en langage
de haut niveau en un programme objet en langage de bas niveau. Lanalyse lexicale
reconnat dans la suite de caractres qui constitue le programme les symboles du
langage. Lanalyse syntaxique vrifie que la syntaxe du programme est conforme aux
rgles du langage. Lanalyse smantique trouve le sens et la signification des diffrentes
phrases du langage. Enfin, la gnration de code final consiste gnrer un code
machine relogeable. Ce code final est gnr partir dun code intermdiaire optimis.
Un diteur de liens est un logiciel qui permet de combiner plusieurs modules objet
obtenus par compilation spare pour construire un seul programme excutable. Un
lien utilisable correspond un objet export par un module. Un lien satisfaire correspond un objet import par un module. Le rle de lditeur de liens est de mettre en
correspondance chaque lien satisfaire avec un lien utilisable. Ldition des liens
seffectue en trois tapes qui sont respectivement la construction de la carte dimplantation, la construction de la table de liens et enfin la construction du programme
excutable final.
Le chargeur est un logiciel qui installe un programme excutable en mmoire
centrale en translatant toutes les adresses de celui-ci de la valeur de ladresse dimplantation du programme. ventuellement, il achve la rsolution des liens.

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

LA REPRSENTATION DES INFORMATIONS

Les circuits physiques de la machine sont conus partir de transistors rassembls


sur une puce de silicium. Un transistor fonctionne selon une logique deux tats :
soit le transistor est passant, auquel cas ce circuit dlivre une tension comprise
entre 2 et 5 volts, soit le transistor est bloquant auquel cas le circuit dlivre une tension
comprise entre 0 et 1 volt. Ces deux tats logiques, conventionnellement nots 1
et 0, correspondent aux deux seules valeurs lmentaires disponibles pour reprsenter linformation au niveau physique.
Le codage de linformation se fait donc dans une base de reprsentation qui est la
base 2. Toute information est reprsente comme tant quivalente une chane binaire

66

4 Le langage machine et la reprsentation des informations

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

Soit le nombre NX = dn di d2d1d0, d 1 d i d m, exprim dans la base X,


avec dn le digit de poids fort et d m le digit de poids faible, alors N scrit :
NX =

d X avec n i m
i

Ainsi 1975,5710 = 1 103 + 9 102 + 7 101 + 5 100 + 5 10 1 + 7 10 2.


Dans le reste de ce chapitre, nous allons manipuler des nombres exprims dans la
base 2, la base 10, la base 8 ou la base 16. Pour viter toute confusion dinterprtation,
nous prendrons lhabitude de prciser ct du nombre, en indice, la valeur X de sa
base dexpression tel que cela est fait ici pour le nombre 1975,5710 exprim selon la
Chiffres autoriss selon la base X de reprsentation

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.

4.1 La reprsentation des informations

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.

Mthode des divisions successives


N est itrativement divis par X jusqu obtenir un quotient gal 0. La conversion
du nombre N dans la base X est obtenue en notant les restes de chacune des divisions
effectues depuis la dernire division jusqu la premire.
Nota : les restes sont obligatoirement infrieurs X.
Exemple
La figure 4.1 donne la conversion de 23510 en base 2 : 23510 = 111010112.
235
1

2
117
1

2
58
0

2
29
1

2
14
0

Dunod La photocopie non autorise est un dlit.

7
1

2
3
1

2
1
1

2
0

Figure 4.1

Mthode des divisions.

Mthode des soustractions


La plus grande puissance de X qui est infrieure ou gale N est soustraite N. Le
processus de soustraction est rpt sur le reste de la diffrence, jusqu obtenir un

68

4 Le langage machine et la reprsentation des informations

rsultat gal 0. Le nombre N exprim en base X est alors obtenu en notant le


nombre de fois o une mme puissance de X a t retire et ce pour chaque puissance depuis la plus grande apparaissant, dans lordre dcroissant des puissances.

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

Lorsque le nombre N est fractionnaire, la conversion de sa partie entire vers une


base X seffectue avec lune des deux mthodes que nous venons de voir. La conversion de la partie fractionnaire, par contre, seffectue en multipliant cette partie fractionnaire par X. La multiplication est itre sur la partie fractionnaire du rsultat
obtenu. La conversion de la partie fractionnaire du nombre N est obtenue par la suite
des parties entires de chacun des rsultats des multiplications effectues.

Exemples
Convertir 0,4510 en base 2 :

0,45 2 = 0,9 = 0 + 0,9


0,90 2 = 1,8 = 1 + 0,8
0,8 2 = 1,6 = 1 + 0,6
0,6 2 = 1,2 = 1 + 0,2
0,2 2 = 0,4 = 0 + 0,4
0,4 2 = 0,8 = 0 + 0,8
0,8 2 = 1,6 = 1 + 0,6
0,6 2 = 1,2 = 1 + 0,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

Le nombre NX = dn di d2d1d0, d 1 d i d m, exprim dans la base X, avec dn


le digit de poids fort et d m le digit de poids faible est converti vers la base 10 en appliquant la formule suivante :
NX = dn Xn + + di Xi + + d2 X2 + d1 X1 + d0 X0 + d 1 X 1 + +
d i X i + + d m X m = M10

4.1 La reprsentation des informations

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

Dunod La photocopie non autorise est un dlit.

Conversion de la base 16 vers la base 2 (et vice versa)

Le mme principe sapplique strictement la conversion entre la base 16 et la base 2.


Les chiffres admis pour la base 16 sont maintenant les chiffres allant de 0 15, soit
un total de 16 chiffres. 4 bits sont ncessaires pour reprsenter ces 16 valeurs.
Convertir un nombre N exprim en base 16 vers la base 2 seffectue en remplaant simplement chacun des chiffres du nombre X en base 16 par leur quivalent
binaire sur 4 bits.
Convertir un nombre N exprim en base 2 vers la base 16 seffectue en dcoupant
la chane binaire N en paquet de 4 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 4 bits par leur quivalent dans la base 16.

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

4 Le langage machine et la reprsentation des informations

Plusieurs conventions de reprsentation existent. Le choix entre lune ou lautre


des conventions est effectu par le constructeur de la machine et ventuellement par
le programmeur en fonction du type affect aux variables dclares. Par exemple,
dans le langage C, une dclaration avec un type int, dtermine une reprsentation
sur 2 octets selon la convention du complment 2. Une dclaration avec un type
unsigned short dtermine au contraire une reprsentation dun nombre sur 8 bits,
non sign.
Convention de la valeur signe

Dans la convention de la valeur signe, la chane de n bits bn 1 b0 reprsentant le


nombre sign est interprte comme suit :
le bit de poids fort bn 1 est le bit de signe. Si sa valeur est 0, alors le nombre cod
est positif. Si sa valeur est 1, alors le nombre cod est ngatif;
les autres bits bn 2 b0 codent la valeur absolue du nombre.

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

INTERVALLES DES NOMBRES

REPRSENTABLES EN VALEUR SIGNE.

Longueur de la chane de bits

Intervalle en base 10

8 bits

[ 127, + 127]

16 bits

[ 32 767, + 32 767]

32 bits

[ 2 147 483 647, + 2 147 483 647]

p bits

[ 2p 1 1, + 2p 1 1]

4.1 La reprsentation des informations

71

Convention du complment 2
Complment 2 dun nombre binaire N

Le complment 2 ou complment vrai dun nombre binaire N = bn 1 b0 sobtient


en ajoutant la valeur + 1 au complment restreint ou complment 1 de ce nombre.
Le complment 1 ou complment restreint dun nombre binaire N = bn 1 b0
sobtient en inversant la valeur de chacun des bits de ce nombre.

Exemple
complment restreint
complment vrai

100010012
011101102
+
12
011101112

Convention du complment 2

Dans la convention du complment 2, un nombre ngatif N exprim sur n bits est


reprsent en prenant le complment 2 de son quivalent positif + N. Un nombre
positif + N est quant lui reprsent par sa valeur binaire sur n bits.

Exemple
Reprsentation de + 7710 sur 8 bits : 010011012
Reprsentation de 7710 sur 8 bits : + 7710
010011012
complment restreint
101100102
+
12
7710
complment vrai
101100112

Dunod La photocopie non autorise est un dlit.

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

4 Le langage machine et la reprsentation des informations

Les remarques suivantes peuvent tre faites propos de cette reprsentation :


une seule reprsentation du zro est admise : 000000002 = (+ 0)10 sur 8 bits.
lintervalle des nombres signs reprsentables (tableau 4.2) est born en fonction
de la longueur de la chane binaire utilise pour la reprsentation. Ainsi, sur 8 bits,
lintervalle des nombres reprsentables est [100000002, 0111111112], soit lintervalle [ 12810, + 12710]. La chane 100000002 complmente 2 donne de nouveau
la chane 100000002. Par convention, elle reprsente la valeur 12810 ;
la ralisation dune soustraction ne ncessite pas de circuit particulier. Soustraire
un nombre A un autre nombre B quivaut additionner au nombre B le complment 2 du nombre A.
Tableau 4.2

INTERVALLES DES NOMBRES REPRSENTABLES EN COMPLMENT 2.

Longueur de la chane de bits

Intervalle en base 10

8 bits

[ 128, + 127]

16 bits

[ 32 768, + 32 767]

32 bits

[ 2 147 483 648, + 2 147 483 647]

p bits

[ 22p 1, + 2p 1 1]

Convention du codage DCB (Dcimal Cod Binaire)

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

4.1 La reprsentation des informations

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

Ce qui quivaut effectivement au nombre 10310.


Notion de carry et doverflow
Notion de carry

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 :

Dunod La photocopie non autorise est un dlit.

0111 11112
+ 1111 11102
1 0111 11012

Le 9e bit qui apparat est le bit de carry.


Notion doverflow

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

4 Le langage machine et la reprsentation des informations

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 caractristique c est translate de manire toujours coder en interne une valeur


positive. Ainsi, seule la valeur de c a besoin dtre reprsente.
Supposons que 5 bits soient rservs au codage de la caractristique. Les valeurs
positives allant de + 010 + 3110 sont reprsentables pour la caractristique c, ce qui
permet en appliquant une translation k gale 1610 de reprsenter les exposants allant
de 1610 + 1510. La constante k est appele constante dexcentrement.
Un exemple : le format IBM

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 :

4.1 La reprsentation des informations

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

Le format IBM 32 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

Dunod La photocopie non autorise est un dlit.

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

M en base 2, avec un bit cach 1

23 bits

32 bits

Simple prcision

0 + puissance de 2
1 excdent 102310
S

11

M en base 2, avec un bit cach 1


52 bits
64 bits
Figure 4.3

Les formats IEEE 754.

Double prcision

76

4 Le langage machine et la reprsentation des informations

Dans le format simple prcision, la chane de 32 bits reprsentant le nombre est


dcompose en 1 bit pour le signe de la mantisse, 8 bits pour lexposant et 23 bits
pour le codage de la mantisse.
Dans le format double prcision, la chane de 64 bits reprsentant le nombre est
dcompose en 1 bit pour le signe de la mantisse, 11 bits pour lexposant et 52 bits
pour le codage de la mantisse.
La mantisse est normalise sous la forme 1,M 2 c o M est un nombre quelconque. On parle alors de pseudo-mantisse. Le 1 prcdant la virgule nest pas cod
en machine et est appel bit cach. Le signe de la mantisse est cod sur un bit (bit de
poids fort de lentier de 32 bits ou de 64 bits) valant 0 si la mantisse est positive, et 1
si elle est ngative. La valeur du nombre M est code selon la base 2.
Pour le format simple prcision, la constante k dexcentrement applique
lexposant est gale + 12710. Elle est gale + 1 02310 pour le format double prcision. Lexposant c cod en interne est alors gal c + 12710 ou c + 1 02310.

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.

4.1 La reprsentation des informations

Tableau 4.3

77

RSUM DES FORMATS DE LA NORME IEEE 754.

Format

Valeurs reprsentes

Normalis - 126 c + 127

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

4.1.4 Reprsentation des caractres


La reprsentation des caractres seffectue par lassociation dune chane binaire
chaque caractre. Selon la longueur de la chane binaire choisie par le code, le nombre
de caractres pouvant tre cods est plus ou moins important. Le nombre de caractres reprsentables par un code est appel puissance lexicographique du code. Les
caractres reprsenter sont :
dune part les caractres ditables, cest--dire les lettres majuscules et minuscules, les signes de ponctuation, les signes mathmatiques, etc. ce qui reprsente
environ 90 caractres;
dautre part les caractres non ditables ou commandes qui sont rservs la ralisation de fonctions particulires par lordinateur. Par exemple le caractre BEL
provoque le retentissement dune sonnerie au niveau du terminal.

Dunod La photocopie non autorise est un dlit.

Le code ASCII

Figure 4.4

Table ASCII standard.

78

4 Le langage machine et la reprsentation des informations

Le codage ASCII (American Standard Code for Information Interchange) encore


connu sous le nom dalphabet international no5 est un code 7 bits qui permet donc
de reprsenter 128 caractres. Chacun des codes associs un caractre est donn
dans une table deux entres, la premire entre codant la valeur du quartet de poids
faible et la seconde entre codant la valeur des 3 bits de poids fort du code associ au
caractre (figure 4.4). Ainsi le caractre A est cod par la chane 100 00012 soit le
code hexadcimal 4116.
Le code ASCII est trs utilis sur les processeurs de la famille Intel.
Le code EBCDIC

Le codage EBCDIC (Extended Binary Coded Decimal Interchange Code) est un


code 8 bits permettant donc de coder 256 caractres. Chacun des codes associs un
caractre est donn dans une table deux entres, la premire entre codant la valeur
du quartet de poids faible et la seconde entre codant la valeur du quartet de poids
fort du code associ au caractre (figure 4.5). Ainsi le caractre A est cod par la
chane 1100 00012 soit le code hexadcimal C116.
Le code EBCDIC est trs utilis sur les gros systmes, notamment les systmes de
la famille IBM tels que les architectures 370 et 390.

Figure 4.5

Table EBCDIC standard.

Le code UNICODE

Le codage UNICODE (Universal Code) est un code 16 bits en cours de dfinition


qui a pour but de coder le plus grand nombre possible de symboles en usage dans le
monde. Les 16 bits de code permettent de coder 65 536 caractres diffrents. Le codage

4.2 Les instructions machine

79

UNICODE reprend le codage ASCII en ce qui concerne les principaux caractres, en


tendant le code 16 bits (figure 4.6). Ainsi, le caractre A est cod par la chane hexadcimale 004116. Ce code est utilis notamment sous les processeurs de type Pentium.

Figure 4.6

Dunod La photocopie non autorise est un dlit.

4.2

Table UNICODE standard.

LES INSTRUCTIONS MACHINE

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

Dsignation des oprandes

m bits : 2m instructions diffrentes


00000000 : addition
00100110 : multiplication
etc.
Figure 4.7

Format gnral dune instruction machine.

80

4 Le langage machine et la reprsentation des informations

tion de m bits permet de dfinir 2m oprations diffrentes pour la machine. Le


nombre doprations diffrentes autorises pour une machine dfinit le jeu dinstructions de la machine;
le champ oprandes compos de p m bits : il permet dindiquer la nature des
donnes sur lesquelles lopration dsigne par le code opration doit tre effectue. La faon de dsigner un oprande dans une instruction peut prendre diffrentes
formes : on parle alors de mode dadressage des oprandes.
4.2.1 Les diffrents types dinstructions
Les instructions du langage machine peuvent tre ranges selon six catgories :
les instructions arithmtiques et logiques : ce sont les instructions qui permettent
de raliser les calculs entre nombres (addition, soustraction, multiplication) et les
oprations logiques (ou, et, ou exclusif). Elles mettent en jeu les circuits de lUAL.
Ainsi linstruction ADD Im R1 3 effectue laddition du contenu du registre R1 avec
la valeur immdiate 3 et stocke le rsultat dans le registre R1;
les instructions de transfert de donnes : ce sont les instructions qui permettent de
transfrer une donne depuis les registres du processeur vers la mmoire centrale
et vice versa ainsi quentre registres du processeur. Ainsi linstruction LOAD D R1 3
range la valeur contenue ladresse 3 en mmoire centrale dans le registre R1 tandis
que linstruction STORE D R1 3 crit le contenu du registre R1 ladresse mmoire 3;
les instructions dentres-sorties : ce sont les instructions qui permettent au processeur de lire une donne depuis un priphrique (par exemple le clavier) ou dcrire
une donne vers un priphrique (par exemple limprimante);
les instructions de rupture de squence dexcution encore appeles instructions
de saut ou de branchement : ce sont des instructions qui permettent de rompre
lexcution squentielle des instructions dun programme. Linstruction excute
la suite dun saut nest pas celle qui suit immdiatement linstruction de saut,
mais celle dont ladresse a t spcifie dans linstruction de saut. On distingue ici
deux types dinstructions de sauts. Les instructions de sauts inconditionnels effectuent toujours le dbranchement de lexcution ladresse spcifie. Les instructions
de sauts conditionnels effectuent ce dbranchement si et seulement si une condition lie aux indicateurs du registre dtat de lUAL est vrifie. Ainsi linstruction JMP D 128 effectue toujours un branchement dans le code du programme
ladresse 128 tandis que linstruction JMPO D 128 effectue ce mme branchement
si et seulement si un dpassement de capacit est positionn dans le registre dtat
de lUAL (indicateur O);
les instructions dappels de sous-programmes (CALL, RET) qui permettent de modifier la valeur courante du compteur ordinal CO pour aller excuter une suite dinstructions machine constituant une fonction (cest lobjet de linstruction CALL qui
effectue lappel de sous-programme) puis de revenir excuter les instructions
machine situes juste aprs lappel (instruction RET);
les instructions particulires permettant par exemple darrter le processeur (HALT)
ou encore de masquer/dmasquer les interruptions (DI/EI).

4.2 Les instructions machine

81

4.2.2 Les diffrents types doprandes


Les oprandes dsignent les donnes sur lesquelles le code opration de linstruction
doit tre ralis. Selon le type dinstruction, le code opration peut admettre 1, 2
ou 3 oprandes.
Un oprande peut tre de trois natures diffrentes :
loprande est une valeur immdiate, par exemple la valeur 3;
loprande est un registre du processeur, par exemple le registre R1;
loprande est un mot mmoire, par exemple le mot mmoire dadresse 6316.
La nature de loprande et la faon de latteindre sont indiques par lintermdiaire
du mode dadressage. Le format du champ oprande est donc schmatiquement
compos de deux parties : le mode dadressage li loprande et une information
complmentaire qui permet conjointement avec le mode dadressage de trouver
loprande.

Exemple
code opration mode adressage immdiat

information complmentaire = oprande = valeur immdiate


3
Oprande = 3

code opration

information complmentaire = numro de registre


3

mode adressage registre

Oprande = contenu de Registre 3 = 5

code opration

information complmentaire = adresse mmoire


128

mode adressage direct

Oprande = contenu de la case mmoire 128 = 7

Dunod La photocopie non autorise est un dlit.

code opration

information complmentaire = adresse mmoire


64

mode adressage indirect

Oprande = contenu de la case mmoire 128 = 7


Mmoire centrale
5
Registre 3

Figure 4.8

64

128

128

Modes dadressages.

82

4 Le langage machine et la reprsentation des informations

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

Format dune instruction machine.

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.

reg1, reg2 et champ2 codent linformation complmentaire du mode dadressage m


permettant de trouver les oprandes de lopration.
Linstruction admet soit :
un seul oprande qui est alors un registre du processeur cod dans le champ reg1;
deux oprandes, qui sont soit deux registres du processeur cods dans reg1 et
reg2, soit un registre cod dans reg1 et une valeur immdiate code dans champ2,
soit un registre cod dans reg1 et un mot mmoire cod via le mode dadressage
m et la valeur prcise dans champ2.
Les codes oprations

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 :

4.2 Les instructions machine

83

Tableau 4.4

QUELQUES CODES OPRATIONS.

Nature de lopration

Code binaire

chargement dun registre

00000

chargement dun mot mmoire

00001

addition

00101

complment 2

00110

et logique

01000

ou logique

01001

dbranchement dans le code

01100

Les modes dadressage : le champ m

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.

Dunod La photocopie non autorise est un dlit.

Tableau 4.5

QUELQUES MODES DADRESSAGE.

Mode dadressage

Signification pour loprande

Valeur

immdiat

champ2 = valeur immdiate

m = 000

direct

champ2 = adresse de loprande

m = 001

indirect

champ2 = adresse dun mot mmoire qui contient


ladresse du mot mmoire contenant loprande

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

4 Le langage machine et la reprsentation des informations

Exemples dinstructions machines

Prenons deux exemples dinstructions machine dans le contexte que nous venons de
dfinir :
COP
m
00101 000

reg1 reg2
champ2
0000 xxxx 00000000000001000

Le code opration correspond une addition avec deux oprandes. Le premier


oprande est un registre cod dans le champ reg1 qui est donc le registre R0 du
processeur. Le champ reg2 est sans signification (xxxx). Le deuxime oprande est
dsign par un mode dadressage m = 000. Cest un mode dadressage immdiat, ce
qui signifie que le deuxime oprande est la valeur 8 code dans champ2. In fine,
cette instruction effectue laddition entre le contenu du registre R0 et la valeur 8 et
range le rsultat de lopration dans R0.
COP
m
00000 001

reg1 reg2
champ2
0000 xxxx 00000000000100000

Le code opration correspond un chargement de registre. Le premier oprande


est un registre cod dans le champ reg1 qui est donc le registre R0 du processeur. Le
champ reg2 est sans signification (xxxx). Le deuxime oprande est dsign par un
mode dadressage m = 001. Cest un mode dadressage direct, ce qui signifie que le
deuxime oprande est le contenu du mot mmoire pour lequel ladresse est code
dans champ2. In fine, cette instruction effectue le chargement du registre R0 avec le
contenu de la case mmoire dadresse 32.
Pour terminer, le programme relogeable suivant ralise lincrmentation infinie du
contenu du registre R1 en crivant chaque tour de boucle le contenu du registre R1
ladresse mmoire 0.
adresse
COP
m reg1 reg2
champ2
(00000000)16 cet emplacement est rserv pour stocker le
(00000004)16 00000 000 0001 0000 0000000000000000
(00000008)16 00101 000 0001 xxxx 0000000000000001
(0000000C)16 00001 001 0001 xxxx 0000000000000000
(00000010)16 01100 001 xxxx xxxx 0000000000001000
retourner linstruction dadresse

4.3

signification
contenu de R1
R1 0
R1 R1 + 1
(0)16 R1
816

LES INSTRUCTIONS DU LANGAGE DASSEMBLAGE

Le langage machine se compose dinstructions exprimes en binaire, telles quon les


trouve dans la mmoire au moment de lexcution du programme.
Le langage dassemblage est une variante symbolique du langage machine, permettant au programmeur de manipuler les instructions de la machine en saffranchissant
notamment des codes binaires et des calculs dadresse. Le langage dassemblage
comporte le mme jeu dinstructions que le langage machine et est galement spcifique de la machine.

4.3 Les instructions du langage dassemblage

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

correspond linstruction machine 00101 111 0000 0001


Figure 4.10

Format dune instruction en langage dassemblage.

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

QUELQUES CODES OPRATIONS MNMONIQUES.

Nature de lopration

Code assembleur mnmonique

Code binaire

chargement dun registre

LOAD

00000

chargement dun mot mmoire

STORE

00001

Dunod La photocopie non autorise est un dlit.

addition

ADD

00101

complment 2

CP2

00110

et logique

ET

01000

ou logique

OU

01001

dbranchement dans le code

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

4 Le langage machine et la reprsentation des informations

Exemple
Ltiquette boucle remplace ladresse binaire de linstruction ADD Rg2 R1, R0 :
boucle : ADD Rg2 R1, R0
ADD Rg2 R1, R3
JMP Im boucle

Une tiquette peut galement permettre de nommer une constante.


Les oprandes

Chaque oprande dans une instruction du langage dassemblage possde un nom


permettant de le rfrencer. Les oprandes dune instruction sont spars par une
virgule.
Pour les oprandes variables ou constantes, le nom est ltiquette associe par le
programmeur au moment de la dclaration des variables et constantes (cf. paragraphe 4.3.1).
Pour les oprandes adresse dinstruction, le nom est ltiquette associe linstruction par le programmeur. Chaque registre de la machine est rfrenc par un nom :
R0, R1, R2, , R11.
Le mode dadressage dun oprande mmoire est spcifi par une chane place
aprs le code opration et qui remplace la chane binaire m. Le tableau 4.7 donne
quelques exemples de mnmoniques associs aux modes dadressage.
Tableau 4.7

QUELQUES MODES DADRESSAGE.

Mode
dadressage

Signification pour loprande

Mnmonique

Valeur
binaire

immdiat

champ2 = valeur immdiate

Im

m = 000

direct

champ2 = adresse de loprande

m = 001

indirect

champ2 = adresse dun mot mmoire qui contient


ladresse du mot mmoire contenant loprande

m = 011

registre seul

reg1 code un numro de registre

Rg1

m = 110

deux registres

reg1 et reg2 codent un numro de registre

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.

4.3 Les instructions du langage dassemblage

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

4.3.2 Fonctionnement de lassembleur


Lassembleur est un programme qui traduit le langage dassemblage en langage
machine. Son fonctionnement est trs proche de celui du compilateur en phase de
gnration de code.
La traduction effectue par lassembleur ne peut pas se faire en une seule passe,
cest--dire que lassembleur ne peut pas travailler en traduisant directement une
une les instructions du langage dassemblage en instructions du langage machine,
ceci cause du problme des rfrences en avant, cest--dire des rfrences des
tiquettes non encore connues de lassembleur.

Exemple
JMP boucle

boucle :

Lorsque lassembleur traite linstruction JMP boucle, il ne peut pas traduire le


symbole boucle par une adresse, puisque lassembleur na pas encore rencontr la
dfinition de ltiquette boucle. Lassembleur travaille donc en deux passes. Lors de
la premire passe, lassembleur rassemble lensemble des symboles et tiquettes
dans une table et leur associe une adresse dans le code. Lors de la deuxime passe,
lassembleur rsout les rfrences en avant en utilisant la table construite lors de la
premire passe.

Dunod La photocopie non autorise est un dlit.

Premire passe de lassembleur

La principale fonction de la premire passe est de construire la table des symboles.


Cette table contient une entre pour chaque nouveau symbole du code en langage
dassemblage et met en correspondance le nom du symbole avec sa valeur dans le
code. Cette valeur est une adresse si ltiquette est associe une instruction ou
une variable; cest une valeur constante si ltiquette est associe une constante.
Pour pouvoir affecter une adresse chacun des symboles du code en langage
dassemblage, lassembleur doit assigner une adresse chacune des instructions et
des dclarations de variables. Pour ce faire, lassembleur manipule un compteur
appel compteur demplacement, mis 0 au dbut de la premire passe et incrment
de la longueur de linstruction ou de la longueur de la variable chaque instruction
ou dclaration traite. Lassembleur ralise alors une allocation du programme machine
relativement ladresse 0. La premire passe limine galement les commentaires.

88

4 Le langage machine et la reprsentation des informations

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

La premire passe de lassembleur construit la table des symboles suivante


(tableau 4.8) :
Tableau 4.8
Nom du symbole

TABLE DES SYMBOLES.


Valeur

var

un

boucle

Deuxime passe de lassembleur

Lors de la deuxime passe, lassembleur gnre les instructions en code machine.


Pour cela, lassembleur remplace chaque mnmonique par son code binaire, chaque
symbole par la valeur qui lui a t attribue dans la table des symboles. Sil y a des
expressions arithmtiques, celles-ci sont values.
Si cela a t demand, lassembleur gnre galement un listing dassemblage du
programme. Ce listing comporte gnralement pour chaque ligne : un numro de ligne,
le texte source, la reprsentation interne en hexadcimal ou en octal de linstruction
machine, la signalisation dventuelles erreurs de syntaxe.

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

quivaut au programme machine suivant :


adresse
codeop m reg1 reg2
champ2
signification
(00000000)16 cet emplacement correspond la dclaration de la variable var
R1 0
(00000004)16 00000 000 0001 0000 0000000000000000
R1 R1 + 1
(00000008)16 00101 000 0001 xxxx 0000000000000001
(0000000C)16 00001 001 0001 xxxx 0000000000000000
(0)16 R1
(00000010)16 01100 001 xxxx xxxx 0000000000001000
retourner linstruction dadresse 816

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.

Dunod La photocopie non autorise est un dlit.

Le langage dassemblage constitue une variante symbolique du langage machine,


qui lui est strictement quivalente. Loutil assembleur permet de traduire un code
crit en langage dassemblage vers son quivalent langage machine, seul excutable
par la machine.

Chapitre 5

Les circuits logiques

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

LES CIRCUITS LOGIQUES

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.

5.1 Les circuits logiques

91

Deux catgories de circuits peuvent tre diffrencies :


les circuits combinatoires : pour de tels circuits, les valeurs en sortie ne dpendent
que des valeurs en entre;
les circuits squentiels : pour de tels circuits, les valeurs en sortie dpendent des
valeurs en entre ainsi que du temps et des tats antrieurs.
5.1.2 Les circuits combinatoires
Un circuit combinatoire est un circuit logique pour lequel les sorties ne dpendent
que des entres, et non du temps et des tats antrieurs.
Le circuit combinatoire est dfini lorsque son nombre dentres, son nombre de
sorties ainsi que ltat de chaque sortie en fonction des entres ont t prciss. Ces
informations sont gnralement fournies grce une table de vrit dans laquelle les
entres et les sorties sont exprimes par des variables boolennes.
La table de vrit

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

Note + , la somme logique de deux ensembles A et B dfinis dans le rfrentiel


E est constitue des lments appartenant soit A, soit B, soit aux deux ensembles
la fois. La somme logique correspond un oprateur OU.
Produit logique

Dunod La photocopie non autorise est un dlit.

Note , le produit logique de deux ensembles A et B dfinis dans le rfrentiel E


est constitu des lments communs aux deux ensembles A et B. Le produit logique
correspond un oprateur ET.
Complmentation

Le complment A de lensemble A dfini sur E, est lensemble A tel que : A + A = 1

et A A = 0.

Exemple

La fonction f(a, b) = a b + a b est une fonction logique.


La table de vrit dune fonction boolenne f n variables est une table n + 1 colonnes, n colonnes correspondant aux n variables de la fonction et la n + 1me au rsultat
de la fonction. Cette table prsente autant de lignes quil y a de cas possibles; plus
prcisment pour une fonction f n variables, elle comporte donc 2n lignes. Lexpres-

92

5 Les circuits logiques

sion de la fonction f partir de sa table de vrit sobtient en effectuant la somme


logique des produits logiques des n variables pour lesquels le rsultat de f est 1.

Exemple

La table de vrit de la fonction f(a, b) = a b + a b est une table 3 colonnes et


4 lignes (tableau 5.1).
Tableau 5.1

TABLE DE VRIT DE LA FONCTION F(A, B) = A B + A B.

Lexpression de la fonction boolenne f est schmatise partir de plusieurs


oprateurs de base qui reprsentent des fonctions logiques lmentaires par lassemblage desquelles il est possible de raliser des fonctions plus complexes. chacune
de ces fonctions lmentaires, correspond un circuit que lon appelle une porte.
Oprateurs de base
Loprateur NON (NOT)

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

TABLE DE VRIT DE LA FONCTION NON(A) = A.


a

NON

Figure 5.1

Circuit NON.

Et le circuit associ est schmatis sur la figure 5.1.


Loprateur OU (OR)

La fonction OU est une fonction deux variables a et b qui fait correspondre


celles-ci, la somme logique de a et b, soit a + b. Sa table de vrit est (tableau 5.3) :

f(a, b) = a b + a b + a b
= a (b + b) + a b
= a +ab
= a + b (loi dabsorption)

5.1 Les circuits logiques

Tableau 5.3

93

TABLE DE VRIT DE LA FONCTION OU(A, B) = A + B.

OU

a
a+b
b
Figure 5.2

Circuit OU.

Et le circuit associ est donn par figure 5.2.


Loprateur ET (AND)

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

TABLE DE VRIT DE LA FONCTION ET(A, B) = A B.

ET

a
ab
b
Figure 5.3

Circuit ET.

Et la figure 5.3 donne le circuit associ.


Loprateur OU exclusif (XOR)

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

5 Les circuits logiques

Un exemple de circuit combinatoire : ladditionneur n bits

Nous allons tudier la composition du circuit combinatoire permettant de raliser


laddition binaire de deux nombres A et B de n bits. Ce circuit est dcompos en
deux parties :
un circuit correspondant laddition des bits de poids faible a0 et b0 pour lesquels
il ny a pas de retenue propage prendre en compte;
un circuit correspondant laddition des bits de poids suprieur ai et bi, 0 < i < n
pour lesquels il faut prendre en compte la retenue ri 1 propage depuis le rang
i 1 infrieur.
Additionneur 1 bit pour les bits de poids faible a0 et b0

Laddition des bits a0 et b0 dlivre deux rsultats : le bit rsultat c0 et la retenue


propage vers le rang suprieur r0 : a0 + b0 donne la retenue r0 et le rsultat c0 La
table de vrit correspondante est (tableau 5.6) :
Tableau 5.6

TABLE DE VRIT

POUR LADDITION DES BITS DE POIDS FAIBLE A0 ET B0.

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

5.1 Les circuits logiques

95

La table de vrit correspondante est (tableau 5.7) :


Tableau 5.7

TABLE DE VRIT POUR LADDITION DES BITS DE POIDS FORT AI ET BI.

ai

bi

ri 1

ci

ri

ri 1
ai

ci

bi

ri

Dunod La photocopie non autorise est un dlit.

Figure 5.6

Circuit additionneur de poids fort.

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

5 Les circuits logiques

Le circuit logique associ, appel additionneur complet, est donn par la


figure 5.6.
Additionneur complet n bits

Ladditionneur n bits est obtenu en chanant entre eux un demi-additionneur et n 1


additionneurs 1 bit complets. Le chanage seffectue par le biais des retenues propages comme le montre la figure 5.7 pour un additionneur 4 bits.
a3 b3

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 de carry pour ladditionneur 4 bits.

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

5.1 Les circuits logiques

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.

Dunod La photocopie non autorise est un dlit.

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.

POUR LINDICATEUR DOVERFLOW

rn 1

rn 2

Ce qui correspond une porte XOR. Donc O = rn 2 rn 1 (figure 5.9).

98

5 Les circuits logiques

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.

Autres circuits combinatoires

Citons quelques autres circuits combinatoires :


le multiplexeur-dmultiplexeur (figure 5.10) : un multiplexeur est un circuit qui
permet daiguiller plusieurs entres sur une seule sortie. Le dmultiplexeur ralise
la fonction inverse, cest--dire quil permet daiguiller une entre sur une sortie
parmi plusieurs. Dans les deux cas, une commande de slection C permet de rgler
les conflits;
b
S

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

Multiplexeur et dmultiplexeur deux entres.

5.1 Les circuits logiques

99

le dcodeur dadresses (figure 5.11) : ce circuit prsente n entres appeles adresse


et 2n sorties. chaque combinaison des n entres, correspond une seule sortie
parmi les 2n.
b

S0

S1

S2

S3
Figure 5.11

Dcodeur dadresses deux entres.

5.1.3 Les circuits squentiels


Un circuit squentiel est un circuit logique pour lequel ltat des sorties dpend de
ltat des entres, mais aussi des sorties antrieures. Ce type de circuit tient donc
compte dans le temps des tapes passes, quil est capable de mmoriser. Tous ces
circuits, que lon qualifie de bascules, comprennent donc un tat de mmorisation
qui permet de mmoriser la valeur de 1 bit.

Dunod La photocopie non autorise est un dlit.

Principe de fonctionnement dun circuit squentiel

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

5 Les circuits logiques

La table de vrit correspondant ce circuit est :


Tableau 5.9

TABLE DE VRIT POUR LE CIRCUIT SQUENTIEL DE LA FIGURE 5.1.

x1

x2

Ltat pour lequel x1 = 0 et x2 = 1 correspondant ltat de mmorisation du


circuit squentiel.
Il existe plusieurs types de bascules lmentaires qui combines entre elles, permettent de raliser des circuits de mmorisation complexe, telle que les registres ou
encore les cellules mmoire. Nous voquons succinctement les diffrentes bascules
existantes puis le principe de ralisation dun registre.
Panorama succinct des bascules lmentaires

La figure 5.13 dresse un panorama succinct des diffrentes bascules.


Bascule RS

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

5.1 Les circuits logiques

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 deux entres de donnes R et S. Ltat pour lequel R = S = 0


est ltat de mmorisation. Les autres tats (R = 1, S = 0) et (R = 0, S = 1) permettent
de rinitialiser la bascule soit 0, soit 1. Ltat (R = 1, S = 1) est interdit.
Bascule JK

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

Un registre de stockage est un lment de mmorisation permettant de stocker une


information dune longueur de n bits. Une bascule ne permettant de mmoriser
quun seul bit, un registre de n bits sera donc compos dun ensemble de n bascules.
Les bascules employes sont soit des bascules D, soit des bascules JK (figure 5.14).
E1

E2

E3

bascule
1 bit

bascule
1 bit

E5

E4
bascule
1 bit

bascule
1 bit

bascule
1 bit

RAZ
CLK
S1

S2

Dunod La photocopie non autorise est un dlit.

Figure 5.14

S3

S4

S5

Un registre de 5 bits.

La commande RAZ permet de mettre zro toutes les cellules du registre en


mme temps. Le mot charger est prsent sur les entres E1 E5 et les cinq entres
sont charges en parallle, sur un signal dhorloge dlivr sur la ligne CLK. La lecture
du mot seffectue sur les sorties S1 S5, galement en parallle.
5.1.4 Technologie des circuits logiques
Les circuits logiques sont construits partir de transistors. Un transistor est un
circuit lectronique fonctionnant comme un interrupteur et pouvant prendre deux
tats auxquels sont associs les niveaux logiques 0 et 1 : ltat satur et ltat
bloqu. Dans ltat satur, le transistor dlivre en sortie une tension positive
laquelle on fait correspondre le niveau logique 1. Dans ltat bloqu, le transistor

102

5 Les circuits logiques

au contraire dlivre une tension voisine de 0, laquelle on fait correspondre le


niveau logique 01.
Il existe diffrentes technologies de transistors : les technologies TTL (Transistor,
Transistor Logic) base de transistors bipolaires, les technologies FET (Field Effect
Transistor) base de transistors effet de champ et encore les technologies MOS
(Metal Oxyde Semi-conducteur) base de transistors effet de champ MOS. Ces
diffrentes technologies diffrent au niveau performance, consommation lectrique et
niveau dintgration, mais dans tous les cas elles mettent en jeu un mme matriau :
le semi-conducteur silicium.
Quest-ce quun semi-conducteur ?

Un semi-conducteur est un matriau structure cristalline qui se comporte soit comme


un conducteur, soit comme un isolant. Les liaisons de covalence que les atomes de
ces cristaux entretiennent entre eux sont fragiles et lorsque la temprature augmente,
les lectrons engags dans ces liaisons vont pouvoir sagiter suffisamment pour briser
ces liaisons et devenir des lectrons libres. Les lectrons qui quittent les liaisons entre
atomes crent des trous chargs positivement, qui vont leur tour attirer les lectrons des liaisons voisines. Il sensuit la cration dun courant lectrique qui rend le
cristal, initialement isolant, conducteur.
La conductivit dun semi-conducteur peut tre galement provoque par linsertion dans le cristal datomes trangers qui vont soit enrichir le cristal en charges
positives, soit en charges ngatives. Cest lopration de dopage du cristal. Dans le
cas du dopage de type P, le cristal est enrichi en charges positives en introduisant
dans le cristal des atomes possdant moins dlectrons que les atomes du cristal : il
en dcoule la formation de liaisons de covalence incompltes entre les atomes et
donc une augmentation du nombre de trous positifs. Dans le cas du dopage de
type N, le cristal est enrichi en charges ngatives, en introduisant dans le cristal des
atomes possdant au contraire plus dlectrons que les atomes du cristal : des lectrons en surnombre ne sont pas impliqus dans les liaisons entre atomes et forment
donc des lectrons libres supplmentaires.
Le cristal le plus couramment utilis pour la fabrication des circuits intgrs et des
transistors est le silicium (Si, N = 14). Il est couramment dop ngativement avec des
atomes de phosphore (P, N = 15) et positivement avec des atomes de bore (B, N = 5).
Les diffrentes technologies de transistors

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.

5.1 Les circuits logiques

103

Les transistors bipolaires

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

5 Les circuits logiques

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

Transistor unipolaire et porte inverseur.

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.

5.1 Les circuits logiques

105

Dunod La photocopie non autorise est un dlit.

Fabrication dun circuit intgr et des fonctions logiques

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

5 Les circuits logiques

bombardement ultraviolet ralis pour le transfert des masques, dautre part de ne


contenir que trente-cinq particules de poussires par mtres cubes dair alors que
lair usuel en contient prs de 500 millions. Les ouvriers procdant cette fabrication sont eux-mmes vtus de combinaisons, de bottes et de gants hermtiques alors
que lair quils exhalent est absorb par un dispositif particulier port la ceinture
qui protge les tranches de silicium de toute impuret susceptible dendommager les
circuits gravs.

Figure 5.18

Botier PGA.

Niveaux dintgration

La densit dintgration pour un circuit logique et sa famille dtermine le nombre de


portes ou de transistors par circuit ou par mm2. Ainsi, les familles suivantes peuvent
tre identifies :
SSI (Small Scale Integration) : ce sont des circuits faible intgration groupant de
1 10 portes par circuit;
MSI (Medium Scale Integration) : ce sont des circuits moyenne intgration groupant de 10 100 portes par circuit;
LSI (Large Scale Integration) : ce sont des circuits haute intgration groupant de
100 100 000 portes par circuit;
VLSI (Very Large Scale Integration) : ce sont des circuits trs haute intgration
groupant plus 100 000 portes par circuit. ce niveau, se trouvent les circuits tels
que les mmoires et les microprocesseurs. titre dexemple, la puce du processeur
Intel Pentium intgre plus de trois millions de transistors, sur un botier comportant 273 broches.

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.

Dunod La photocopie non autorise est un dlit.

Cette augmentation incessante de la densit des transistors lve lheure actuelle


un certain nombre de dfis technologiques :
la taille des transistors dont la largeur de traits se rapproche de plus en plus du
dixime de micron ne cesse de diminuer et tend de plus en plus vers celle de la
longueur donde de la lumire visible. Lutilisation de celle-ci ou des rayons ultraviolets dans le processus de photolithographie devient problmatique pour la conservation de la nettet des images traces. Un recours des rayons ultraviolets de
plus courte longueur dondes ou mme aux rayons X sera sans doute ncessaire;
le nombre de dfauts par centimtre carr de silicium qui est lheure actuelle
de 200 pour un million de puces devra tre rduit afin de tendre vers zro;
la chaleur dgage par une puce du fait de la densit de transistors prsents sur
celle-ci et de laugmentation de leur vitesse de commutation tend devenir trop
importante. La tension dalimentation des transistors a dj t ramene de 5 volts
3,3 volts sur le microprocesseur Intel Pentium, mais elle devra tre encore abaisse
pour tendre vers 1,8 volts.

Chapitre 6

Exercices corrigs

PRODUCTION DE PROGRAMMES
6.1

Compilation

Soit le langage dfini par les rgles de Backus-Naur suivantes :


<programme> :: = PROGRAM <identificateur> <corps de programme>
<corps de programme> :: = <suite de declarations> DEBUT <suite
dinstructions> FIN
<suite de declarations> :: = <declaration> | <declaration> <suite
de declarations>
<declaration> :: = INT <identificateur>; | BOOLEAN <identificateur>;
<suite dinstructions> :: = <instruction> | <instruction> <suite
dinstructions>
<instruction> :: = <affectation> | <conditionnelle> | <iteration>
<affectation> :: = <identificateur> = <terme>; | <identificateur> = <terme>
<operateur> <terme>; | <identificateur> = VRAI; |
<identificateur> = FAUX;
<conditionnelle> :: = SI <expression> ALORS <suite dinstructions> FSI
<iteration> :: = LOOP <expression> FAIRE <suite dinstructions> FAIT
<expression> :: = (<terme> <operexpr> <terme>) | (<identificateur> == VRAI) |
(<identificateur> == FAUX)
<operexpr> :: = == | <|> | ?
<terme> :: = <entier>| <identificateur>
<operateur> :: = + | | * | /
<identificateur> :: = <lettre> | <lettre> <chiffre>

6 Production de programmes

109

<entier> :: = <chiffre> | <entier> <chiffre>


<lettre> :: = A | B | C | D | E | X | Y | Z
<chiffre> :: = 0 | 1 | 2 | 3 | 4 | 9

Dunod La photocopie non autorise est un dlit.

Soit prsent le programme suivant :


PROGRAM Y3
INT A;
INT B;
BOOLEAN C;
DEBUT
A = 6;
B = A * 3;
C = VRAI;
LOOP (C = VRAI)
FAIRE
SI (A > B) ALORS C = FAUX FSI
B = B 1;
FAIT
FIN
1. Donnez la suite de codes obtenus lissue de lanalyse lexicale du programme
sachant que :
cas :
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;
symbole SI : codage_lexme = 11;
symbole ALORS : codage_lexme = 12;
symbole FSI : codage_lexme = 13;
symbole VRAI : codage_lexme = 14;
symbole FAUX : codage_lexme = 15;
symbole LOOP : codage_lexme = 16;
symbole FAIRE : codage_lexme = 17;
symbole FAIT : codage_lexme = 18;
symbole ( : codage_lexme = 19;
symbole ) : codage_lexme = 20;

110

6 Exercices corrigs

symbole < : codage_lexme = 21;


symbole > : codage_lexme = 22;
symbole == : codage_lexme = 23;
symbole ? : codage_lexme = 24;
symbole BOOLEAN : codage_lexme = 25;
identificateur lettre seule : (position_lettre_alphabet + 25);
identificateur lettre chiffre : ((position_lettre_alphabet + 25)
+ 26 (chiffre + 1));
fin cas;

2. Peut-on construire larbre syntaxique de ce programme ? Pourquoi ?


6.2

dition des liens

On considre un ensemble de quatre modules objets participant la construction dun


mme programme excutable prog.exe. lissue de la compilation, les liens utilisables et les liens satisfaire suivants ont t rfrencs dans chacun des modules.
module module_1;
taille (module) = 1 024 Ko
LU <afficher, 128>
LU <imprimer, 260>
LU <enregistrer, 512>
fin module
module module_2;
taille (module) = 512 Ko
LAS <afficher, 1>
LAS <perimetre, 2>
LAS <surface, 3>
LU <rectangle, 64>
LU <carre, 128>
fin module
module module_3;
taille (module) = 64 Ko
LU <perimetre, 16>
LU <surface, 32>
fin module
module module_4;
taille (module) = 100 Ko
LAS <rectangle, 1>
LAS <carre, 2>
LAS <imprimer, 3>
LAS <enregistrer, 4>
fin module

6 Production de programmes

111

1. Construisez la carte dimplantation du programme excutable en supposant que


les modules sont mis dans lordre 2, 3, 4, 1.
2. Construisez la table des liens. Les modules sont pris en compte dans lordre de la
carte dimplantation. Ldition des liens est-elle correcte ?
6.3

Utilitaire Make

Soit le graphe de dpendance du programme excutable prog.exe donn sur la


figure 6.1.
prog.exe

mod1.o

proc.h
Figure 6.1

mod1.c

mod2.o

const.h

mod2.c

mod3.o

mod3.c

variable.h

Graphe de dpendance du programme prog.exe.

1. Donnez la structure du Makefile correspondant.


2. Que se passe-t-il si le fichier const.h est modifi ?
6.4

Compilation

Dunod La photocopie non autorise est un dlit.

Soit le langage dfini par les rgles de Backus-Naur suivantes :


<programme> ::= PROGRAM <nom de programme> <corps de programme>
<corps de programme> ::= <suite de declarations><suite dinstructions> FIN
<suite de declarations> ::= <declaration> | <declaration> <suite de declarations>
<declaration> ::= <identificateur> : REEL := <valeur relle>; |
<identificateur> : ENTIER := <valeur entire>;
<suite dinstructions> ::= <instruction> | <instruction> <suite dinstructions>
<instruction> ::= <addition> | <multiplication>
<identificateur> ::= <lettre>
<valeur entire> ::= <chiffre>
<valeur relle> ::= <chiffre>, <chiffre>
<nom de programme> ::= <lettre> <chiffre>
<lettre> ::= A |B | C | D | E....| X | Y | Z
<chiffre> ::= 0 |1 | 2 | 3 | 4...| 9

1. Une addition est de la forme A := B + 3; ou A := B + 3,2;


A et B sont des identificateurs, 3 est un entier et 3,2 est un rel.

112

6 Exercices corrigs

Une multiplication est de la forme suivante : A := B * C; A, B et C sont des identificateurs.


crivez la rgle BNF donnant la syntaxe dune addition et celle donnant la
syntaxe dune multiplication.
2. Soit prsent le programme suivant :
PROGRAM A3 /
A : REEL := 3,2;
B : ENTIER := 3,2;
A := A + 5,1;
B := B * 61,
FIN

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,

REPRSENTATION DES INFORMATIONS


6.5

Conversions

Effectuez les conversions suivantes :


+ 1 432,4510 vers la base 2.
+ 1 432,4510 vers la base 16.
+ 1 432,4516 vers la base 10.
1110101001012 vers la base 10, puis vers la base 8.
6.6

Reprsentation des nombres signs

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

Reprsentation des nombres flottants

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

Codez linformation 7810 selon les formats suivants :


valeur signe sur 8 bits;
complment 2 sur 8 bits;
IEEE 754 simple prcision.

Dunod La photocopie non autorise est un dlit.

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

Oprande = valeur immdiate

Im

m = 0000

Direct

Oprande = [adresse]

m = 0001

Indirect

Oprande = [[adresse]]

m = 0010

Bas

Oprande = [[RB] + dplacement]

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

X est une adresse ou un dplacement


ou une valeur immdiate.

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

Transfert dun registre vers un mot mmoire


STORE m reg X

m = B, D, I

X est une adresse ou un dplacement

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

Ces instructions regroupent les fonctions mathmatiques et les fonctions boolennes.


Dans ces instructions, le registre dtat PSW est modifi en fonction du rsultat de
lopration.
Fonctions arithmtiques

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.

Addition entre le contenu de reg


et loprande dduit de m et X,
puis stockage du rsultat dans reg.

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.

Multiplication entre le contenu de reg


et loprande dduit de m et X, puis
stockage du rsultat dans reg.
Complment 2 de reg puis stockage
du rsultat dans reg.

NEG Rg1 reg

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.

Dunod La photocopie non autorise est un dlit.

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.

ET logique (OU, OU exclusif) entre le


contenu de reg et loprande dduit
de m et X, puis stockage du rsultat
dans reg.
Complment 1 de reg puis stockage
du rsultat dans reg.

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

Les instructions de rupture de squence

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

X est une adresse.


Les champs reg et m sont
sans signification.

Saut inconditionnel ladresse X.

Exemple
JMP (12CF)16 : saut l'adresse (12CF)16.
Sauts conditionnels

Ces instructions permettent deffectuer un branchement une adresse donne si


une condition est ralise. Ces conditions sont relatives aux indicateurs du registre
dtat PSW.
Si la condition nest pas ralise, lexcution du code se poursuit en squence.

JMPP X

Saut si positif.
X est une adresse.
Les champs reg et m sont
sans signification.

Saut ladresse X conditionn


au positionnement 0 du bit S
du registre PSW.

JMPN X

Saut si ngatif.
X est une adresse.
Les champs reg et m sont
sans signification.

Saut ladresse X conditionn


au positionnement 1 du bit S
du registre PSW.

JMPO X

Saut si overflow.
X est une adresse.
Les champs reg et m sont
sans signification.

Saut ladresse X conditionn


au positionnement 1 du bit O
du registre PSW.

JMPC X

Saut si carry.
X est une adresse.
Les champs reg et m sont
sans signification.

Saut ladresse X conditionn


au positionnement 1 du bit C
du registre PSW.

JMPZ X

Saut si zro.
X est une adresse.
Les champs reg et m sont
sans signification.

Saut ladresse X conditionn


au positionnement 1 du bit Z
du registre PSW.

6 Langage machine

117

Les instructions de manipulation de la pile

Ces instructions permettent denregistrer un lment dans la pile ou dter un


lment de la pile. La pile est une zone mmoire gre selon un ordre LIFO (Last In
First Out).
Enregistrer un lment dans la pile
Le contenu du registre reg est crit
dans le mot au sommet de la pile.

PUSH Rg1 reg

ter un lment de la pile


Le mot au sommet de la pile
est copi dans le registre reg.

POP Rg1 reg

6.9

Manipulation des modes dadressage

lissue de lexcution du code assembleur suivant et compte tenu de ltat initial


de la mmoire et des registres du processeur, la case mmoire dadresse 1000 a pour
contenu la valeur 100, a ou 1998 ?
La reprsentation des nombres signs utilise la convention du complment 2.
Adresse mmoire

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

crivez un programme en langage dassemblage qui ralise le calcul suivant :


B = (A 5) + (6 + B).
A et B sont deux variables correspondant chacune un mot mmoire.

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

Pile, oprations PUSH et POP.

RSP
002C16

R1
810
R2
610

6 Langage machine

6.12

119

Programme assembleur

Dunod La photocopie non autorise est un dlit.

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

1. La suite des codes gnrs lors de lanalyse lexicale est :


7 154 10 26 6 10 27 6 25 28 6 8 26 5 6 6 27 5 26
33 6 28 5 14 6 16 19 28 5 14 20 17 11 19 26 22 27
20 12 28 5 15 13 27 5 27 2 1 6 18 9
2. La solution est donne par la figure 6.3. Larbre syntaxique ne peut pas tre construit jusquau bout car il existe une erreur de syntaxe au niveau de lexpression de
la boucle LOOP. Un signe = a t mis la place dun signe = =.
<programme>
PROGRAM

<identificateur>
<corps de programme>
Y3
<suite de dclarations>

DEBUT <suite dinstructions >

<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

dition des liens

1. La carte dimplantation des modules est donne par la figure 6.4 :


Module 2

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

Adresse dans la carte dimplantation

Commentaire

afficher

indfinie

LAS

perimetre

indfinie

LAS

surface

indfinie

LAS

rectangle

64

LU

carre

128

LU

Tableau 6.3

Dunod La photocopie non autorise est un dlit.

PRISE EN COMPTE DU MODULE 2.

PRISE EN COMPTE DU MODULE 3.

Nom de lobjet

Adresse dans la carte dimplantation

Commentaire

afficher

indfinie

LAS

perimetre

16 + 512

LAS/LU

surface

32 + 512

LAS/LU

rectangle

64

LU

carre

128

LU

Tableau 6.4

PRISE EN COMPTE DU MODULE 4.

Nom de lobjet

Adresse dans la carte dimplantation

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

PRISE EN COMPTE DU MODULE 1.

Nom de lobjet

Adresse dans la carte dimplantation

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

2. La modification du fichier const.h entrane les actions suivantes :


Reconstruction du fichier mod2.o et du fichier mod1.o par compilation;
cc c mod2.c mod3.c
cc c mod1.c

Reconstruction du fichier prog.exe par dition des liens.


ld mod1.o mod2.o mod3.o o prog.exe
6.4

Compilation

1. <addition> ::= <identificateur> := <identificateur> +


<valeur entire>; | <identificateur> :=
<identificateur> + <valeur relle>;
<multiplication> ::= <identificateur> := <identificateur> *
<identificateur>;
2. PROGRAM A3 /
A : REEL := 3,2 ;

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

Dunod La photocopie non autorise est un dlit.

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

Reprsentation des nombres signs

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

Reprsentation des nombres flottants

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

Valeur signe sur 8 bits : 11001110


Complment 2 sur 8 bits : 10110010

6 Solutions

125

IEEE 754 simple prcision : 1 10000101 001110000000000000000000 soit


(C29C0000)16
6.9

Manipulation des modes dadressage

LOAD D R0 400

R0 est charg avec la valeur contenue dans le mot mmoire dadresse 400
soit 2000

LOAD Im R1 1002

R1 est charg avec la valeur immdiate 1002

ADD Rg2 R0 R1

R0 R0 + R1 = 3002

NEG Rg1 R1

R1 1002 (le complment 2 reprsente lquivalent ngatif du nombre)

ADD I R1 404

R1 R1 + ((404)) = 1002 + 3000 = 1998. Le mot mmoire dadresse 404


contient ladresse de loprande. Loprande est donc le contenu du mot
dadresse 412.

STORE B R1 900

(1000) 1998. Le contenu du registre R1 est crit ladresse obtenue


selon un mode bas (RB) + 900, soit 100 + 900 = 1000

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

La solution est donne par la figure 6.6.


6.12

Programme assembleur

Dunod La photocopie non autorise est un dlit.

LOAD D R1 A -- R1 est charg avec le contenu du mot dadresse A.

Loop :

LOAD IM R2 3 - R2 est charg avec la valeur immdiate 3.


POP Rg1 R3 - Le sommet de pile est plac dans R3.
ADD Rg2 R1 R3 -- R1 = R1 + R3
JMPC Carry - si laddition prcdente produit un carry aller
linstruction dsigne par ltiquette Carry.
JMPO Overflow -- si laddition prcdente produit un overflow aller
linstruction dsigne par ltiquette Overflow.
ADD Im R2 1 - R2 = R2 1
JMPZ Finok -- si R2 est gal 0, sortie de boucle. Les trois premiers
lments de la pile ont t pris en compte.
JMP Loop - sinon aller linstruction appele Loop et continuer.

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

Solution de lexercice 6.11.

Carry : PUSH Rg1 R1 - il y a carry. R1 qui contient la somme en cours


est plac dans la pile.
JMP Fin
Overflow :
STORE B R1 100 - il y a overflow. R1 qui contient la somme
en cours est crit ladresse base (RB) + 100.
JMP fin
Finok : STORE D R1 A -- il y a ni carry, ni overflow. R1 qui contient la somme
des trois premiers lments de la pile est crit ladresse A.
Fin :
STOP -- arrter le programme.

PARTIE 2

STRUCTURE
DE LORDINATEUR

Cette deuxime partie sintresse au fonctionnement et la structure dun ordinateur.


Elle prsente les caractristiques de chacune des trois fonctions principales dun
ordinateur savoir :
la fonction dexcution qui permet lexcution par un microprocesseur dun
programme crit en langage machine;
la fonction de mmorisation qui recouvre dune part la gestion de la mmoire
centrale et dautre part le mcanisme de hirarchie de mmoires;
la fonction de communication qui permet au processeur de dialoguer avec lextrieur via des priphriques tels que le clavier, limprimante, lcran, la souris, etc.
Ainsi le chapitre 7 est consacr la fonction dexcution et explicite la manire
dont le microprocesseur excute une instruction machine et plus gnralement un
programme machine. Le chapitre 8 sintresse aux mmoires caches ainsi qu la
mmoire virtuelle et il dfinit galement les diffrentes technologies de mmoires
existantes. Le chapitre 9 dtaille la fonction de communication. Le chapitre 10 propose
un ensemble dexercices corrigs.
Mots-cls : programme machine, instruction machine, microprocesseur, mmoire
RAM et ROM, mmoire cache, unit dchange, bus de communication.

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

Dun point de vue macroscopique , un programme machine sexcute instruction


aprs instruction selon lalgorithme suivant :
dbut (excution dune instruction)
lecture de linstruction;
mise jour du compteur ordinal;
dcodage de linstruction;
lecture ventuelle des oprandes;
excution;
rangement des rsultats;
fin (excution de linstruction).

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

add D, @Z, @X, @Y (prendre le contenu de ladresse Y,


lui ajouter le contenu de ladresse X,
placer le rsultat ladresse Z).

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

(placer le contenu de ladresse X


dans le registre R1)
load D, R2, @Y
(placer le contenu de ladresse Y
dans le registre R2)
add D, R3, R2, R1 (additionner le contenu de R1 au contenu de R2
puis placer le rsultat dans R3)
store D, R3, @Z
(placer le contenu du registre R3 ladresse Z)

Dunod La photocopie non autorise est un dlit.

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

7.2 Aspects externes

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

Dunod La photocopie non autorise est un dlit.

27

0,06

0,75

1,5

1971

1979

1982

Figure 7.2

1986

1989

1993

volution des performances des microprocesseurs.

La frquence dhorloge des processeurs est en pleine volution (figure 7.2) et de


nos jours, on trouve frquemment des processeurs munis dune horloge dont la
frquence est gale 1 gigahertz. Un tel processeur a donc un temps de cycle gal
1 nanoseconde.

134

7 La fonction dexcution

7.2.2 Les bus


Comme le schma gnral de la figure 7.3 le montre notre ordinateur est dune part
organis autour dun bus interne au microprocesseur, dautre part autour dun bus
externe au microprocesseur servant pour la communication entre la mmoire et le
microprocesseur. Le bus interne est unique dans notre cas.
Y1
Z

Opration

Y2

PSW

Unit Arithmtique
et Logique

Bus interne
Donnes

Registres
Commandes

Unit de Commande

Squenceur
Dcodeur

RI
CO
RAD
RDO

Bus Processeur / Mmoire

Figure 7.3

Commandes Lecture/criture
Adresses
Donnes
Schma gnral du processeur.

La conception et lorganisation du microprocesseur, en particulier du, ou des bus


internes, laisse une grande libert au concepteur. Par contre le bus externe est beaucoup
plus contraint du fait de la grande varit des modules matriels interconnecter.
Ce type de bus sappuie sur des caractristiques importantes telles que : la largeur
du bus, le cadencement du bus, larbitrage pour laccs au bus, les modes de fonctionnement du bus.
Dans cette section nous tudions les modalits dexcution des instructions machine.
Ces modalits concernent le fonctionnement et lorganisation du bus interne et les
aspects largeur et cadencement du bus externe. Les aspects arbitrage et modes de
fonctionnement seront abords respectivement, dans le chapitre 9 traitant des entressorties et dans le chapitre 8 traitant de la gestion des caches mmoire.
Largeur du bus

La largeur du bus dfinit le nombre de lignes du bus cest--dire le nombre de bits


que le bus peut vhiculer en parallle. Cette largeur de bus constitue une donne
technique trs importante et plus particulirement la largeur du bus dadresses. En
effet, plus le bus dadresses est large plus lespace dadressage du processeur est

7.2 Aspects externes

135

grand. Ainsi n lignes dadresses permettent dadresser 2n mots mmoires. Augmenter


la largeur du bus dadresses quivaut augmenter le nombre de broches du botier et
donc la surface de microprocesseur.
La taille du bus de donnes crot galement afin de satisfaire laugmentation des
performances des microprocesseurs. En effet, si la mmoire dispose de mots de 32 bits
et que le bus de donnes a une largeur de 8 bits, il faut 4 accs mmoires pour que le
microprocesseur dispose dun mot mmoire.
Laugmentation de la largeur du bus de donnes nest pas le seul moyen daugmenter
les performances du bus, car on peut galement augmenter la frquence dhorloge
du bus.
Les microprocesseurs voluent trs vite et il est difficile de faire varier la largeur
des bus pour suivre les processeurs. Une manire doprer consiste dcider dune
largeur de bus (par exemple 32 bits) et dutiliser ce bus, selon le cas, comme un bus de
donnes ou un bus dadresses : cest le multiplexage temporel du bus. Cette technique
diminue le nombre de broches donc le cot mais aussi les performances.
Cadencement du bus

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;

Dunod La photocopie non autorise est un dlit.

Microprocesseur

Bus

Mmoire

ns
0

15

20

Figure 7.4

30
Bus synchrone.

136

7 La fonction dexcution

le microprocesseur dpose un signal de lecture sur le bus de commandes;


le microprocesseur attend que la mmoire dpose un signal de donne prte;
le microprocesseur rcupre la donne sur le bus de donnes.
Prenons lexemple de la figure 7.4 avec les donnes suivantes :
la frquence du processeur est gale 1 GHz soit un temps de cycle gal 1 ns;
la frquence du bus est gale 66 MHz soit un temps de cycle gal 15 ns;
le temps daccs la mmoire centrale (RAM) est gal 20 ns.
Dans cet exemple le microprocesseur lance une commande de lecture au top
dhorloge 0. On suppose que cette demande est instantanment dlivre au bus et
la mmoire de manire aligner les horloges. La mmoire ne rpond que 20 ns plus
tard; il faut donc 2 cycles de bus pour que le microprocesseur puisse obtenir la
donne sur le bus de donnes.
Compte tenu des diffrences entre les cycles de mmoire, bus et microprocesseur
on considre que ce dernier est toujours mme de se synchroniser avec le bus. Avec
ce type de bus le processeur sollicite le bus et la mmoire qui rpondent leurs
rythmes sans concertation ni synchronisation relles. Le nombre de cycles du bus est
toujours un nombre entier ce qui nest pas forcment optimum. Ce type de bus ne
facilite pas les volutions en fonction des modifications technologiques. Une amlioration du cycle de la mmoire (diminution du temps daccs) ne se traduira pas forcment par une amlioration des changes puisquelle nentranera pas ncessairement
la diminution du nombre de cycle du bus. Pour tre synchrone avec la mmoire, le
bus est gnralement oblig dajouter des cycles dattente (Wait state).
Les bus asynchrones

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

7.3 Aspects internes

137

appelle le flux dexcution du programme machine. Ce flux dexcution du programme


machine peut tre dcrit par lalgorithme suivant :
dbut
charger la premire instruction (FETCH)
tant que ce nest pas STOP
faire
modifier le compteur ordinal (incrmentation);
dcoder linstruction;
charger les donnes ventuelles dans les registres;
excuter les micro-instructions;
charger linstruction pointe par le compteur ordinal :
cest linstruction suivante (FETCH);
finfaire
fin
Le programme machine est plac dans la mmoire centrale par le chargeur qui la
fin du chargement initialise le compteur ordinal CO avec ladresse de la premire
instruction du programme. Le programme dmarre donc par le chargement dans le
registre instruction RI de cette premire instruction. Ensuite le microprocesseur va
raliser le flux dexcution du programme machine. Lalgorithme ci-dessus rend
compte de ce flux en utilisant un bloc tant que qui exprime que tant que le code
opration de linstruction actuellement dans le registre instruction nest pas STOP,
les instructions du bloc faire/finfaire sont excutes. Quand le code opration est
STOP le bloc faire/finfaire est saut et linstruction fin excute : le programme
est alors termin.
Sans trop entrer dans les dtails, nous avons indiqu au chapitre 1 que lunit de
commande est charge de lexcution des diffrentes phases de ralisation des instructions. Le squenceur, rythm par lhorloge, excute une squence de microcommandes
qui rend compte de linstruction machine traite.
Nous allons maintenant examiner plus en dtail comment, pour un processeur dtermin, sexcute une instruction machine sur le matriel (hardware) de cette machine.

Dunod La photocopie non autorise est un dlit.

7.3.1 Excution dune instruction machine


Pour tudier comment est excute une instruction nous dfinissons une machine
arbitraire qui respecte les fonctionnalits principales dune machine relle (machine
de Von Neumann) mais qui ne correspond aucune machine du march. Elle sert de
guide pour illustrer les fonctions importantes dun ordinateur. La figure 7.5 dfinit
lorganisation matrielle et le programme machine que nous voulons excuter.
Ce processeur est trs proche de celui dcrit dans le chapitre 1 de cette partie de
louvrage, Structure gnrale et fonctionnement. Il sagit l encore dun microprocesseur bus interne unique (certains microprocesseurs disposent de plusieurs bus
internes afin damliorer les performances en paralllisant des oprations). Lunit
arithmtique et logique est plus simple : un seul registre dentre (Y) reoit une donne,
la seconde entre de lUAL tant directement relie au bus interne de donnes.

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

Machine et programme de lexemple.

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

7.3 Aspects internes

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

Dunod La photocopie non autorise est un dlit.

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.

7.3 Aspects internes

141

tape 3

Cette tape se produit 30 nanosecondes aprs la demande de lecture faite par le


microprocesseur. Elle consiste placer le contenu du registre RDO dans le registre
instruction RI. la fin de cette tape le registre dinstruction RI contient linstruction Add D, R, A. La phase de recherche et de chargement (FETCH) de linstruction
dans le registre dinstruction RI est alors termine. La phase de dcodage commence
(figure 7.8).

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

Dunod La photocopie non autorise est un dlit.

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

Lexcution de laddition seffectue en plaant le contenu du registre R sur le bus


interne de donnes, donc en entre de lUAL qui reoit ainsi sa deuxime donne.
Une commande daddition est dclenche pour lUAL. Le rsultat se trouve dans le
registre Z (figure 7.11).

7.3 Aspects internes

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

Dunod La photocopie non autorise est un dlit.

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

Pour conclure, il suffit maintenant de placer le contenu du registre Z dans le registre R.


On a alors bien ralis lopration souhaite (figure 7.12).

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.

7.3 Aspects internes

145

7.3.2 Microcommandes et micro-instructions


Les diffrents modules de lunit centrale sont pilots par les signaux que le squenceur positionne au bon moment.
Dans cette partie nous examinons les signaux ou microcommandes du squenceur
pour piloter les registres et lUAL, puis la production des micro-instructions (ensemble
de microcommandes) permettant de raliser les diffrentes tapes de lexcution dune
instruction de notre programme sur notre processeur.
Les registres

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

Dunod La photocopie non autorise est un dlit.

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

Principe de fonctionnement dun registre.

146

7 La fonction dexcution

Au niveau de la notation, si un registre porte le nom R, alors le signal dentre


pilotant la barrire dentre de ce registre est nomm Ren et le signal de sortie Rsor.
Le contenu du registre R sera not (R). Ainsi pour placer le contenu du registre R1
dans le registre R2, les signaux R1sor et R2en sont positionns. Nous ralisons alors
(R2) = (R1).
LUnit arithmtique et logique (UAL)

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

Unit arithmtique et logique.

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.

7.3 Aspects internes

147

U A L de 1 bit

Retenue dentre

F0
Additionneur

F1

Retenue de sortie
Figure 7.16

Unit arithmtique et logique de 1 bit.

Dunod La photocopie non autorise est un dlit.

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

Unit arithmtique et logique de 8 bits.

148

7 La fonction dexcution

Les micro-instructions

chaque tape de lexcution dune instruction lunit de commande positionne des


signaux. Lensemble des microcommandes positionnes une tape constitue la
micro-instruction qui sera excute cette tape. Nous avons vu que lexcution de
linstruction Add D, R, A demandait 7 tapes. La figure 7.18 rsume les diffrentes
tapes et les signaux positionns chacune des tapes.
Add D, R, A
RazY

Ret

Yen
Y

1 Cosor, RADen, Lect, AttenteMmoire


2 InCo

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

Microcommandes pour lexcution de Add D, R, A.

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.

7.3 Aspects internes

149

De cet exemple particulier nous pouvons tirer quelques remarques gnrales :


larchitecture matrielle dtermine la nature et le nombre des microcommandes
ncessaires lexcution dune instruction. Nous avons ici un microprocesseur
avec un seul bus interne; nous verrons dans la section traitant des machines CISC
et RISC que lon peut avoir plusieurs bus internes ce qui change les modalits
dexcution dune instruction;
quelle que soit la nature de linstruction excuter, la phase de FETCH est
toujours identique pour ce microprocesseur;
le dcodage et lexcution de linstruction dpendent de la nature de cette instruction.
Prenons comme autre exemple linstruction de chargement du registre R : Load D,
R, B. titre dexercice on peut vrifier que la squence de micro-instructions est :
1.
2.
3.
4.
5.

COsor, RADen, Lect, AttenteMmoire


InCo
RDOsor, RIen
(Adresse)RIsor, RADen, Lect, AttenteMmoire
RDOsor, Ren

Dunod La photocopie non autorise est un dlit.

Cette squence met en vidence que le nombre et la nature des micro-instructions


ne sont pas les mmes que dans le cas de laddition. Nous avons toujours les trois
mmes micro-instructions pour la phase de FETCH et seulement deux microinstructions pour le dcodage/excution.
Enfin dans notre premier exemple, Add D, R, A , indique que lon veut additionner le contenu de R avec le contenu de ladresse mmoire A, le rsultat tant
plac dans R. En fait ladresse mmoire dun oprande est dfinie par le mode
dadressage. Dans notre cas D dfinit un mode dadressage direct indiquant que
A reprsente ladresse de la donne. Linstruction note Add I, R, A indique, cette
fois, que le mode dadressage est indirect : la donne nest plus le contenu de A mais
le contenu du contenu de A. Ainsi, dans ce cas, A nest plus ladresse de la donne
mais contient ladresse de la donne.
On peut alors vrifier que dans le cas de linstruction Add I, R, A la squence de
micro-instructions est :
1.
2.
3.
4.
5.
6.
7.
8.

COsor, RADen, Lect, AttenteMmoire


InCo
RDOsor, RIen
(Adresse)RIsor, RADen, Lect, AttenteMmoire
RDOsor, RADen, AttenteMmoire
RDOsor, Yen
Rsor, Zen, Add
Zsor, Ren

Ainsi la phase FETCH de cette instruction conduit la gnration des mmes


microcommandes, par contre les phases de dcodage et dexcution donnent lieu
des squences diffrentes. La phase de dcodage ne tient donc pas seulement compte

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

Le contrle cbl utilise un automate tats finis implment en logique alatoire ou


encore des rseaux logiques programmables (PLA, Programmed Logic Array).
titre dexemple la figure 7.19 donne le schma de principe dun PLA. Il sagit dun
Entres
Portes ET
Sorties

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

Principe dun circuit PLA.

7.3 Aspects internes

151

Dunod La photocopie non autorise est un dlit.

ensemble de portes ET formant les termes produits et de portes OU formant les


termes sommes. chaque porte ET est associ un fusible qui est intact lorigine.
La programmation de la matrice des portes ET consiste dtruire des fusibles afin
dobtenir les termes produits de la fonction raliser. De mme pour les portes OU
auxquelles sont associs des fusibles que lon dtruit slectivement pour obtenir les
termes sommes souhaits. Dans notre exemple nous avons :
une entre nomme Fetch laquelle trois portes ET sont associes;
7 sorties avec 7 portes OU. Chaque porte OU reoit les 3 sorties des termes produits.
Les fusibles marqus en noir sont ceux gards intacts et ce circuit PLA, ainsi
programm, permet la ralisation cble de la fonction de chargement dune instruction de la mmoire centrale vers le registre dinstruction.
Le circuit PLA pilot par un gnrateur dtapes est lui-mme dirig par un circuit
dclencheur. Le circuit dclencheur reoit en entre le signal dhorloge, le signal
mmoire prte et le signal AttenteMmoire. Si le signal mmoire prte et le signal
AttenteMmoire sont positionns, alors le gnrateur dtape est incrment dune
unit au prochain top dhorloge. Dans le cas o le signal AttenteMmoire est positionn seul, alors le gnrateur dtapes nest pas incrment lors dun top dhorloge.
Cet ensemble de circuits permet donc la ralisation cble de la phase Fetch.
ltape 1, la premire porte ET a sa sortie 1 et donc les signaux Cosor, RADen,
Lect et AttenteMmoire sont positionns 1. Tant que le signal mmoire prte nest
pas positionn, le gnrateur dtapes ne progresse pas. Sitt le signal positionn, la
sortie de la deuxime porte ET devient gale 1 et ainsi que le signal InCo.
La figure 7.20 synthtise le fonctionnement dun tel squenceur. Chaque pastille
symbolise des portes ET et des portes OU ainsi que les fusibles gards intacts lors de
la ralisation du circuit. Le registre instruction RI contient linstruction excuter
soit Add D, R, A , un circuit de dcodage interprte le code opration et slectionne une des entres de la matrice de termes produits. Dans notre cas il y a 7 entres
et 8 portes ET produisant une matrice de 7 8 portes ET. Il y a de mme 16 signaux
de sorties ncessitant 16 8 portes OU. Chaque porte OU reoit 8 entres.
ltape 4 de lexcution de cette instruction les microcommandes Lect, RIsor,
RADen, AttenteMmoire sont positionns par la logique cble.
Le circuit dclencheur fonctionne selon lalgorithme :
si horloge = 1
alors
si AttenteMmoire = 1
alors
si Mmoire Prte = 1
alors Sortie = 1;
sinon Sortie = 0;
fsi
sinon Sortie = 1;
fsi
sinon Sortie = 0;
fsi

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

Signal Mmoire Prte

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.

La figure 7.20 montre la complexit du cblage dun tel squenceur et illustre


la terminologie squenceur cbl . Ces squenceurs trs complexes dans leur
ralisation sont trs performants car entirement constitus de circuits lectroniques.
Par contre aucune erreur nest permise lors de leur ralisation car il est impossible de
modifier le cblage. Enfin il est impossible dajouter une instruction qui pourrait tre
utile aprs la ralisation dun tel circuit.

7.3 Aspects internes

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

Dunod La photocopie non autorise est un dlit.

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

LES INTERRUPTIONS : MODIFICATION DU FLUX


DEXCUTION DUN PROGRAMME MACHINE

7.4.1 Principe des interruptions


Nous avons vu que lexcution dun programme machine se faisait instruction aprs
instruction de la premire jusqu la dernire. Une interruption permet darrter
lexcution du programme en cours afin dexcuter une tche juge plus urgente. De
cette manire, un priphrique, par exemple, peut signaler un vnement important
(fin de papier dans limprimante, dpassement de temprature signale par une sonde
place dans un four) au processeur qui, sil accepte cette interruption, excute un
programme de service (dit programme dinterruption) traitant lvnement. la fin
du programme dinterruption le programme interrompu reprend son excution normale.
On distingue plusieurs types dvnements provoquant des interruptions, ils
proviennent :
dun priphrique. On parle alors dinterruptions externes qui permettent un priphrique de se manifester auprs du processeur;

7.4 Les interruptions : modification du flux dexcution dun programme

155

dun programme en cours dexcution. Il sagit dinterruptions logicielles internes


souvent nommes appels systmes. Il sagit de permettre un programme en
cours dexcution de se drouter vers un programme du systme dexploitation
qui doit grer une tche particulire. Par exemple les instructions dentressorties, permettant les changes dinformations entre le processeur et les priphriques, sont traites de cette manire. Un ordre dentres-sorties est un appel au
systme (une interruption logicielle) qui interrompt le programme en cours au
profit du programme spcifique (driver ou pilote) de gestion dun priphrique;
du processeur lui-mme pour traiter des vnements exceptionnels de type division par zro, dpassement de capacit lors dune opration arithmtique.
La prise en compte et le traitement dune interruption sappuient sur un mcanisme relativement complexe. Afin dillustrer ce mcanisme nous prenons lexemple
du traitement dune interruption externe, donc produite par un priphrique. Pour
prendre en compte une interruption et la traiter il faut en dterminer son origine car
il y a plusieurs sources possibles dinterruptions, puis excuter le programme adapt.
Ce mcanisme sappuie pour partie sur le matriel (un priphrique positionne un
signal indiquant quil veut alerter le processeur) et pour partie sur du logiciel de traitement de linterruption. La figure 7.22 reprsente la prise en compte dun vnement externe provoquant une interruption.
programme de gestion
de linterruption
Processeur
Programme
en excution

INTA
INTR

Dunod La photocopie non autorise est un dlit.

Contrleur de disque magntique

Figure 7.22

Prise en compte dune interruption externe.

Dans ce schma tous les priphriques signalent un vnement au processeur par


le biais dune ligne dinterruption unique en positionnant le signal INTR. Le processeur, par le signal INTA, indique au priphrique que lvnement a t reu et quil
va tre pris en compte (il faut viter que le priphrique continue dmettre des
signaux). En gnral il nexiste quune seule ligne dinterruption et il faut donc dterminer lorigine de linterruption mise. Cela peut se faire par scrutation, en interrogeant tous les priphriques. Une autre mthode consiste ce que le priphrique,

156

7 La fonction dexcution

aprs avoir dpos un signal dinterruption, place sur le bus de communication


lidentification de linterruption. Le processeur prvenu dun signal dinterruption
(INTR) sait quil doit lire le bus de communication pour connatre la nature de
linterruption. Connaissant la nature de linterruption, le processeur peut excuter le
programme spcifique de traitement. Ce mcanisme implique des aspects matriels
(mise en place du signal) et logiciels (programmes de reconnaissance et de traitement). On voit donc que la prise en compte de ce mcanisme implique la coexistence
simultane en mmoire de plusieurs programmes machine. Les uns sont de type
systme dexploitation (les programmes de traitement des interruptions), les autres
de type utilisateur.
La figure 7.23 rsume ce mcanisme. On trouve les programmes de gestion des
interruptions (reconnaissance et traitement) et une zone mmoire, appele vecteur
dinterruptions, contenant les adresses mmoires des programmes de traitement dune
interruption. chaque entre de ce vecteur correspond une interruption particulire.
Lorsque le priphrique signale une interruption il dpose sur le bus le numro de
linterruption, ce numro identifie un point dentre dans le vecteur dinterruptions
donc ladresse du programme de traitement.
La prise en compte dune interruption se fait selon la squence :
1. le programme utilisateur dispose du processeur. Cest lui qui est en cours dexcution. Il dispose des registres, de lunit arithmtique et logique, de lunit de
Programme de reconnaissance de linterruption
(5)

(3)
(3)
Adressage
(4)
Programmes
dinterruption

Zone
de sauvegarde

(1)
Processeur
(2)

(6)

Programme
machine

Interruption
Mmoire
Figure 7.23

Prise en compte dune interruption.

7.4 Les interruptions : modification du flux dexcution dun programme

157

commande. Le compteur ordinal CO contient ladresse de la prochaine instruction


excuter;
2. une interruption est poste par un priphrique;
3. il y a sauvegarde du contexte matriel dexcution du programme utilisateur et en
particulier du compteur ordinal CO. Ceci est ncessaire pour la reprise ultrieure
de ce programme. Le programme de reconnaissance sexcute et lit le numro de
linterruption. Le numro de linterruption permet lidentification de ladresse du
programme de traitement;
4. le compteur ordinal CO est charg avec ladresse du programme de traitement et
celui-ci sexcute;
5. le contexte dexcution du programme utilisateur est recharg dans le processeur
la fin de lexcution du programme dinterruption;
6. le programme utilisateur reprend son excution.
En rsum le mcanisme dinterruption modifie le flux standard dexcution dun
programme machine. Le flux dexcution, tenant compte de possibles interruptions,
dun programme est rsum dans la figure 7.24.
Matriel

Prise en compte par le processeur dvnements externes


(exemple : les priphriques positionnent un signal qui est reu par le processeur).

Logiciel

Programme machine
1
Interruption
vnement externe
(signal)

Dunod La photocopie non autorise est un dlit.

Figure 7.24

Instruction en cours dexcution


2
3

Programme
de gestion
de linterruption

Flux dun programme avec prise en compte des interruptions.

Avant dexcuter une instruction (nouvelle phase de Fetch), le processeur vrifie


la prsence ou labsence dun signal dinterruption. Si le signal dinterruption est
post, le mcanisme de traitement de linterruption est mis en uvre sinon lexcution du programme utilisateur continue en squence. Une instruction commence se
termine toujours mme si une interruption est arrive pendant son excution. Linterruption sera prise en compte aprs la fin de linstruction et avant le dbut de linstruction suivante.
Ce mcanisme est fondamental, nous navons fait que laborder superficiellement
car il est dune grande complexit ds que lon entre dans les dtails de sa ralisation.
Il est, en particulier, utilis par le systme dexploitation pour le traitement efficace
des entres-sorties, nous y reviendrons donc dans la partie concernant le traitement
matriel des entres-sorties mais aussi dans les chapitres concernant le systme
dexploitation.

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

Pour dterminer ladresse du programme de traitement de linterruption lunit


centrale dispose dun tableau appel vecteur dinterruptions ayant autant dentres
que dinterruptions possibles. Le tableau 7.1 donne une image partielle du vecteur
dinterruptions.
La colonne de gauche indique les adresses dimplantation du vecteur dinterruptions. Ces adresses sont exprimes en notation hexadcimale. chaque ligne du
tableau correspond une entre dans le vecteur dinterruptions, chaque entre contient
4 octets. Chaque entre du vecteur dinterruptions est associe une interruption et
dlivre ladresse du programme de traitement correspondant.
La deuxime colonne contient le numro de linterruption et la troisime colonne
son identification. Par exemple ladresse 2C-2F du vecteur dinterruptions contient
ladresse du programme de traitement de linterruption associe au port de communication COM1.
Toutes les entres du vecteur dinterruptions ne sont pas notes dans le tableau, le
vecteur dinterruptions occupant toutes les adresses mmoire de 0 7F. La dernire
colonne nest pas rfrence car le nommage des points dentre dans les logiciels
de traitement dpend du systme dexploitation. Ainsi les signaux INTR, INTA et le

7.4 Les interruptions : modification du flux dexcution dun programme

159

vecteur dinterruptions permettent de rpondre aux deux premires questions que


pose la prise en compte dune interruption.
Pour les deux dernires questions, notre ordinateur est muni de matriel permettant
dune part darbitrer les conflits daccs au bus (botier 8288), dautre part daccepter
plusieurs lignes dinterruption logique, de positionner le signal INTR et de respecter
une logique de gestion des priorits et de limbrication des diffrentes interruptions
(botier 8259). Implicitement les interruptions sont classes par ordre de priorit.
Quand deux interruptions se prsentent simultanment, la plus prioritaire des deux
est traite, lautre tant mise en attente. Une interruption survenant alors quune autre
interruption est dj en cours de traitement ne sera prise en compte que si sa priorit
est plus leve que celle de linterruption actuellement en cours de traitement.

Dunod La photocopie non autorise est un dlit.

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

Architecture du matriel permettant la prise en compte des interruptions

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

Matriel pour la prise en compte des interruptions.

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

7.4 Les interruptions : modification du flux dexcution dun programme

161

Larbitre de bus envoie le signal dacquittement INTA indiquant que le signal a t


pris en compte. Le numro de linterruption est alors envoy au processeur. Ce
numro permet de trouver le point dentre dans le vecteur dinterruptions et donc de
connatre ladresse du programme de traitement du signal.
La figure 7.26 dtaille le contenu du botier 8259 afin de mieux comprendre les
mcanismes de gestion des priorits et dimbrication des interruptions. Les interruptions sont classes selon un ordre de priorit, 0 est la plus forte, 7 la plus faible. Le
registre IRR (registre des requtes dinterruptions) stocke les demandes dinterruptions
en positionnant 1 le bit correspondant dans le registre. Le registre ISR (registre des
interruptions en cours) contient un enregistrement des interruptions en cours de traitement. Le registre IMR (masque des interruptions) contient un enregistrement des
interruptions actives.
Le tableau 7.2 donne un exemple de comportement du botier qui opre en mode
totalement imbriqu, cest--dire qui gre les interruptions simultanes et les ventuelles imbrications.
Tableau 7.2
vnement

EXEMPLE DE COMPORTEMENT DU BOTIER 8259.

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

Dunod La photocopie non autorise est un dlit.

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

AMLIORATION DES PERFORMANCES

Pour amliorer les performances globales dun ordinateur, diffrentes approches


sont possibles :
augmenter la vitesse des microprocesseurs. Cest en gnral la premire approche
qui se traduit par laugmentation de la frquence dhorloge. Actuellement on trouve
frquemment des processeurs 1,5 GHz voire 3 ou 4 GHz. Cette volution a
pourtant des limites et dpasser certaines vitesses implique des changements technologiques importants qui ne sont pas ncessairement simples mettre en place
surtout dans le cas de production dordinateurs pour le grand public;
travailler sur larchitecture interne du microprocesseur. Dans nos exemples nous
avons choisi une architecture simple bus interne unique. En fait on peut considrablement amliorer les performances en multipliant le nombre de bus internes.
On trouve frquemment des microprocesseurs avec deux voire trois bus internes
permettant la paralllisation de certaines parties du chemin de donnes. La multiplication des registres internes peut permettre aussi une amlioration des performances. Ce type de considration est lorigine de la conception des processeurs
RISC en comparaison aux processeurs CISC. Nous examinerons plus en dtail
ces questions dans la partie consacre la comparaison RISC/CISC;
amliorer les performances du bus de communication entre processeur et mmoire
centrale. Ces amliorations portent gnralement sur la frquence du bus et sa
largeur. Cependant augmenter la largeur du bus pour transporter en un seul cycle
une plus grande quantit dinformation ncessite une plus grande surface ce qui
est contradictoire avec la miniaturisation ncessaire sur dautres plans;
en fait dautres approches sont possibles. Elles portent principalement sur la
paralllisation de certaines oprations qui consiste faire plusieurs choses en
mme temps. On trouve deux formes de paralllisation : le paralllisme au niveau
des instructions et le paralllisme au niveau des processeurs. Dans le premier cas
on permet lexcution simultane de plusieurs instructions machine et lon excute

7.5 Amlioration des performances

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

Dunod La photocopie non autorise est un dlit.

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

de fonctionner 4 80 MIPS puisque le pipeline est 4 tages et permet donc


4 instructions de sexcuter en parallle. En fait ce nest que lorsque le pipeline est
plein que le processeur fonctionne cette vitesse.
En ralit ce schma est idal mais plusieurs circonstances mettent en dfaut ce
schma et ralentissent donc le fonctionnement du pipeline :
les conflits de ressources. Il faut interdire laccs simultan une ressource par
plusieurs instructions;
les dpendances des donnes. Cest le cas o une instruction i a besoin comme
oprande du rsultat de linstruction i 1. Les deux phases ne peuvent pas tre
menes simultanment;
les conflits lis au contrle. Les instructions de sauts inconditionnels et de branchements conditionnels modifient le compteur ordinal et donc perturbent la simultanit dexcution quimpose le pipeline.
Malgr les circonstances qui empchent le fonctionnement idal dun pipeline
cette technique reste trs efficace pour lamlioration des performances dun ordinateur. Multiplier les pipelines permet encore des amliorations de performances. La
figure 7.28 donne le schma dun pipeline double.

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

7.5 Amlioration des performances

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.

Le Pentium 2 dispose de ce type de pipeline. Une telle architecture correspond


ce que lon appelle une architecture superscalaire. Ce type darchitecture est en fait
assez ancien et de tels choix architecturaux existaient dj dans les ordinateurs Control
Data tel que le CDC 6600. Le CDC 6600 disposait de 10 units dexcutions qui
paralllisaient donc trs fortement lexcution effective des instructions.
7.5.2 Paralllisme des processeurs

Dunod La photocopie non autorise est un dlit.

Cet aspect de lamlioration des performances par lutilisation dun paralllisme


entre processeurs est complexe et dpasse probablement le cadre dun tel ouvrage.
Nous donnons donc ici uniquement les grandes classes dorganisations que lon trouve
dans ce domaine.
Processeurs matriciels et vectoriels

Il sagit dune organisation o lon dispose dune seule unit de commande et de


plusieurs units de calcul (UAL). Lunit de commande pilote et organise la paralllisation de lexcution des instructions.
Un processeur matriciel excute la mme squence dinstructions sur des donnes
diffrentes et un processeur vectoriel traite efficacement des squences dinstructions portant sur des paires de donnes (les machines Cray sont base de processeurs vectoriels).
Les processeurs matriciels sont plus performants mais aussi beaucoup plus chers
et beaucoup plus complexes programmer que les processeurs vectoriels. Un proces-

166

7 La fonction dexcution

seur vectoriel peut tre associ comme coprocesseur arithmtique un processeur


conventionnel.
Multiprocesseur

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

En fait il sagit ici de remdier aux difficults lies larchitecture multiprocesseurs


et dviter les conflits daccs une mmoire commune. Dans cette architecture, dite
architecture distribue, la communication entre ordinateurs se rsume des changes
de messages au travers dun rseau de communication. Dans ce contexte on trouve
des applications telles que les changes de fichiers (ftp) ou la mise en place de terminaux distants faciles utiliser (telnet). En fait lefficacit du systme densemble
repose essentiellement sur la qualit du rseau de communication.

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.

Dunod La photocopie non autorise est un dlit.

Tableau 7.3

CLASSIFICATION DES ARCHITECTURES DORDINATEURS.

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

Taille la plus petite

6-35 ns

Cot le plus lev

Registres
Mmoire Cache
Mmoire centrale

70-120 ns

Mmoire dappui
Mmoire Externe

10 000 000-20 000 000 ns


Vitesse la plus lente

Taille la plus grande

Dunod La photocopie non autorise est un dlit.

Figure 8.1

Cot le plus bas

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

la gestion de la mmoire. Il sagit l de dfinir comment et par qui est utilise


cette mmoire. titre dexemple pour quun programme sexcute il faut quil
soit charg dans la mmoire centrale. Il existe plusieurs manires de raliser cette
fonction de chargement. De mme nous avons vu que pour prendre en charge le
mcanisme dinterruptions, plusieurs programmes, les programmes du systme
dexploitation et le(s) programme(s) utilisateur(s), doivent simultanment tre
prsents dans la mmoire centrale. Dans ce cas la gestion de la mmoire consiste
en un partage harmonieux de cette mmoire entre les diffrents programmes. Dans
le cas o plusieurs utilisateurs utilisent en mme temps le mme ordinateur il faut
une gestion de la mmoire leur permettant de partager cette ressource commune.
Il ne sagit plus l de savoir comment fonctionnent les diffrentes mmoires mais
comment, compte tenu de ces fonctionnements, elles peuvent tre utilises par les
programmes utilisateurs. Comment par exemple permettre un programme dont
la taille est plus grande que la mmoire centrale de sexcuter dans cette mmoire
centrale. Cest une des tches importantes du systme dexploitation que dassurer
la gestion de la mmoire. Cette question est aborde dans la troisime partie de
louvrage qui concerne les systmes dexploitation (chapitre 13).
Dans ce qui suit nous nous intressons lorganisation gnrale des mmoires et
leur fonctionnement. Laccent est surtout mis sur les mmoires de travail, quelques
indications sont cependant donnes concernant les mmoires de masse.
Plusieurs critres importants caractrisent les mmoires :
la capacit de la mmoire indique la quantit dinformation quune mmoire peut
stocker. En gnral cette capacit peut sexprimer en bits, en octets, plus rarement
en mots. Le tableau 8.1 rsume les principales expressions de la capacit mmoire;
le temps daccs de la mmoire caractrise le temps ncessaire pour obtenir une
information en mmoire. Pour une mmoire lectronique qui est une mmoire trs
rapide (RAM, ROM, registre) ce temps se mesure en nanosecondes (milliardime
de seconde : 10 9 s). Cette vitesse peut galement sexprimer comme une frquence
dhorloge caractristique de la mmoire, gale linverse du temps daccs et
mesure en hertz (Hz). Ainsi un temps daccs gal 10 nanosecondes correspond
une frquence de 100 Mhz (1 Mhz = 106 Hz). Pour des mmoires magntiques
ou optiques (mmoire de masse) ce temps se mesure en millisecondes (millime
de seconde : 10 3 s). Cet cart de temps est fondamental noter pour comprendre
le rle respectif de ces diffrentes mmoires dans un ordinateur;
Tableau 8.1

EXPRESSIONS DE LA CAPACIT MMOIRE.

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

8.2 Mmoires de travail

171

la bande passante de la mmoire. Ce critre sexprime sous la forme du produit de


la largeur du bus de donnes et de la frquence de la mmoire. Par exemple pour
une mmoire de 64 bits de largeur sur un bus 100 MHz la bande passante est de
800 Mo/s. Ce critre est trs utilis et tend remplacer le critre de temps daccs,
il permet, en effet, de mieux valuer les diffrents dbits synchroniser entre les
modules de lordinateur;
le temps de latence mesure le temps ncessaire la ralisation dune opration.
Cest un critre important qui intervient pour tous les types de mmoire. Il exprime
que tous les cycles horloge ne pourront tre utiliss. Une latence de 3 indique que
lobtention de linformation cote 3 cycles horloge, il y a donc perte de cycles
horloge. Pour un disque magntique, le temps de latence mesure le temps quil
faut pour que, une fois la piste atteinte, la donne se trouve sous la tte de lecture.
Il varie de 0 une rvolution complte du disque;
la volatilit reprsente le temps pendant lequel une information est disponible en
mmoire. Les mmoires magntiques sont non volatiles : linformation est conserve
mme aprs larrt de lalimentation lectrique. Les mmoires lectroniques sont
gnralement volatiles et perdent linformation ds que lalimentation lectrique
est coupe : cest le cas des mmoires vives telles que les mmoires RAM;
lencombrement. Les mmoires physiques occupent une place de plus en plus petite
ce qui permet une plus grande intgration. Cest un facteur important de dveloppement de linformatique;
le cot est un critre trs important dans les dveloppements de linformatique.
Les mmoires lectroniques ont un cot de stockage relativement lev et donc
leurs capacits sont dautant plus faibles. Les mmoires magntiques sont beaucoup
moins onreuses et prsentent donc de beaucoup plus grandes capacits de stockage.

Dunod La photocopie non autorise est un dlit.

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

Les diffrents types de mmoire vive

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

VRAM, WRAM, SGRAM


Type de mmoire pour la gestion des affichages
Figure 8.2

Les diffrents types de mmoires vives.

8.2 Mmoires de travail

173

Le tableau 8.2 rsume quelques caractristiques de ces mmoires.


Tableau 8.2
Type

SDRAM

DDR

RDRAM

Largeur
(bits)

Broches

168

64

184

Frquence
(Mhz)

100

64

184

EXPRESSIONS DE LA CAPACIT MMOIRE.

200

16

800

Bande
passante

Commentaires

800 Mo/s

Type un peu ancien et lent. On


trouve galement des SDRAM
133 Mhz pour une largeur
de bande de 1 064 Mo/s

1 600 Mo/s

Des volutions vers des


frquences de 266 et 333 Mhz
pour des largeurs pouvant
atteindre 128 bits et dbits
allant de 2 128 2 664 Mo/s.

1 600 Mo/s

Des volutions sur la largeur


du bus (de 16 32 bits) et des
frquences plus fortes permettraient des largeurs de bandes
allant jusqu 4 264 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

Dunod La photocopie non autorise est un dlit.

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

Pour raliser une criture, le processeur :


1. slectionne une adresse mmoire et dpose ladresse sur le bus dadresses;
2. dpose la donne sur le bus de donnes;
3. active la commande dcriture.
Pour raliser une lecture, le processeur :
1. slectionne une adresse mmoire et dpose ladresse sur le bus dadresses;
2. active la commande de lecture;
3. lit la donne sur le bus de donnes.

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.

Validation dune ligne


Validation dune colonne

Organisation de la mmoire sous forme dune matrice.

8.2 Mmoires de travail

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

Liaison processeur mmoire.

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

Dunod La photocopie non autorise est un dlit.

Vcc
GND

A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12

176

8 La fonction de mmorisation

Le processeur de cette figure a une capacit dadressage de 217 mots de 8 bits.


Chaque botier mmoire a une capacit de 213 mots de 8 bits (213 octets). Le processeur
peut donc adresser 16 botiers de mmoire. Une adresse mmoire correspond donc
un numro de botier et un numro de mot dans le botier. Pour cela 4 bits du bus
dadresses sont connects un circuit spcial permettant la slection dun botier, les
13 autres bits du bus permettent ladressage dun mot du botier slectionn. Le signal
Mmoire prte permet la synchronisation entre la mmoire et le processeur.
Prsentation physique

En gnral la mmoire se prsente sous la forme de puces mmoire (botiers)


dont la capacit moyenne est de 32 Mo et qui sont gnralement regroupes sur des
modules. Ces modules sont vendus selon 4 formats standards de 64, 128, 256 et
512 Mo. Ils se prsentent sous la forme de barrettes SIMM (Single Inline Memory
Module) ou DIMM (Double Inline Memory Module) qui offrent deux fois plus de
connecteurs que la SIMM. Un nouveau format voit actuellement le jour, les barrettes
RIMM (Rambus Inline Memory Module) qui correspondent aux RDRAM. Ce format
permet la lecture des donnes en srie et non plus en parallle et est plus conomique
fabriquer.
Les aspects internes : circuits et fonctionnement

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

8.2 Mmoires de travail

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

Dunod La photocopie non autorise est un dlit.

Mmoire Centrale

1
Circuit de slection
dadresses Dcodeur

Commandes

Bits

Organisation dune mmoire RAM.

Les circuits fondamentaux qui interviennent dans la ralisation dune mmoire


sont donc le circuit bit , le dcodeur dadresses, les circuits dchanges.
Le bit (figure 8.7) est un circuit prsentant deux tats stables, cods 0 et 1, dont on
peut dcrire la logique de fonctionnement par :
dbut
si C est actif
alors S = E;
sinon S = S;
fsi
fin

La valeur du signal de sortie S (0 ou 1) dpend donc du signal de commande C.


Tant que C nest pas actif la valeur du signal de sortie est inchange quelle que soit

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.

la valeur du signal dentre E. La valeur du signal de sortie est modifie et prend la


valeur du signal dentre ds que C est actif.
La ralisation matrielle dun tel circuit peut se faire laide :
dun circuit de type bascule (voir chapitre 4 sur les circuits logiques). Ce type de
circuit (figure 8.8) rpond bien lalgorithme dcrivant le fonctionnement dun
bit. On vrifie que si S est ltat 0 et que C est galement ltat 0 la valeur de S
est maintenue 0 quelle que soit la valeur de E. Si S et C valent 0, tandis que E
vaut 1, la sortie du circuit ET pilot par E a alors sa sortie 0, les deux entres du
circuit OR exclusif du haut valent 0 et donc la sortie vaut 1. Cette sortie devient
une entre du OR exclusif du bas dont les deux entres sont donc 0 et 1 ce qui
Bit
E
C
S

0
0
1
1
Figure 8.8

0
1
0
1

0
0
0
1

0
0
1
1

Utilisation dune bascule


pour raliser un bit de mmorisation.

0
1
0
1

1
0
0
0

8.2 Mmoires de travail

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

Dunod La photocopie non autorise est un dlit.

Bus de donnes

Bus dadresses

Slection botier. CS = 1
Commande : Lecture/criture

Figure 8.9

criture 1

Barrire
de sortie

Ralisation dune mmoire partir de bascules D.

180

8 La fonction de mmorisation

sortie. Il sagit dune mmoire de 12 bits organise en mots de 3 bits, respectivement


dadresse 0, 1, 2, 3 ( partir du haut du schma). Le bus de commandes transporte le
signal de commande (1 pour une criture, 0 pour une lecture). Le bus dadresses peut
adresser les 4 mots et le bus de donnes transporte 3 bits de donnes.
Pour crire dans le mot 1 de ce botier mmoire, le processeur :
active CS 1;
dpose la valeur dadresse binaire 01 sur le bus dadresses. La ligne 1 du dcodeur est active et prend la valeur 1;
place 1 sur le bus de commande. Le mot dadresse 1 est alors slectionn. Le signal C
de chaque bit du mot 1 est activ, donc les signaux S de ces bits prennent la valeur
des signaux E. Les signaux C des autres mots sont positionns 0. La barrire de
sortie est ferme (le contenu actuel du mot dadresse 1 naffecte pas le bus de
donnes). La barrire dentre est ouverte : les signaux E du mot dadresse 1 prennent la valeur des signaux du bus de donnes. Lcriture mmoire est termine.
Lopration de lecture est trs semblable. On notera limportance des barrires
dentre et de sortie qui dans le cas dune criture (barrire de sortie) empche que
les valeurs actuelles des bits ne viennent perturber les valeurs transportes par le bus
de donnes, et dans le cas dune lecture (barrire dentre) empche que les donnes
dposes sur le bus ne viennent perturber les signaux dentre de la mmoire.
8.2.2 Les mmoires mortes
Les mmoires vives sont accessibles en lecture et criture mais sont volatiles. Bien
des applications (programme et donnes) impliquent dtres stockes de manire
permanente, mme en labsence dalimentation lectrique, comme par exemple le
programme de boot dun ordinateur. Ces mmoires, accessibles uniquement en
lecture, sont connues sous le nom de ROM (Read Only Memory).
Les diffrentes volutions technologiques de ce type de mmoire sont rsumes
dans la figure 8.10.
La caractristique essentielle de ce type de mmoire est un temps daccs trs
faible, sauf peut-tre pour les mmoires flash (environ 100 nanosecondes). Comparativement aux disques magntiques (temps daccs en millisecondes) les mmoires
flash sont trs performantes mais ont, pour le moment, des dures de vie trop faibles
pour remplacer les disques magntiques.
8.2.3 Les registres
On peut raliser des registres partir de circuits flip-flops ou des bascules comme le
montre la figure 8.11. La broche dhorloge CK alimente toutes les entres CK des
bascules composant le registre. La broche CLR (Clear) est galement commune toutes
les bascules du registre et permet de remettre 0 le contenu de chaque bascule.
Le brochage dun registre de 16 bits ncessite donc, dans cette architecture,
36 broches. Comme nous lavons vu pour les mmoires de grande capacit ce nest
pas ce type de montage qui est ralis.

8.3 Mmoires de stockage : le disque magntique

Mmoires
mortes

181

ROM

Read Only Memory.


Permet un stockage permanent mme en labsence dalimentation
lectrique.
Linformation stocke dans ces mmoires lest de manire dfinitive.
Prix de revient lev, rserv aux grandes sries.

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

Erasable PROM. PROM effaable.


Elles peuvent tre effaces une fois crites au moyen dun faisceau
ultraviolet qui force tous les bits une mme valeur. Elles ont la mme
organisation que des SRAM.
Elles sont utilises en petites sries pour la mise au point des PROM.

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

Cest une mmoire de type EEPROM qui se reprogramme


lectriquement par bloc de 64 Ko (comme pour les blocs des disques
magntiques et de manire assez rapide (Flash). Son cycle de vie est
limit (100 000 criture). Elle peut remplacer des disques durs portables.
Prix de revient encore lev.

Figure 8.10

Les diffrents types de mmoire ROM.

Dunod La photocopie non autorise est un dlit.

VCC
E15 E14 E13 E12 E11 E10 E9 E8
CLR

CK GND S15 S14 S13 S12 S11 S10


Figure 8.11

8.3

S9

E7

S8

E6

S7 S6

E5

S5

E4 E3 E2

S4

S3 S2

E1 E0

S1

S0

Ralisation dun registre.

MMOIRES DE STOCKAGE : LE DISQUE MAGNTIQUE

Le disque magntique est prsent ici comme le reprsentant des mmoires de


masse dans la hirarchie de mmoires. Il existe plusieurs autres supports de stockage
de masse et nous examinerons leurs caractristiques essentielles dans le chapitre
consacr la fonction de communication.

182

8 La fonction de mmorisation

8.3.1 Caractristiques gnrales


Un disque magntique est constitu dun ou plusieurs plateaux mtalliques recouverts sur chaque face dune matire magntisable. La tte de lecture/criture est
constitue dun bobinage fer/nickel (figure 8.12) qui flotte une faible distance du
matriau magntisable. Lorsquun courant lectrique traverse le bobinage, une magntisation de la surface se produit.
Cette magntisation oriente les particules du matriau. Lorientation des particules
dpend du sens du courant lectrique. Cest ainsi que lon ralise une criture, lorientation des particules dfinissant la valeur attribuer la partie magntise (0 ou 1).
Lorsque la tte passe au-dessus dune zone magntise un champ lectrique est
induit dans la bobine. Le sens du champ lectrique induit dpend du type de magntisation. On peut ainsi en fonction du sens du champ lectrique savoir la valeur de
linformation que lon vient de lire.
8.3.2 Organisation gnrale
Lors de son fonctionnement le disque tourne une vitesse constante sous la tte de
lecture.
Sur chaque plateau se trouvent les pistes, zones circulaires sur lesquelles sont enregistres les squences de bits codant les informations stockes. Chaque piste est divise
en secteurs. Un secteur dbute par une zone de prambule qui permet de se synchroniser avant de faire une opration de lecture ou dcriture. De mme le secteur se
termine par un ensemble de bits permettant deffectuer des contrles derreurs sur
les informations stockes dans le secteur. Entre deux secteurs se trouve une zone ne
Axe de rotation
Champ magntique
Courant lectrique
fer-nickel

Bras

d < 1mm
Support magntisable

1 0 0 1 0 1
Secteur

Pistes

Tte
Sens de rotation
Figure 8.12

Structure dun disque magntique.

8.3 Mmoires de stockage : le disque magntique

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.

Dunod La photocopie non autorise est un dlit.

Adresse dune donne

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

tb : temps de dplacement du bras


tt : temps de positionnement de la tte
td : temps de transfert des donnes

td

temps dune opration dentres-sorties : tb + tt + td


actuellement tb + tt = ~ 10 ms
Environ 100 1 000 pistes (sur 5 cm)
Rotation 3 000 7 500 tours/mn (= 50 100 tours/s)
Figure 8.13

Temps daccs une information.

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

AMLIORATION DES PERFORMANCES

8.4.1 Les mmoires caches


Les performances (vitesse) des processeurs augmentent sans cesse. Les performances
des mmoires augmentent galement mais surtout en matire de capacit de stockage
et beaucoup moins en ce qui concerne les temps daccs. La frquence dun processeur est aujourdhui facilement de lordre de 1 GHz (1 000 MHz) ce qui signifie quil

8.4 Amlioration des performances

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.

Dunod La photocopie non autorise est un dlit.

Processeur
Registres

Mmoire
Cache

Mmoire Centrale

Bus local

SRAM
Bus
Figure 8.14

Hirarchie de mmoires.

DRAM

186

8 La fonction de mmorisation

Il faut distinguer la lecture et lcriture dun mot. Le principe de fonctionnement


pour la lecture dun mot est dcrit par lalgorithme :
si mot prsent
alors charger processeur avec le mot;
sinon
si cache plein
alors charger cache(remplacer);
charger processeur;
sinon
charger cache;
charger processeur;
finsi

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

8.4 Amlioration des performances

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

Dunod La photocopie non autorise est un dlit.

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

Le principe de localit suggre de considrer la mmoire centrale comme une suite


de blocs mmoires : les lignes de mmoires. Dans notre exemple (figure 8.15) la

188

8 La fonction de mmorisation

mmoire centrale est organise en ligne de 4 mots. Ladresse du premier mot de la


premire ligne est 000, ladresse du premier mot de la deuxime ligne est 004.
Ladresse de c est 022 que lon peut voir comme le numro de ligne 020 et un
dplacement (offset) de 2 mots.
Mmoire Centrale

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

Organisation de la mmoire centrale en lignes mmoires.

Fonctionnellement la mmoire cache est organise autour dun rpertoire de cls,


de comparateurs et de la mmoire utile qui contient linformation. La mmoire utile
comprend un certain nombre de lignes de mme taille que les lignes de la mmoire
centrale : ce sont les lignes de cache. Le rpertoire des cls a autant dentres quil y
a de lignes de cache, une cl est un numro de ligne de mmoire. Lorsquun numro de
ligne est prsent dans le rpertoire alors la ligne de cache associe la cl contient
les valeurs de la ligne de mmoire correspondante. Dans lexemple puisque 020 est
dans le rpertoire alors les mots mmoire de la ligne 020 sont dans le cache.
Lors dune opration de lecture, par exemple le processeur veut acqurir c
cest--dire le contenu du mot dadresse 022, le processeur doit vrifier si c est
prsent dans le cache. Pour cela ladresse est prsente au(x) comparateur(s) qui
vrifie si 020 est dans le rpertoire. Si cest le cas la donne est prsente dans le
cache. Si ce nest pas le cas le cache est charg avec la ligne 020 et le rpertoire est
mis jour. Charger une ligne et non pas uniquement la donne cherche permet de
prendre en compte le principe de localit.
Il y a plusieurs manires de construire des caches qui correspondent ce schma
fonctionnel et plusieurs facteurs sont dterminants pour une bonne conception dun
cache :
la taille. Plus le cache est gros, plus il est efficace mais aussi plus coteux;
la longueur des lignes de cache. Pour une taille de cache (mmoire utile) donne
il y a plusieurs manires de choisir le nombre et la longueur des lignes de cache;
le mode de gestion du cache. Les caches sont accs trs rapides mais linformation
que lon souhaite obtenir nest pas ncessairement prsente dans le cache (contrairement ce qui se passe dans une mmoire centrale). Aussi pour obtenir une infor-

8.4 Amlioration des performances

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

Il sagit du cache le plus simple, il est galement appel cache correspondance


directe. La figure 8.16, dans laquelle pour des raisons de simplicit dcriture, nous
adoptons une notation dcimale, donne un exemple dun tel cache. Ainsi la mmoire
centrale a une capacit de 10 000 mots dont les adresses voluent de 0000 9999.
En notation dcimale il suffit de 4 symboles pour reprsenter cet espace dadressage.
Dun point de vue fonctionnel la mmoire centrale est vue comme une suite de lignes
composes chacune 10 mots.
Index
tiquette
Offset
Load D, R
0

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

Cache correspondance directe.

Le cache est organis autour :


de la mmoire utile. Elle contient les donnes. Chaque ligne a une longueur de
10 mots. Il y a 10 lignes;
un rpertoire de 10 lignes. Chaque ligne comprend un bit de validit qui indique si
des donnes valides sont disponibles dans cette ligne ainsi quune cl permettant
didentifier prcisment une ligne;
un comparateur qui vrifie si la valeur dtiquette de ladresse est gale la cl.

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

Linstruction 1 aboutit un succs (hit) puisque rpertoire[index] (02) vaut


etiquette (02). Dans ce cas, laccs linformation est donc plus rapide que si linformation avait t dans la mmoire centrale. Linstruction 2 aboutit galement un
succs. Linstruction 3 aboutit un chec (miss). La ligne de mmoire centrale 011
remplace la ligne de cache indexe par 1 et la ligne de rpertoire indexe par 1 reoit 01
(tiquette). Dans ce cas, laccs linformation est plus lent que si lon avait directement adress la mmoire centrale. Mais comme on a charg une ligne complte de
mmoire le principe de localit nous indique quil y a toutes les chances que pour les
prochaines instructions du programme aboutissent des succs. De plus le temps de
chargement dune ligne en continue est plus petit que la rptition des chargements
mot par mot. Linstruction 4 aboutit un succs ainsi que linstruction 5.

8.4 Amlioration des performances

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

Dunod La photocopie non autorise est un dlit.

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

Cache purement associatif.

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 principe de fonctionnement est dcrit par lalgorithme :


si rpertoire contient tiquette
alors
information trouve;
charger le processeur;
sinon
si rpertoire plein
alors
algorithme de remplacement de ligne;
remplir la ligne choisie;
charger le processeur;
sinon
remplir une ligne libre;
charger le processeur;
finsi
finsi
Cette gestion est plus complexe que dans le cas du cache direct. Dans le cas dun
chec une ligne de mmoire doit tre charge dans le cache mais contrairement au
cache direct on ne connat pas le numro de la ligne du cache dans laquelle linformation doit tre place. Il faut donc vrifier si le cache est plein, et dans ce cas il faut
excuter un algorithme permettant de choisir la ligne remplacer. Cest le cas le plus
dfavorable et les performances de lalgorithme sont critiques pour que le cache soit
efficace : ainsi il ne faut pas que lon remplace la ligne qui va tre utilise immdiatement aprs son remplacement.

Algorithmes de remplacement de lignes


Il existe diffrents algorithmes de remplacement de lignes. Les principaux sont :
FIFO (First In, First Out) : dans ce cas, la ligne remplace est la ligne la plus
anciennement charge;
LRU (Least Recently Used) : dans ce cas, la ligne remplace est la ligne la moins
rcemment accde. Cette politique est meilleure que la prcdente car elle tient
compte des accs effectus par le processeur au cache, mais elle est coteuse car
ncessite de maintenir lordre des accs raliss;
NMRU (Not MostRecently Used) : la ligne remplace nest pas la plus rcemment utilise. Dans cette politique, la ligne remplace est une ligne choisie au
hasard dans lensemble des lignes du cache, hormis la ligne la plus rcemment
accde.
La dernire politique offre de bonnes performances et est couramment mise en
uvre dans les caches associatifs.
Cache mixte

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

8.4 Amlioration des performances

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

Dunod La photocopie non autorise est un dlit.

Bloc 2

Bloc 3

Figure 8.18

Cache mixte.

Nombre et localisation des caches

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

Diffrents niveaux de caches.

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.

8.4 Amlioration des performances

195

8.4.2 Mmoire virtuelle

Dunod La photocopie non autorise est un dlit.

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

Adresse _virtuelle : {4,2}


Figure 8.20

0
1
2
3
4
5
6
7
8
9
10
11

Adresse_physique : 10
Adresse virtuelle.

adresse _physique = table_des_blocs[numro_de_bloc_logique, 1] + dplacement

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

8.4 Amlioration des performances

197

Adresse _virtuelle

{4,2}

MMU
Memory Unit Management

Transforme une adresse virtuelle


en une adresse physique
en utilisant la table des blocs
associe au programme

10

Adresse_physique
Figure 8.21

Fonctionnement de la MMU.

Dunod La photocopie non autorise est un dlit.

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

Implantation du module MMU dans le processeur.

donc ralentit le processus dexcution. Il est prfrable de placer ce type de table


dans le cache afin daccder son contenu le plus rapidement possible.
Le mcanisme de gestion de mmoire virtuelle nest pas conceptuellement diffrent du mcanisme de gestion des caches. La diffrence porte essentiellement sur
limplantation de ces mcanismes. Par exemple dans le cas des caches les algorithmes
de remplacement sont pris en charge par le matriel (algorithme hardware) alors que
pour la mmoire virtuelle cette gestion est logicielle (prise en compte par le systme
dexploitation).
Il y a plusieurs mcanismes possibles pour la gestion de la mmoire virtuelle,
taille des blocs fixe ou variable, implication des programmeurs ou transparence au
niveau de la programmation, implication de modules matriels ou non. Ces questions dimplantation du mcanisme de gestion de la mmoire virtuelle sont dtailles
dans le chapitre relatif aux systmes dexploitation traitant de la gestion de la mmoire.

8.5

COMPLMENTS : APPROCHES CISC/RISC

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

8.5 Complments : approches CISC/RISC

199

Dunod La photocopie non autorise est un dlit.

de registres, des modes dadressage varis et complexes, enfin un grand nombre


dinstructions dune grande complexit. Les gros ordinateurs tels que les IBM370 et
les VAX sont reprsentatifs de ces volutions et illustrent ce que lon appelle lapproche
CISC (Complex Instruction Set Computer).
Dans les annes soixante-dix, larchitecture CISC est rsume par un certain nombre
de rgles de conception nonces par Patterson et dcrite par tiemble :
comme la technologie mmoire utilise pour la microprogrammation crot trs
vite, il ne cote rien ou presque dutiliser de trs gros microprogrammes ;
comme les micro-instructions sont beaucoup plus rapides que les instructions
machines, le transfert de fonctions logicielles au niveau microcode acclre le
processeur et rend les fonctions plus fiables ;
puisque la vitesse dexcution est proportionnelle la taille du programme, les
architectures qui diminuent la taille des programmes acclrent les processeurs ;
les registres sont dmods et rendent difficiles la ralisation des compilateurs.
Les piles ou les architectures mmoire mmoire sont des modles dexcution
suprieurs .
Dans ce type darchitecture, le contrle (squenceur de lunit de commande) est
microprogramm : la complexit des instructions machines justifie ce choix en particulier pour la mise au point efficace des squenceurs. Le microprocesseur Motorola
68000 32 bits implante une puce VLSI (Very Large Square Integration) caractristique de lapproche CISC. Il se trouve que les besoins en performances croissent
plus rapidement que les volutions technologiques, phnomne qui a conduit un
rexamen des architectures des ordinateurs. En 1974, la compagnie IBM lance un
projet darchitecture qui conduira ce qui sappellera plus tard larchitecture RISC
(Reduced Instruction Set Computer). Cette architecture est caractrise par lexistence de caches dinstructions et de donnes, labsence doprandes en mmoire
pour les instructions arithmtiques et logiques ; les instructions sont simples et de
longueur fixe.
Les premiers processeurs de ce type ont vu le jour Berkeley (RISC1) et Stanford
(MIPS). Le terme RISC a t introduit par Patterson pour caractriser des architectures o lon cherche excuter une instruction en un cycle mmoire.
Afin de mieux comprendre lvolution du CISC vers le RISC il convient de
prciser quelques points importants concernant les performances des processeurs et
la traduction des programmes.
8.5.1 Les performances dun processeur
Elles font intervenir plusieurs facteurs : le temps dexcution dun programme, la
gestion de la mmoire (au sens des modes daccs la mmoire qui implique les
diffrents modes dadressage dont on dispose dans les instructions machines), les interruptions et les changements de contexte.
On peut caractriser le temps dexcution dun programme, Te, par :
Te = Ni * Nc * Tc

200

8 La fonction de mmorisation

Ni reprsente le nombre dinstructions excuter. Ce nombre dpend de la nature


et de la richesse du jeu dinstructions machine disponible. Cest le compilateur qui,
partir dun programme crit dans un langage de haut niveau (LHN), gnre la
squence dinstructions machines correspondant chaque instruction du LHN. Tc est
le temps dun cycle machine et Nc le nombre de cycles ncessaires lexcution
dune instruction machine. Ces facteurs dpendent essentiellement de la complexit
des instructions machines.
Ainsi amliorer les performances dun programme consiste minimiser Te donc
le produit des trois facteurs prcdents.
Lexcution dune instruction se traduit, comme nous lavons vu prcdemment,
par lensemble des tapes suivantes : fetch, modification du compteur ordinal, dcodage de linstruction, recherche ventuelle du ou des oprandes, excution (microinstructions) et rangement des oprandes.
Nous avons galement vu que plusieurs de ces tapes pouvaient tres ralises en
parallle ce qui sest traduit par limplantation de mcanismes de pipeline. Ainsi les
approches CISC et RISC pour la minimisation de Te et lutilisation du pipeline sont
diffrentes.
8.5.2 La traduction des programmes
Pour rsoudre les problmes les programmeurs utilisent des langages de haut niveau
que les compilateurs traduisent en langage machine. Au moins deux approches sont
possibles pour cette traduction :
faire correspondre chaque structure de donnes exprime dans le langage de haut
niveau un mode dadressage adapt dans le langage machine, cest lapproche CISC;
nimplanter en machine que les mcanismes rellement utiles (dont on a statistiquement montr lutilit), cest lapproche RISC.
8.5.3 Approche CISC
Cette approche se caractrise par :
un jeu dinstructions trs riche et une grande varit de modes dadressages;
un grand nombre dinstructions;
des instructions complexes et de longueurs variables afin de rpondre la grande
varit des instructions des langages de haut niveau.
On peut tayer les raisons de ces choix par les objectifs suivants :
simplifier les compilateurs et amliorer leurs performances. Il sagit ici de rduire
la distance entre langage de haut niveau et langage machine. On passe plus facilement dune instruction en langage de haut niveau la squence correspondante
dinstructions machine;
un jeu dinstructions riche et ralisant des fonctions complexes permet de rduire
la taille du programme machine et donc dconomiser de la place en mmoire
principale.

8.5 Complments : approches CISC/RISC

201

Quelques consquences de ces choix :


les instructions, pour traduire facilement la complexit du langage de haut niveau,
sont de longueurs variables et oprent souvent sur un seul oprande en mmoire.
Cela implique des modalits de gestion complexe et coteuse en accs mmoire;
un grand nombre de modes dadressages est ncessaire pour caractriser la richesse
des structures de donnes des LHN.
Lapproche CISC se caractrise par une volont de rendre indpendant le matriel
(architecture interne et langage machine) et le logiciel (les langages de haut niveau).
Pour obtenir de bonnes performances avec ce type darchitecture il faut donc :
un compilateur qui permet dutiliser efficacement le jeu dinstructions machine.
Or il existe toujours plusieurs manires de passer dune instruction du langage de
haut niveau la squence dinstructions machine qui la ralise sur le matriel. Il
faut donc essayer de raliser le meilleur choix possible dans tous les cas ce qui est
difficile voire impossible. En fait des tudes statistiques montrent que les compilateurs utilisent plutt les instructions simples que les instructions complexes;
la complexit des instructions et des modes dadressage implique un squencement microprogramm. Ce type de squenceur occupe une surface importante qui
peut atteindre 60 % de la surface totale du composant ce qui rduit dautant la place
disponible pour implanter un plus grand nombre de registres et des mmoires caches.
Ainsi cest lexamen de la complexit des modes dadressages, des instructions rellement utilises par les programmes et la complexit du squencement qui a conduit
lvolution vers lapproche RISC.

Dunod La photocopie non autorise est un dlit.

8.5.4 Approche RISC


Si dans lapproche CISC la volont tait de sparer la machine matrielle de limplantation, dans lapproche RISC cest la volont dune optimisation globale (matrielle
et logicielle) qui est le moteur : on souhaite raliser des architectures efficaces pour
lexcution des programmes.
La dfinition des architectures RISC repose sur lexamen statistique de lexcution
de programmes. Ces statistiques ont port au cours des annes 70-80 essentiellement
sur ltude des instructions rellement utilises, les impacts en temps de lexcution,
les modes dadressages effectivement utiliss. Dans un langage machine on peut
classer les instructions en plusieurs types qui sont : laffectation, litration, lappel
de procdure, les branchements conditionnels et les branchements inconditionnels.
Quelques rsultats sur ces statistiques et mesures effectues par Patterson, Seguin,
Tanenbaum sont :
si lon mesure le pourcentage relatif dune classe dinstruction par rapport
lensemble des instructions utilises dans un programme il apparat que les affectations avec transfert simple de donnes sont trs majoritaires (60 %);
sur les impacts en temps dexcution. Les appels de procdures reprsentent 20 %
des instructions du langage de haut niveau, 60 % du temps dexcution des instructions

202

8 La fonction de mmorisation

machine et 70 % des temps daccs la mmoire. Ce point marque limportance


de loptimisation des passages de paramtres et du nombre des paramtres;
lessentiel des rfrences mmoire porte sur des variables simples : 75 % sur des
constantes et variables scalaires. Les structures de donnes complexes sont trs
minoritaires.
Ces rsultats sont lorigine des architectures RISC que lon peut caractriser par :
une diminution de la complexit de la partie unit de commande. Le squenceur
est cbl et est donc plus rapide;
une diminution de la surface du squenceur, ce qui permet daugmenter le nombre
de registres et dutiliser des mmoires caches spares pour les instructions et les
donnes sur le composant;
une simplification des modes dadressage et des instructions do une simplification de la compilation;
une implantation dinstructions de longueurs fixes permettant lutilisation dun
pipeline efficace.

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.

Dunod La photocopie non autorise est un dlit.

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

Dans ce chapitre nous tudions une fonction fondamentale de nos ordinateurs : la


fonction de communication. Cette fonction recouvre toutes les activits permettant
les changes dinformations entre les priphriques, le processeur central et la
mmoire centrale. Elle recouvre ce que lon appelle gnralement la gestion des
entres-sorties. Il sagit dune fonction complexe au regard des diffrents lments
intervenant dans cette gestion qui, si elle est mal ralise est trs pnalisante pour les
performances globales dun ordinateur. Pour examiner cette fonction nous utilisons
notre machine de base (figure 9.1) qui va nous permettre de prsenter les diffrents
composants intervenants dans la gestion des entres-sorties puis de montrer les
volutions de ces modules afin dobtenir la structure moderne et efficace des ordinateurs actuels.

9.1

INTRODUCTION

La gestion des entres-sorties est complexe et gnratrice dun fonctionnement peu


efficace de notre ordinateur car elle implique beaucoup de modules quil faut savoir
combiner harmonieusement.
Les priphriques

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.

permanente des informations. On y trouve clavier, souris, imprimantes, crans, modems


et pour le stockage par exemple des disques magntiques. Chaque priphrique est
pilot par un ensemble de signaux spcifiques au priphrique, et activs par lunit
dchange.
Les interfaces daccs aux priphriques

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.

Dunod La photocopie non autorise est un dlit.

Le bus de communication

Le programme dentres-sorties gre les changes de donnes entre mmoire centrale


et priphrique, il utilise le bus de communication pour ces changes. La machine
prsente est une machine dite bus unique. Cette architecture a pendant longtemps
t celle de nos ordinateurs personnels, elle pose cependant des problmes defficacit cause de la trs grande htrognit des performances des composants que le
bus interconnecte. Par exemple lorsquun contrleur et le processeur central souhaitent utiliser, au mme moment, le bus de communication pour raliser un change il
y a conflit daccs cette ressource unique. Il faut, pour rgler ce conflit, faire appel
un dispositif particulier (larbitre de bus) afin dordonnancer les demandes daccs
au bus. Dans une telle architecture la priorit est gnralement donne au contrleur
afin que lopration dentres-sorties puisse seffectuer sans perte dinformations (si
une opration dentres-sorties disque est en cours il nest pas possible de stopper
cet change, pour attribuer le bus au processeur, sans risquer de perdre des informations). Ainsi lorsquun programme est en cours dexcution il utilise sa guise le bus
mais si une opration dentres-sorties doit tre ralise, le contrleur met une
requte larbitre de bus pour signaler quun transfert de donnes est ncessaire.
Pendant cette requte le processeur est priv du bus. Ce mcanisme est appel vol
de cycle. Ce mcanisme ralentit lgrement le processeur dans lexcution dun

208

9 La fonction de communication

programme. Cette architecture est convenable, du point de vue des performances,


tant que les diffrents modules intervenants (processeur, mmoire, contrleurs) ont
t conus globalement pour fonctionner ensemble. Ces dernires annes il y a eu
une trs forte volution des performances des processeurs, des mmoires et des
units dchange. Les bus nont pas suivi la mme volution et sont donc devenus un
des facteurs importants mettant en cause les performances globales de nos ordinateurs. Nous examinerons plus en dtail les volutions des bus dans les nouvelles
architectures.
Le pilote

Le programme de gestion dune opration dentres-sorties est appel pilote (driver).


Le dernier lment intervenant dans la prise en compte dune opration dentressorties est le programme de gestion des entres-sorties. Lorsque nous achetons une
imprimante ou un disque magntique le constructeur fournit une disquette (ou maintenant un CD-ROM) contenant un logiciel : le driver (ou pilote) du priphrique. Ce
logiciel connat toutes les caractristiques techniques du priphrique et est spcifique de ce priphrique. Ainsi un utilisateur travaillant avec un logiciel de traitement de textes clique sur une icne pour dclencher limpression dun document
(fichier). Cette action sur licne dimpression permet dactiver le pilote de limprimante, qui reoit les donnes (le fichier) imprimer. Le pilote gre alors limpression. Ainsi ce nest pas le logiciel de traitement de texte qui gre directement les
impressions, il connat le pilote du priphrique et lui dlgue cette tche. Le logiciel
de traitement de textes connat le pilote dimpression car ce dernier est install dans
le systme dexploitation : quand nous achetons un priphrique nous devons installer
le pilote. Ce mcanisme (dlguer le traitement des entres-sorties un programme
du systme dexploitation) est gnral et fondamental dans le traitement des entressorties. En consquence un programme utilisateur pour raliser des changes ne
communique pas directement avec le priphrique mais avec le pilote de ce priphrique : les programmes ne connaissent les priphriques quau travers des pilotes qui
leur sont associs.
Comme lindique la figure 9.2 la mmoire centrale est partage en deux parties,
lune contenant le noyau du systme dexploitation, lautre le ou les programmes
utilisateurs selon que la machine est multiprogramme ou non (ces questions seront
dtailles dans les chapitres consacrs au systme dexploitation).
Pour quun programme soit excutable par un processeur il faut, comme nous
lavons vu, le traduire dans le langage du processeur (cest lopration de compilation), puis le placer en mmoire centrale (cest lopration de chargement en
mmoire). On dispose alors en mmoire du programme machine. Pour commander
une impression il faut placer dans le programme les instructions dentres-sorties
pilotant une impression (la syntaxe de ces instructions dpend du langage utilis
pour crire le programme). Les instructions dentres-sorties sont traites de
manire particulire dans cette phase de traduction : un ordre dopration dentressorties est traduit par un branchement (SVC, Supervisor Call) qui est un appel au
systme dexploitation. On parle galement de trappe systme qui permet denlever le

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

Dunod La photocopie non autorise est un dlit.

Processeur

Figure 9.2

SVC

Activation du pilote pour la gestion dune opration dentres-sorties.

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

Dunod La photocopie non autorise est un dlit.

9.2 Les bus

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.

9.2 Les bus

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.

Dunod La photocopie non autorise est un dlit.

Tableau 9.1

CARACTRISTIQUES DES BUS DE COMMUNICATION.

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

Architecture multibus (bus PCI).

Rseau

9.2 Les bus

215

gestion et arbitrage des accs au bus;


gestion du temps laide de timers;
contrleurs dinterruptions.
titre dexemple Intel a dvelopp un chipset Intel 40BX compos dun module
82443BX (qui permet linterfaage entre le processeur, la mmoire centrale et les
autres bus, PCI et AGP) et du contrleur PIIX4 (interfaage entre les bus PCI et ISA).
Les principales caractristiques du premier composant sont :
gestion dun ou deux processeurs Pentium II interconnects par un bus systme
100 MHz;
contrle de la mmoire centrale. Il supporte de la mmoire de type EDO 60 ns
ou SDRAM (100 MHz);
gestion de linterface avec le bus PCI ayant une frquence de 33 MHz;
gestion dune interface pour le bus AGP dont la frquence de 133 MHz permet un
dbit de 500 Mo/s.
Enfin ce composant contient des registres accessibles dans lespace dadressage
du processeur, il peut donc contrler les accs aux priphriques pilots par les bus PCI
et AGP (nous revenons sur ces notions dadressage dans la partie concernant les interfaces daccs aux priphriques).
Pour ce qui concerne le deuxime composant de ce chipset on peut noter les caractristiques suivantes :

Dunod La photocopie non autorise est un dlit.

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

9.2.3 Le bus AGP (Accelerated Graphics Port)


Caractristiques

Lutilisation intensive des graphismes en 3D et de la vido impose des dbits


toujours plus importants. Une solution est la mise en place dun bus spcialis pour
le traitement graphique : le bus AGP. La spcification de ce type de bus date de 1996,
elle sappuie sur la spcification du bus PCI en lui apportant des amliorations. La
principale de ces amliorations est le dmultiplexage des adresses et des donnes sur
le bus et lintroduction du mode pipeline pour les oprations de lecture et dcriture
en mmoire.
Au dbut le bus AGP 66 MHz autorisait un dbit de 266 Mo/s. Avec le mode
AGP2X puis AGP4X on obtient des dbits de 533 Mo/s et 1 Go/s.

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

Architecture multibus (bus PCI et AGP).

Rseau

9.2 Les bus

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

Dunod La photocopie non autorise est un dlit.

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 Mono-processeur Pentium 4


Documentation Intel
Figure 9.5

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.

LES INTERFACES DACCS AUX PRIPHRIQUES

Les micro-ordinateurs sont organiss autour dun ou plusieurs processeur(s), de circuits


mmoires, dunits dchanges (contrleurs) et du bus dinterconnexion reliant ces
diffrents composants. Nous avons examin les fonctionnements des processeurs,
des mmoires et larchitecture des bus permettant de faire fonctionner ces composants ensemble. Une opration dopration dentres-sorties implique dchanger
des informations entre les composants internes et les priphriques. Pour raliser ces
changes on dispose de composants particuliers, les units dchanges, dont le rle
est de piloter les priphriques. Nous allons donc tudier dans cette partie les units

9.3 Les interfaces daccs aux priphriques

219

dchanges et plus gnralement les interfaces daccs aux priphriques. Nous


abordons cette prsentation en prsentant les fonctionnalits des units dchanges
que lon peut considrer comme traditionnelles (cartes sries, parallles, les cartes
daccs aux rseaux locaux.). Puis nous prsentons les bus dextension (pour la gestion
des entres-sorties) et plus particulirement les bus sries USB, SCSI et FIREWIRE.
Il sagit l dun choix arbitraire (nous aurions pu dcrire ces bus dans la section
consacre aux bus) qui dun point de vue fonctionnel nous est apparu cohrent.
9.3.1 Les units dchanges
Nous allons dabord prciser la manire daccder une unit dchange, cest--dire
comme nous lavons fait pour la mmoire, dfinir ladresse dune unit dchange.
Nous prcisons ensuite la structure fonctionnelle dun contrleur. Enfin nous donnons
des exemples de telles units dchanges.
Gnralits : adressage, structure et fonctionnement dune unit dchange

Il y a deux manires datteindre un circuit de gestion dentres-sorties. On peut le


voir du point de vue de ladressage, comme un composant spcifique. Il faut alors
disposer dun signal particulier que lon dpose sur le bus pour indiquer que lon veut
faire une opration dentres-sorties. Lautre manire est de dcider que les circuits
dopration dentres-sorties font partie de lespace dadressage du processeur. Le
choix de lune ou lautre des mthodes est arbitraire. La figure 9.7 prsente ladressage
dune unit dchange comme faisant partie de lespace dadressage du processeur.
Bus de commandes

Slction

Dunod La photocopie non autorise est un dlit.

Bus de donnes

Mmoire
ROM

Mmoire
RAM

Unit
dchange

Bus dadresses

Figure 9.7

Espace dadressage unique.

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

Structure gnrale dune unit dchange.

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

9.3 Les interfaces daccs aux priphriques

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.

Dunod La photocopie non autorise est un dlit.

Exemple 1 : la liaison srie

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

Communication entre deux ordinateurs distants.

communication dinformations numriques avec le programme dentres-sorties


au travers des composants internes;
production et rception de signaux lectroniques pour les changes avec le monde
extrieur.
Nous allons examiner plus en dtail larchitecture de lunit dchange, la manire
dchanger des donnes avec les composants internes, la production et la rception
des signaux lectroniques pour raliser un tel change. Du point de vue matriel
cette communication met en jeu lUART, le connecteur V 24 (RS232) et le modem.
UART : Universal Asynchronous Receiver Transmitter

La figure 9.10 prsente larchitecture dune UART. Globalement on retrouve les


composants qui ont fait lobjet de la description fonctionnelle dune unit dchange.
LUART est une unit dchange, le systme dexploitation inclut donc un pilote
(driver) spcifique de cette unit dchange. Le pilote connat ladresse des diffrents
registres composant lUART et effectue des changes avec ces registres.
Le bus est en relation avec les registres suivants :
le registre de rception. Il contient le caractre en provenance de lordinateur
distant. LUART manipule les informations caractre par caractre;
le registre de validation des interruptions que lon accepte de prendre en compte;

9.3 Les interfaces daccs aux priphriques

223

le registre indiquant le statut de la ligne de transmission (libre, occupe);


le registre didentification de linterruption. Lorsquun caractre vient dtre reu
dans le registre de rception ou vient dtre mis depuis le registre dmission, il
y a leve dune interruption qui prvient le processeur quun caractre est disponible dans lUART ou que lUART est disponible pour une nouvelle mission. On
peut donc dclencher lexcution du programme dextraction du caractre;
le registre diviseur. Cest le registre dont le contenu permet de dfinir la vitesse
dmission et de rception de la ligne;
le registre de contrle du modem. Cest partir de ce registre que lon positionne
les signaux destination du modem;
le registre statut du modem. Il contient les informations permettant de connatre
ltat du modem. Ce registre est aliment par les signaux en provenance du modem
et positionns par ce dernier;
le registre dmission. Il contient le caractre transmettre lordinateur distant
via le modem.
Les informations vhicules par le bus interne sont transmises en parallle. La
liaison externe utilise ici est une liaison srie et il est donc ncessaire de srialiser
un caractre lorsque lon met et de parallliser les bits la rception des caractres.
Ce travail est effectu par les registres dcalage.
UART

INTR
Rception
dcalage

Rception

Donne
reue

Valider
interruptions
Statut ligne
BUS

Logique
dinterruption

Logique
de communication

Identification
interruption

Dunod La photocopie non autorise est un dlit.

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

Enfin lUART communique avec le modem au moyen de signaux lectroniques


principalement : RTS (Request To Send), DTR (Data Terminal Ready), CTS (Clear
To Send), DSR (Data Set Ready), RLSD (Received Line Signal Detector) et RI (Ring
Indicator).
Le connecteur V24 et linterface de communication standard (RS232)

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.

La plupart des logiciels de communication nutilisent pas la totalit des signaux


offerts par cette norme. Dans la plupart des situations on nutilise au maximum une
dizaine de signaux. Le tableau 9.2 dcrit ces signaux et le brochage des connecteurs
utiliss pour une telle connexion.
Tableau 9.2
Signal

SIGNAUX ET BROCHAGE DES CONNECTEURS V24.

Broche

Terre

Terre de protection

Terre de signalisation

mission de donnes

Contrle

Donnes

De

Vers

ETTD

ETCD

Rception de donnes

ETCD

ETTD

Demande pour mettre

ETTD

ETCD

Prt mettre

ETCD

ETTD

Poste de donnes prt

ETCD

ETTD

Terminal de donnes prt

20

ETTD

ETCD

Indicateur dappel

22

ETCD

ETTD

Dtection de signal

ETCD

ETTD

9.3 Les interfaces daccs aux priphriques

225

Les signaux ont la signification suivante :


terre de protection. Cest un circuit optionnel qui ne joue pas de rle dans la
communication;
terre de signalisation. Cest le zro de rfrence, les autres signaux ont une valeur
positive ou ngative par rapport ce signal;
mission de donnes. Cest le fil sur lequel lordinateur envoie des bits au modem;
rception de donnes. Cest le fil par lequel lordinateur reoit les bits en provenance du modem;
demande pour mettre (RTS). Lorsque lETTD veut mettre il demande lautorisation de le faire par le biais du signal RTS. LETCD rpond sil est prt en positionnant le signal prt mettre (CTS);
prt mettre (CTS). LETCD rpond une demande pour mettre en indiquant
lETTD quil est prt envoyer des donnes sur la ligne de donnes;
poste de donnes prt (DSR). Ce signal positionn indique lETTD que lETCD
est connect au canal de communications et est prt mettre;
terminal de donnes prt (DTR). Par ce signal lETTD prvient lETCD quil est
prt mettre;
indicateur dappel (RI). Ce signal est utilis dans les modems autorpondeurs.
LETCD indique lETTD quil reoit un appel;
dtection de signal (RLSD). Ce signal est le signal de dtection de porteuse.
Muni de ce matriel un programme qui veut transfrer des donnes vers un ordinateur distant doit excuter le protocole indiqu dans la figure 9.12.
mission

Rception

DTR

CTS

ETTD

ETCD

ETTD
Dunod La photocopie non autorise est un dlit.

RTS

Donnes

ETCD

DTR

DSR

Donnes

Figure 9.12

Protocole pour le transfert de donnes (rception).

Le droulement temporel du protocole est le suivant :


1. lordinateur positionne le signal DTR et indique au modem que lordinateur est
prt mettre;
2. le modem rpond par le signal DSR. Cela indique que la connexion avec lordinateur distant est tablie;

226

9 La fonction de communication

3. lordinateur positionne le signal RTS. Il demande ainsi au modem lautorisation


dmettre;
4. le modem positionne le signal CTS ce qui indique quil est prt mettre;
5. lordinateur met des donnes.
Les conditions ncessaires une rception de donnes sont beaucoup moins
contraignantes. Le protocole de rception est dcrit dans la figure 9.12.
Le droulement temporel de ce protocole est le suivant :
1. lordinateur positionne le signal DTR et indique ainsi quil est prt recevoir;
2. le modem met vers lordinateur les donnes lorsquelles existent.
Ainsi le modem se contente de retransmettre les donnes quil reoit aussi longtemps que lordinateur est prt. Cette caractristique fait dire que le protocole RS232
est orient mission.
En rsum

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

titre indicatif nous donnons en exemple une application importante utilisant la


liaison srie, celle de laccs un serveur web au travers dune liaison tlphonique
(RTC). La figure 9.13 donne larchitecture gnrale de cette application.
Lutilisateur dispose dun compte chez un fournisseur daccs (provider) et il connat
ce provider par un numro tlphonique. Pour accder un serveur web lutilisateur
dispose dun logiciel, le butineur (browser), tel quInternet Explorer ou Netscape.
Pour communiquer avec un serveur web, lutilisateur lance lexcution de son

9.3 Les interfaces daccs aux priphriques

227

browser. Ce dernier excute un programme de connexion au provider, qui connat


ladresse du provider et excute le protocole que nous avons prcdemment dcrit
(nous sommes ce niveau exactement dans la situation dcrite dans lexemple prcdent). Le rsultat de cette connexion est quil existe maintenant une liaison entre le
browser de lutilisateur et le provider. Lutilisateur peut, au travers du browser,
prciser ladresse internet du serveur quil veut rejoindre (http ://) qui est transmise au provider par le lien tabli. Le provider au travers des protocoles rseau se
connecte au serveur web. Il existe maintenant un lien de bout en bout entre le
browser de lutilisateur et le serveur web. Les changes peuvent avoir lieu.

Modems

Rseau Tlphonique
Commut

Liaisons
Internet

Prises tlphone

Provider

Figure 9.13

Rseau
(Internet)
Serveur Web

Schma de connexion par le rseau tlphonique commut.

Dunod La photocopie non autorise est un dlit.

Exemple 2 : liaison Ethernet

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

Connexion un rseau thernet.

La connexion via un contrleur thernet nest pas restreinte la connexion entre


ordinateurs. On peut galement grce ce type de connexion partager des priphriques tels que des imprimantes et des disques magntiques. La figure 9.15 illustre
ce point.

9.3 Les interfaces daccs aux priphriques

229

Rseau local (thernet)

Rseau
(Internet)

Serveur
Figure 9.15

Partage de ressources au travers dune connexion internet.

Ce type de connexion est aussi la principale source de connexion linternet au


travers des rseaux locaux qui existent gnralement dans les universits et les entreprises.
Les contrleurs de disques magntiques

Dunod La photocopie non autorise est un dlit.

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

mise en route, initialisation


numro unit slectionne
numro cylindre slectionn
numro face slectionne
ordre de lecture
horloge
ordre dcriture
donnes
indicateurs dtats (prt, occup, erreurs...)
indicateur dbut de piste
indicateur dbut de secteur

Unit
de disque

changes des signaux entre contrleur et unit de disque.

230

9 La fonction de communication

connatre la position de la tte de lecture/criture. Grce ces dindicateurs, le pilote peut


grer correctement les oprations dentres-sorties pour ce type de priphriques.
Cette sorte de contrleur est encore relativement utilise et permet de grer des
disques de 20 500 Mo avec un dbit denviron 8 Mo/s. Cependant ce contrleur est
maintenant dlaiss au profit du mode EIDE (Enhanced IDE) autrement nomm
ATA-2, ATA/33 et ATA/66. Ces diffrents contrleurs autorisent un fonctionnement
en mode DMA (Direct Memory Access) permettant des changes directs avec la
mmoire centrale sans utilisation du processeur central. Ce mode offre des taux de
transferts allant de 4 17 Mo/s. Le tableau 9.3 rsume les principales caractristiques de ces diffrentes interfaces.
Tableau 9.3

CARACTRISTIQUES DES INTERFACES DISQUE.

Interfaces ATA avec DMA

Taux de transferts : Mo/s

DMA

11

Fast ATA

17

ATA/33

33

ATA/66

66

Les cartes graphiques

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

9.3 Les interfaces daccs aux priphriques

231

Les applications graphiques et multimdias utilisant de plus en plus de ressources


vido sont pour une large part lorigine de larchitecture actuelle des ordinateurs
que nous utilisons. La figure 9.17 nous indique les composants principaux intervenants dans la gestion des oprations dentres-sorties graphiques. Le processeur, la
mmoire centrale et le contrleur graphique sont relis par le biais dun chipset : le
chipset AGP.
Cette architecture permet des changes extrmement rapides entre ces trois composants. De plus la mmoire centrale et la mmoire locale de la carte graphique peuvent
communiquer directement. La carte graphique est organise autour dune mmoire
graphique et dun processeur spcialis dans laffichage sur lcran.
La figure 9.18 prcise le contenu et le fonctionnement dune carte graphique pour
ce qui concerne plus particulirement la gestion des couleurs.

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

101 001 011

R
G

Dunod La photocopie non autorise est un dlit.

B
Carte graphique

Figure 9.18

Gestion des couleurs par la carte graphique.

Lcran graphique se prsente comme un ensemble de pixels. Chaque pixel peut


safficher en plusieurs couleurs. La rsolution de lcran mesure le nombre de lignes
multipli par le nombre de colonnes (un cran dune rsolution de 1 024 par 768 affiche
768 432 pixels). La carte graphique comprend une mmoire dimage (bitmap) compose
de plusieurs plans mmoire. Le nombre de bits de chaque plan est le mme que le
nombre de pixels de lcran. Le nombre de plan permet dassocier plusieurs bits

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.

9.3 Les interfaces daccs aux priphriques

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

La figure 9.19 prsente lorganisation gnrale du bus USB :


la topologie du bus USB est une organisation arborescente. Un contrleur principal (root hub) est connect soit au bus PCI soit, comme sur notre figure, un pont.
Ce contrleur comprend des connecteurs permettant le raccordement soit de connecteurs secondaires soit directement de priphriques;
il existe deux types de connecteurs, les connecteurs des contrleurs et les connecteurs pour les priphriques. On ne peut brancher deux connecteurs de mme type
entre eux;
le cble qui supporte le bus est constitu de 4 fils. Deux fils sont ddis au transport des donnes, un autre lalimentation, le dernier la masse;

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

la bande passante est de 1.5 12 Mbits/s. Les futures volutions prvoient un


dbit 30 40 fois plus important;
on peut connecter jusqu 127 priphriques sur le bus USB.
Fonctionnement

Fonctionnellement le bus doit tre considr comme un canal permettant deffectuer


des changes en mode srie entre le contrleur principal et les priphriques. Chaque
priphrique peut subdiviser son canal en plusieurs sous-canaux ce qui permet pour
un mme priphrique de distinguer des flux dentres et de sorties (par exemple
pour sparer les flux dentres et de sorties dun dispositif dacquisition et de restitution du son).
Aucune communication nest possible directement entre deux priphriques. Elle
doit imprativement passer par le contrleur principal. Sur chaque canal ou souscanal, les communications sont unidirectionnelles ou bidirectionnelles. Les changes
dinformations se font au travers de trames.
Il existe quatre types de trames :
Les trames de supervision Elles servent configurer les quipements et demander
aux priphriques des informations sur leur tat.
Les trames isochrones Elles concernent plus particulirement des priphriques
de type temps rels qui ne ncessitent pas de rmission de linformation en cas
derreur de transmission (par exemple les priphriques audios).
Les trames de donnes Ce sont les trames transportant les donnes, par exemple
pour une imprimante. Dans ce type de transmission on doit pouvoir rmettre des
donnes en cas derreur de transmission.
Les trames dinterruption Le bus USB ne dispose pas dun mcanisme dinterruption intgr. Traditionnellement lorsque lon appuie sur une touche dun clavier
une interruption est gnre. Lorsque le clavier est connect au travers dun bus
USB ce nest pas le cas. Rgulirement le systme dexploitation (le pilote du bus
USB) interroge le clavier pour savoir si une touche a t enfonce.
Les trames sont constitues de paquets dinformations. On distingue plus particulirement :
Les paquets de commandes. Seul le contrleur principal peut mettre ce type de
paquets. On trouve principalement les paquets :
SOF (Start Of Frame) qui indique le dbut de transmission dune trame. Sil
ny a pas de donnes le paquet SOF est seul dans la trame;
IN qui est un paquet dinterrogation dun priphrique lui demandant denvoyer
des informations. Dans ce paquet est prcis le canal ou le sous-canal concern;
OUT est un paquet indiquant quune donne destination dun priphrique suit.
Les paquets de donnes. Ce sont les paquets qui transportent les donnes. Ils ont
la structure donne par la figure 9.20. SYN est un champ de synchronisation, PID
spcifie le type du paquet et CRC est un champ de contrle des erreurs.
Les paquets dacquittement. Il en existe trois types :
ACK qui indique que la transmission prcdente tait correcte;

9.3 Les interfaces daccs aux priphriques

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)

Structure dun paquet de donnes.

Le contrleur principal met rgulirement, toutes les millisecondes, une trame. Il


sagit soit dune trame de synchronisation, soit dune trame dinformation. Lors dune
communication la premire trame est toujours linitiative du contrleur principal
vers un priphrique, les trames suivantes peuvent provenir du contrleur principal,
dun priphrique ou dun autre contrleur selon la logique de la communication.
Ainsi lorsque lon branche un nouveau priphrique le contrleur principal, par le
biais des trames quil diffuse rgulirement, dtecte celui-ci et met une interruption
vers le pilote (systme dexploitation) du bus USB. Le pilote par scrutation mesure
les besoins en bande passante du nouveau priphrique et dtermine sil y a assez de
bande passante. Dans laffirmative il donne une adresse au priphrique (numro
entre 1 et 127) puis il transmet ces informations au nouvel quipement qui est maintenant identifi dans le systme et pourra tre reconnu. Ce mcanisme permet
dinsrer dynamiquement un nouveau priphrique sans avoir arrter le systme.
Rgulirement le contrleur principal diffuse des trames. Sil ny a rien faire les
trames se rduisent au paquet SOF. Dans le cas dune demande de donnes partir
dun priphrique, par exemple obtenir les images en provenance dun appareil photo,
lenchanement des paquets est celui donn par la figure 9.21. La partie grise indique
les paquets mis par le priphrique vers lordinateur. Le paquet ACK indique que
lordinateur a bien reu le paquet prcdent. Le premier et le dernier SOF sont des
paquets de synchronisation : il ny a rien faire. Le deuxime SOF suivi de IN indique
la demande de donnes au priphrique.

Dunod La photocopie non autorise est un dlit.

SOF

SOF

IN

SYN

PID

Donnes

CRC

ACK

SOF

Figure 9.21 Enchanement des paquets


pour une demande de donnes partir dun priphrique.

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

Enchanement des paquets


pour une criture sur une imprimante.

ACK

236

9 La fonction de communication

Les bus parallles SCSI

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

CARACTRISTIQUES DES STANDARDS SCSI.


Bande passante : Mo/s

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

Le bus srie FIREWIRE (IEEE 1394)

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

LES DIFFRENTS MODLES DE GESTION


DES ENTRES-SORTIES

Dans les sections prcdentes nous avons pass en revue tous les participants la
gestion dune opration dentres-sorties :

9.4 Les diffrents modles de gestion des entres-sorties

237

Dunod La photocopie non autorise est un dlit.

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

9.4 Les diffrents modles de gestion des entres-sorties

239

de lordinateur sont dtermines par celles du priphrique : si le processeur est trs


rapide (haute frquence) il excutera beaucoup dinstructions machine mais ces
instructions ne seront que des instructions de contrle de ltat du priphrique et ne
sont donc pas trs productives. Le schma temporel dexcution montre que si le
processeur est constamment occup ce nest pas lutilisateur qui en profite : Word ne
peut travailler pendant le droulement de limpression et ainsi on ne peut saisir des
caractres pendant limpression.
(4)
Pilote
dimprimante

(3)
(1)

SVC

(2)

(4)

Word

Occupation unit centrale (UC)


2

4
3

Figure 9.23

Dunod La photocopie non autorise est un dlit.

UC systme
Word
Priphrique

Entres-sorties programmes.

9.4.2 Entres-sorties pilotes par les interruptions


Afin damliorer les performances de lordinateur lors de lexcution dune opration dentres-sorties, on utilise le mcanisme dinterruptions. Dans ce mode de
gestion lunit dchange utilise le mcanisme des interruptions pour signaler quelle
est prte. Ainsi, chaque fois quun caractre est imprim, limprimante le signale
lunit dchange qui met une interruption vers le processeur. Pour prendre en charge
les interruptions le systme dexploitation dispose dun ensemble de programmes de
gestion des interruptions. la rception dune interruption le programme en cours
dexcution est arrt au profit du programme de gestion de linterruption. La
gestion de lopration dentres-sorties est donc trs diffrente comme le montre la
figure 9.24.

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

Entres-sorties pilotes par interruption.

Le schma temporel dexcution est maintenant :


Word est en cours dexcution et lutilisateur clique sur licne dimpression.
Le pilote est alert et vrifie que limprimante est libre. Si limprimante est libre
le pilote charge le registre de donnes et limpression du premier caractre est
lance.
partir de ce moment le processeur est libre. Il na pas vrifier si limprimante
est prte car il sera prvenu par une interruption. Le processeur peut donc tre
rendu au programme Word qui permettra la saisie de caractres pendant limpression dun caractre.
la fin de limpression du caractre lexcution de Word est interrompue au
profit du programme de gestion de linterruption. Ce traitement se termine par un
appel au pilote qui vrifie sil reste des caractres imprimer. Si cest le cas il
place un nouveau caractre dans le registre de donnes et limpression du caractre suivant commence.
Le processeur est de nouveau attribu Word.

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

9.4 Les diffrents modles de gestion des entres-sorties

241

lutilisateur a limpression de travailler en permanence avec Word y compris pendant


la phase dimpression.
9.4.3 Gestion des entres-sorties asynchrones
Lefficacit du mcanisme prcdent est vidente. Toutefois il ne faut pas que le
temps utilis par le processeur pour le programme de gestion de linterruption et du
pilote soit trop important. Une solution est de diminuer le nombre dinterruptions,
par exemple limprimante ne gnre plus une interruption chaque caractre mais
uniquement la fin de limpression dune ligne (voire plusieurs lignes). Ceci implique
dune part que limprimante dispose dun tampon mmoire permettant le stockage
dune ou plusieurs lignes et dautre part que le chargement dune ou plusieurs lignes
partir de la mmoire principale se fasse sans utilisation du processeur central. Dans
ces conditions le processeur est libre durant tout le temps de lopration dentressorties et peut donc tre utilis autre chose.
Accs direct la mmoire (DMA)

Le dispositif DMA (Direct Memory Access) est un composant matriel permettant


deffectuer des changes entre mmoire centrale et unit dchange sans utilisation
du processeur central (figure 9.25).
Le DMA comprend :
un registre dadresse qui reoit ladresse du premier caractre transfrer;
un registre de comptage qui reoit le nombre de caractres transfrer;

Processeur central

Systme

Charger adresse mmoire


Charger nombre de mots
Charger commande
Envoyer commande dbut

Dunod La photocopie non autorise est un dlit.

empl
0
DMA

Empl

Unit dchange

Figure 9.25

10
20
12
30
14

Mcanisme de DMA.

242

9 La fonction de communication

un registre de commande qui reoit le type dopration effectuer (lecture ou


criture);
une zone tampon permettant le stockage de donnes;
un composant actif, de type processeur, qui excute un transfert sans utilisation du
processeur central.
Le programme pilote est alors trs simple et effectue simplement les oprations
dinitialisation du DMA : chargement des registres puis lancement du processeur
priphrique. partir de ce moment le transfert seffectue sans utilisation du processeur central qui est alors libre deffectuer un autre travail. la fin du transfert une
interruption est mise qui interrompt le programme en cours dexcution au profit du
programme de gestion de linterruption.
La figure 9.26 rsume une opration dentres-sorties gre laide dun DMA
associ au mcanisme dinterruption :
le programme dcriture sur disque est compil et charg en mmoire. Les ordres
dentres-sorties sont traduits en langage machine sous la forme dun appel au
systme dexploitation (le pilote) (phases 0 et 1);
le programme sexcute et dclenche lappel au systme pour raliser lopration
dentres-sorties. Lexcution du SVC est un appel au pilote et produit la sauvegarde du contexte matriel dexcution du programme utilisateur (phases 2 et 3);
le pilote sexcute en plaant tout ou partie des informations transfrer dans une
zone mmoire rserve au DMA (phase 4). Il faut en effet penser que le proces(10)

(3)

(11)
(2)

(1)
crire

(0)

(4)

SVC
(5)
(7)

(9)

(6)

(8)
Figure 9.26

Opration dentres-sorties gre par DMA.

9.4 Les diffrents modles de gestion des entres-sorties

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

Le processeur est libre


Occupation UC
UC Systme
UC Utilisateur

Dunod La photocopie non autorise est un dlit.

Priphrique
Interruption
Figure 9.27

Schma temporel dexcution avec un mcanisme de DMA.

Ce schma indique tout particulirement que pendant tout le temps de lopration


dentres-sorties le processeur central est libre. Cest cette constatation qui rend
possible la construction des systmes dexploitation multiprogramms. En effet cest
le systme dexploitation qui connat trs exactement le moment o une opration
dentres-sorties est dclenche (pilote). De la mme manire le systme dexploitation connat parfaitement la fin dune opration dentres-sorties (programme dinter-

244

9 La fonction de communication

ruption). Ainsi le systme dexploitation a la connaissance du temps pendant lequel


le processeur est libr lors dune opration dentres-sorties. Dans ces conditions
sil existe dautres programmes utilisateurs dans la mmoire centrale le systme
dexploitation peut attribuer le processeur un autre programme durant lopration
dentres-sorties du premier utilisateur.

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

Pour chacune de ces instructions donnez la squence des microcommandes


permettant leur excution. Quelles conclusions peut-on tirer en matire de temps
dexcution ?
Mme question pour :
Add D, R1, x

(additionner le contenu de R1 avec le contenu de x


le rsultat tant dans R1)

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.

Soient les instructions :


Load D, R1, x
Add D, R1, x

(chargement direct dans R1)


(additionner le contenu de R1 avec le contenu de x
le rsultat tant dans R1)

Donnez la squence des microcommandes permettant leur excution.


10.3

CISC/RISC

Soit le programme suivant excuter : C = A + B (prendre le contenu de A lui


ajouter le contenu de B placer le rsultat dans C).

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

Cache correspondance directe

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

Calcul de la taille relle dun cache

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 ?

Dunod La photocopie non autorise est un dlit.

10.6

Cache associatif et remplacement de lignes

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

Cache correspondance directe

Un processeur dispose dune mmoire cache correspondance directe 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 capacit de la mmoire centrale exprimes en Ko ? En Kmots ?
2. Quelle est la taille de ltiquette ?
3. Quelle est la taille relle du cache ?

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

Entres-sorties programmes et entres-sorties par interruption

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

2. On suppose prsent que la fin de transfert de chaque caractre par lunit


dchange vers limprimante est signale par une interruption. crivez le code de
la routine dinterruption associe.
10.10 Performances des oprations dentres-sorties
1. On considre trois priphriques : un souris, une unit de disquette et une unit de
disque dur. Les trois priphriques sont grs par entres-sorties programmes.
Une opration dinterrogation dun priphrique cote 100 cycles horloge. Lhorloge
processeur fonctionne une frquence de 50 MHz.
La souris doit tre interroge 30 fois par seconde pour tre sr de ne manquer
aucun mouvement de lutilisateur.
La disquette transfre des donnes au processeur par blocs de deux octets et
possde un dbit de 50 Ko/seconde.
Le disque transfre des donnes au processeur par blocs de quatre octets et
possde un dbit de 2 Mo/seconde.
Calculez la fraction de temps processeur consomme pour la gestion de chacun
des priphriques.
2. On considre prsent que lunit de disque est gre par DMA. Linitialisation
du DMA par le processeur ncessite 1 000 cycles horloge. Le traitement de linterruption en fin de transfert DMA ncessite 500 cycles horloge. Chaque transfert
DMA concerne 4 Ko de donnes et le disque est actif 100 %.
Quelle est la fraction de temps processeur consomme par la gestion de lunit DMA ?

Dunod La photocopie non autorise est un dlit.

10.11 Gestion des interruptions


On considre une machine admettant huit niveaux dinterruptions matrielles numrots de 0 7, le niveau dinterruptions 0 tant le plus prioritaire et le niveau 7 le
moins prioritaire. Le processeur dispose de deux broches, une broche INT sur
laquelle lui parvient le signal dinterruption, une broche INTA avec laquelle il
acquitte les interruptions. Les huit niveaux dinterruptions sont grs par un contrleur dinterruptions.
1. linstant 0, le contrleur dinterruption reoit les interruptions 2, 5, 4, 6. Quelle
interruption est dlivre au processeur ? Que fait le processeur ?
2. Durant le traitement par le processeur de linterruption dlivre selon vous la
question 1, le contrleur reoit linterruption 1. Que se passe-t-il ? Aucune autre
interruption nest dlivre au contrleur. Donnez lordre de service de ces interruptions par le processeur.
3. Lorsque le processeur prend en compte linterruption qui lui est dlivre la
question 1, le compteur ordinal CO contient la valeur 400, qui est ladresse en
mmoire centrale de la prochaine instruction excuter pour le programme en
cours. Lorsque le processeur prend en compte linterruption 1 de la question 2, le
compteur ordinal CO contient la valeur 145, qui est ladresse en mmoire centrale
de la prochaine instruction excuter pour le programme en cours.

250

10 Exercices corrigs

La table des vecteurs dinterruptions du processeur est la suivante :


Numro IRQ

Adresse de la routine excuter


en mmoire centrale

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.

Dunod La photocopie non autorise est un dlit.

sortie du contenu dun registre vers un bus : nombusnomregistreSor (exemple


BCOSor) ;
entre sur une entre de lUAL@ : nombusentreUAL@En ou nomregistreentreUAL@En (exemples RBUAL@aEn, AUAL@bEn);
entre sur une entre de lUAL : nombusentreUALEn (exemple AUALbEn);
sortie des UAL : nombussortieUALSor et nombussortieUAL@Sor (exemple
BUALsSor).
Cette architecture comporte deux Units Arithmtiques et Logiques : UAL et UAL@.
UAL est utilise pour raliser les calculs et oprations logiques du processeur.
UAL@ est uniquement utilise pour calculer des adresses notamment dans le cadre
du mode dadressage bas (addition du contenu du registre de base RB et du dplacement X).
Le passage du bus A vers le bus B seffectue en activant une opration NOP sur
lUnit Arithmtique et Logique (UAL), ce qui a pour effet de copier le contenu du
tampon A sur la sortie de lUAL. Ainsi, pour passer le contenu du bus A au bus B,
les tapes sont :
mettre le contenu du bus A dans tampon A : AtamponAEn;
activer lopration Nop : NOP;
sortir la sortie de lUAL sur le bus B : BUALsSor.
On considre par ailleurs que la mmoire centrale est charge avec le programme
suivant dont les instructions sont donnes en langage dassemblage, selon le format
tabli dans le chapitre 6, partie Langage machine.
1. Compltez la colonne commentaire pour expliquer ce que ralise chaque instruction, puis concluez en expliquant ce que fait ce programme.
2. Linstruction ADD Rg2 R2 R1 est charge dans le registre RI. Donnez la suite de
microcommandes correspondant son excution sur larchitecture de processeur
de lexercice.
3. Le registre dtat PSW contient un ensemble dindicateurs S, C, O, Z. Rappelez
leur rle.

252

10 Exercices corrigs

Adresse mmoire

Mot mmoire

Commentaire ventuel
Valeur de la case A non initialise

A :
IN D A

Linstruction IN permet la lecture au clavier


dune valeur pour 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

4. Linstruction IN D A lit la valeur 1 au clavier. Expliquez quelle est la valeur contenue


dans le registre PSW la suite de lexcution du programme.
5. Linstruction IN D A lit la valeur 128 au clavier. Expliquez quelle est la valeur
contenue dans le registre PSW la suite de lexcution du programme.
6. Lorsque lopration daddition produit un overflow, on souhaite crire le rsultat
contenu dans R2 au sommet de la pile plutt qu ladresse A. Modifiez le code
du programme pour permettre cette opration.
7. Linstruction JMP Addition est la prochaine instruction excuter. Donnez la suite
de microcommandes permettant son chargement dans RI et correspondant ensuite
son excution sur larchitecture de processeur de lexercice.
8. Linstruction IN D A permet la lecture dune valeur au clavier, cette valeur tant
stocke lemplacement A. Que dduisez-vous de la gestion des entres-sorties
avec le clavier, de lutilisation de cette instruction IN dentres-sorties ?
9. Donnez la suite de microcommandes correspondant lexcution de linstruction
LOAD B R1 X sur larchitecture de processeur de lexercice.

SOLUTIONS
10.1

Rvision

1. Relisez le paragraphe 7.3.1.


2. Relisez le paragraphe 7.3.2, section les micro-instructions.
3. Relisez le paragraphe 7.3.2.
10.2

Microcommandes

1. tapes de lexcution dune instruction machine :


Load Im, R1, x

COsor, RADen, Lec, InCo


RDOsor, RIen
RIsor, R1en
(x considr comme une valeur est place dans R1)

Load D, R1, x

Cosor, RADen, Lec, InCo


RDOsor, RIen
RIsor, RADen, Lec
(x considr comme une adresse est plac dans RAD)
RDOsor, R1en

Load I, R1, x

Cosor, RADen, Lec, InCo


RDOsor, RIen
RIsor, RADen, Lec
(x considr comme une adresse est plac dans RAD)
RDOsor, RADen, Lec
(le contenu de x considr comme une adresse est plac dans RAD)
RDOsor, R1en

Ltape de Fetch a toujours le mme nombre de microcommandes. chaque fois


que le mode dadressage volue (Im, Direct, Indirect) on ajoute une microcommande qui fait une rfrence mmoire de plus.
Add D, R1, x

Cosor, RADen, Lec, InCo


RDOsor, RIen
RIsor, RADen, Lec
(x considr comme une adresse est plac dans RAD)
RDOsor, Yen
(Y est le registre dentre de lUAL)
R1sor, add, Zen
(Le contenu de R1 est plac sur le bus donc sur la deuxime entre
de lUAL, add dclenche laddition dont le rsultat est plac dans Z)
Zsor, R1en

254

10 Exercices corrigs

2. tape de chargement dune instruction :


Load D, R1, x

COsor, NOP, RADen, Lec, InCo


RDOsor, RIen
RIsor, NOP, NOP, RADen, Lec
RDOsor, NOP, NOP, R1en

Add D, R1, x

COsor, NOP, RADen, Lec, InCo


RDOsor, RIen
R1sor, TamponAen
RIsor, NOP, NOP, RADen, Lec
RDOsor, TamponBen, add, UALsor, R1en

10.3

CISC/RISC

Dans le cas de la machine CISC on obtient :


Load D, R1, A
Add D, R1, B
Store D, R1, C

Dans le cas dune machine RISC on obtient :


Load D, R1, A
Load D, R2, B
Load Im, R3, 0
Add R3, R2, R1
Store D, R3, C

On voit donc quil y a plus dinstructions machine excuter dans le cas de la


machine RISC. Cependant il faut galement noter que les instructions des machines
RISC sont toutes de mme longueur et que donc on peut plus facilement avoir un
pipeline efficace. Par ailleurs linstruction Add ne fait rfrence qu des registres et
pas du tout la mmoire centrale ce qui est plus rapide. Enfin dans une machine
RISC le squenceur est cbl ce qui est un facteur dacclration de lexcution. En
rsum Il est bien dlicat de comparer les performances.
10.4

Cache correspondance directe

1. Taille relle du cache :


Entre du cache en bits = 1 (bit validation) + n bits (tiquette) + m bits (donne)
= 1 + n + 32 bits
La taille de ltiquette se dduit de celle de lindex et de celle de ladresse :
taille tiquette (n) = taille de ladresse en bits nombre bits pour dsigner
un octet nombre bits constituant lindex
La taille de lindex est fonction du nombre dentres du cache.
nombre entres du cache = taille des donnes utiles en octets / taille
dune entre en donne utile en octets

10 Solutions

255

= (4 1 024) octets / 4 octets


= 1 024 entres
= 210 entres
La taille de lindex est donc de 10 bits.
Une entre contient un bloc de 4 octets : le nombre de bits pour dsigner un octet
dans une entre est donc gal 2. Do :
Taille tiquette (n) = 32 2 10 = 20 bits.
Entre du cache en bits = 1 + 20 + 32 = 53 bits.
Taille du cache = 53 1 024 = 53 Kbits.
2. volution du cache :
(00000000)16 : dfaut.
Index

tiquette

Donne

(00000)16

contenu du mot dadresse (00000000)16

(00000008) 16 : dfaut.
Index

tiquette

Donne

(00000)16

contenu du mot dadresse (00000000)16

(00000)16

contenu du mot dadresse (00000008)16

(00000001) 16 : succs. On accde lentre 0 du cache et les tiquettes sont


gales.
(00001000) 16 : dfaut.
Index

tiquette

Donne

(00001)16

contenu du mot dadresse (00001000)16

(00000)16

contenu du mot dadresse (00000008)16

Dunod La photocopie non autorise est un dlit.

(FFFF0008)16 : dfaut.
Index

tiquette

Donne

(00001)16

contenu du mot dadresse (00001001)16

(FFFF0)16

contenu du mot dadresse (FFFF0008)16

(00000000) 16 : dfaut.
Index

tiquette

Donne

(00000)16

contenu du mot dadresse (00000000)16

(FFFF0)16

contenu du mot dadresse (FFFF0008)16

256

10.5

10 Exercices corrigs

Calcul de la taille relle dun cache

Calcul de lentre du cache en bits :


Entre du cache en bits = 1 (bit validation) + n bits (tiquette) + m bits (donne)
= 1 + n + (8 64) bits
La taille de ltiquette se dduit de celle de lindex et de celle de ladresse :
taille tiquette (n) = taille de ladresse en bits nombre bits pour dsigner
un octet nombre bits constituant lindex
La taille de lindex est fonction du nombre dentres du cache.
Nombre entres du cache = taille des donnes utiles en octets / taille
dune entre en donne utile en octets
= 64 1 024 octets / 8 8 octets
= 1 024 entres
= 210 entres
La taille de lindex est donc de 10 bits.
Une entre contient un bloc de 8 mots de 8 octets : le nombre de bits pour dsigner un octet dans une entre est donc gal 6.
La taille de ladresse est fonction du nombre doctets adressables en mmoire centrale :
la mmoire centrale a une capacit de 1 Go = 230 octets : ladresse est sur 30 bits.
Entre du cache en bits = 1 + 14 + (64 8) = 527 bits.
Taille du cache = 527 1 024 = 527 Kbits.
10.6

Cache associatif et remplacement de lignes

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

Les trois premiers chiffres de ladresse correspondent la valeur dtiquette. Il y


a succs lorsque ltiquette de ladresse correspond ltiquette stocke dans une
des lignes du cache.
Au temps 7, il y a dfaut, toutes les lignes du cache sont occupes. La ligne la plus
anciennement charge est la ligne 1 qui est remplace.
Au temps 8, il y a dfaut, toutes les lignes du cache sont occupes. La ligne la plus
anciennement charge est la ligne 2 qui est remplace.
Politique LRU : la ligne remplace est la moins rcemment accde dans le cache.
temps

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

Au temps 7, il y a dfaut, toutes les lignes du cache sont occupes. La ligne la


moins rcemment accde parmi celles prsentes dans le cache est la ligne 2 qui
est remplace.
Au temps 8, il y a dfaut, toutes les lignes du cache sont occupes. La ligne la
moins rcemment accde parmi celles prsentes dans le cache est la ligne 4 qui
est remplace.

Dunod La photocopie non autorise est un dlit.

10.7

Cache correspondance directe

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

Les lments de rponse sont dans le cours.


10.9

Entres-sorties programmes et entres-sorties par interruption

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

Initialisation des registres RB et R1


RB EMPL
R1 80

LOAD Im RB EMPL
LOAD Im R1 80

Boucle de transfert dun caractre


ATTENTE :
attente imprimante prte
on boucle tant que ETATIMP < 0
R2 ETATIMP
test R2 < 0 ?
Si oui, retour ATTENTE
transfert du caractre
son adresse est donne par RB
SORIMP caractre
dcrmentation de R1, incrmentation de RB
si R1 = 0, fin sinon retour ATTENTE

ATTENTE : LOAD D R2 ETATIMP


TESTS Rg1 R2
JMPN ATTENTE
LOAD B R3 0
STORE D R3 SORIMP
ADD Im RB 1
ADD Im R1 1
JMPP ATTENTE
STOP

2. La routine dinterruption est :


masquage des Interruptions
dcrmenter R1
si R1 = 0 aller fin
SORIMP caractre
pointer sur le caractre
suivant
fin : RTI

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

Ces 25 Ko interrogations par seconde reprsentent 25 210 100 = 25,6 105


cycles par secondes, ce qui constitue 25,6 105/(50 106) = 5 % des cycles du
processeur.
Cas du disque :
Le disque transfre les donnes un dbit de 2 Mo/s. Comme les transferts
seffectuent par blocs de 4 octets, il faut 500 Ko interrogations par seconde.
Ces 500 Ko interrogations par seconde reprsentent 500 210 100 = 51,2 106
cycles par secondes, ce qui constitue 51,2 106/(50 106) = 100 % des cycles
du processeur !
2. Chaque transfert par DMA prend 4 Ko/2 Mo = 2 10 3 secondes.
Comme le disque transfre continuellement; il faut 1 000 + 500/2 10 3 = 750 103
cycles par seconde, ce qui reprsente 750 103/(50 106) = 1,5 % des cycles du
processeur.
10.11 Gestion des interruptions
1. Linterruption 2 est dlivre au processeur car cest linterruption la plus prioritaire. Le processeur stoppe le traitement en cours, acquitte linterruption et, avec
son numro, indexe la table des vecteurs dinterruptions. Il rcupre ladresse de
la routine dinterruption et charge le registre CO avec cette adresse. Auparavant, il
a sauvegard le registre CO du programme utilisateur interrompu dans la pile.
2. Linterruption 1 est plus prioritaire que linterruption 2 en cours de traitement. Le
contrleur dlivre cette interruption au processeur qui interrompt le traitement de
linterruption 2 et dmarre le traitement de linterruption 1. Lordre des services
des requtes dinterruptions est : 2 1 2 4 5 6.
3. tat initial : (RSP > 1002), PILE : (1000 > 200; 1001 > 400), CO > 400)
Arrive interruption 2 : (RSP > 1003), PILE : (1000 > 200; 1001 > 400; 1002
> 400), CO > 140)

Dunod La photocopie non autorise est un dlit.

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

10.12 Exercice de synthse


1.
Adresse mmoire

Mot mmoire

Valeur de la case A non initialise

A :
IN D A
LOAD Im R1 1

Fin

Linstruction IN permet la lecture au clavier


dune valeur pour A
R1 est charg avec la valeur 1

LOAD D R2 A

R2 est charg avec le contenu du mot dadresse A

JMP Addition

Saut linstruction nomme Addition

STORE D R2 A

R2 est crit ladresse A en mmoire centrale

STOP
Addition

Commentaire ventuel

ADD Rg2 R2 R1
JMP Fin

Fin de lexcution
R2 = R2 + R1
Saut linstruction nomme Fin

Ce programme dcrmente dune unit la valeur place dans le mot dadresse A.


2. AR2Sor, ATamponAEn, AR1Sor, AUALbEn, ADD, BUALsSor, BR2En
3. Les indicateurs S, C, O, Z permettent de positionner les proprits du dernier
calcul ralis par lUAL. Ainsi S permet dindiquer si le rsultat produit par
lUAL est positif ou ngatif, O permet dindiquer loccurrence dun dpassement
de capacit, C dun carry. Enfin, Z permet dindiquer si le rsultat produit par
lUAL est nul ou non.
4. Lors de lexcution du programme, linstruction ADD Rg2 R2 R1 effectue lopration 1 1 = 0. Les indicateurs du registre PSW sont alors positionns comme suit :
Z indique un rsultat nul;
S indique un rsultat positif;
C indique quil ny a pas de carry;
O indique quil ny a pas de dpassement de capacit.
5. Lors de lexcution du programme, linstruction ADD Rg2 R2 R1 effectue lopration 128 1. Posons cette opration en binaire.
128
1

1000 0000
1111 1111

1 0111 1111

Les indicateurs du registre PSW sont alors positionns comme suit :


Z indique un rsultat non nul;
S indique un rsultat positif;

10 Solutions

261

C indique quil y a carry;


O indique quil y a dpassement de capacit.
6.
Adresse mmoire

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

Dunod La photocopie non autorise est un dlit.

7. FETCH : BCOSor, BRADEn, LEC, ARDOSor, ATamponAEn, NOP, BUALsSor, BRIEn


EXECUTION : ARISor, ATamponAEn, NOP, BUALsSor, BCOEn
8. Le jeu dinstructions utilise des instructions spcifiques dentres-sorties.
Lespace dadresses des entres-sorties est donc spar de celui de la mmoire.
9. FETCH : BCOSor, BRADEn, LEC, ARDOSor, ATamponAEn, NOP, BUALsSor, BRIEn
EXECUTION : ARISor, AUal@bEn, RBUal@En, ADD, BUAL@sSor, BRADEn, LEC,
ARDOSor, ATamponAEn, NOP, BUALsSor, BR1En

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

Introduction aux systmes


dexploitation multiprogramms

11

Le systme dexploitation est un ensemble de programmes qui ralise linterface


entre le matriel de lordinateur et les utilisateurs, dune part afin de construire audessus du matriel une machine virtuelle plus facile demploi et plus conviviale,
dautre part afin de prendre en charge la gestion des ressources de la machine et le
partage de celles-ci. Dans ce chapitre, nous allons dfinir plus prcisment les rles
dun systme dexploitation dans un environnement multiprogramm et les diffrentes fonctions qui composent ce systme dexploitation. Nous prsentons galement les diffrents types de systmes dexploitation multiprogramms existants
lheure actuelle. Enfin, les notions de base sur lesquelles repose le fonctionnement
du systme dexploitation sont dcrites.

11.1 RLE ET DFINITION DUN SYSTME


DEXPLOITATION MULTIPROGRAMM
Le chapitre 9 a prsent les diffrents modes de ralisation des entres-sorties au
niveau du matriel. Du mode programm au mode par DMA avec interruption, la
caractristique principale de cette volution est la libration du processeur de la prise en
charge des entres-sorties. En effet, lorsquune opration dentres-sorties est ralise
par DMA, le processeur est totalement libr de la gestion du transfert de donnes,
une fois linitialisation du DMA ralise, alors quavec un mode dentres-sorties
programmes, le processeur est sollicit pour le transfert de chaque octet de donne.

266

11 Introduction aux systmes dexploitation multiprogramms

Dans le cadre dune machine monoprogramme, cest--dire une machine pour


laquelle un seul programme utilisateur est prsent en mmoire centrale, cela veut
dire que le processeur reste inactif chaque fois que ce programme utilisateur ralise
une opration dentres-sorties. Une telle inaction, illustre sur le chronogramme de
la figure 11.1, nest pas souhaitable. Sur cette figure, nous avons considr un
programme utilisateur Prog A avec un profil dexcution qui est tel que ce programme
ralise 50 % de calcul, puis 50 % dentres-sorties. Le processeur est donc inactif la
1. Monoprogrammation
Prog A : 50 % calcul, 50 % entres-sorties
calcul
entres-sorties

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

ACTIF : excution de Prog B

INACTIF

ACTIF

CPU
DMA
Figure 11.1

Chronogramme dactivit pour le processeur et le DMA.

11.1 Rle et dfinition dun systme dexploitation multiprogramm

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

Dunod La photocopie non autorise est un dlit.

La machine physique et ses diffrents composants, sils offrent des mcanismes


permettant de faciliter leur partage entre diffrents programmes, ne sont malgr tout
pas conus pour supporter et grer deux-mmes ce partage. Cest l le premier rle
du systme dexploitation dans un environnement multiprogramm que de grer le
partage de la machine physique et des ressources matrielles entre les diffrents
programmes. Cette gestion doit assurer lquit daccs aux ressources matrielles et
assurer galement que les accs des programmes ces ressources seffectuent
correctement, cest--dire que les oprations ralises par les programmes sont
licites pour la cohrence des ressources : on parle alors de protection des ressources.
Le partage des ressources va concerner principalement le processeur, la mmoire
centrale et les priphriques dentres-sorties. Plus prcisment, les questions suivantes
vont devoir tre rsolues :
dans le cadre du partage du processeur : parmi tous les programmes chargs en
mmoire centrale, lequel doit sexcuter ?
dans le cadre du partage de la mmoire centrale : comment allouer la mmoire
centrale aux diffrents programmes ? Comment disposer dune quantit suffisante
de mmoire pour y placer tous les programmes ncessaires un bon taux dutilisation du processeur ? Comment assurer la protection entre ces diffrents
programmes utilisateurs ? Par protection, on entend ici veiller ce quun programme
donn naccde pas une plage mmoire alloue un autre programme;
dans le cadre du partage des priphriques : dans quel ordre traiter les requtes
dentres-sorties pour optimiser les transferts ?
11.1.2 Un second rle : rendre conviviale la machine physique
Tout au long de la seconde partie de cet ouvrage, ont t prsentes les caractristiques des ressources matrielles processeur, mmoire, priphriques composant la
machine physique. Chaque ressource a ses proprits et son mode de gestion dtermin par le constructeur de la machine. Ainsi par exemple, tel priphrique est gr
par interruption alors quun autre est gr par DMA. Se servir de la machine
physique et utiliser travers un programme ses ressources ncessitent de connatre

268

11 Introduction aux systmes dexploitation multiprogramms

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.

Programmation sur lENIACa (1946)

Les premiers ordinateurs tels que lENIAC ne comportaient pas de systmes


dexploitation. La programmation se faisait directement en langage machine
et un seul programme la fois pouvait tre excut par la machine. Labsence
de systme dexploitation obligeait le programmeur charger manuellement
le programme, instruction par instruction, dans les registres du processeur et
grer lui-mme les oprations dentres-sorties, ce qui lobligeait connatre
les moindres dtails du dialogue avec chaque type de priphrique. Une volution dcisive verra le jour avec lapparition des moniteurs denchanement,
capable denchaner automatiquement un ensemble de travaux soumis par un
oprateur : cest lanctre du systme dexploitation.
a. LENIAC (Electronic Numerical Integrator And Computer) a t construit de 1943 1946 par
John Mauchley et J. Presper Eckert luniversit de Pennsylvanie. Cette machine qui comportait 18 000 tubes vide et 1 500 relais, pesait 30 tonnes, consommait 140 kW et occupait une
surface au sol de 160 m2. Elle comportait 20 registres de 10 chiffres dcimaux et tait programme
laide de 6 000 commutateurs.

11.1.3 Dfinition du systme dexploitation multiprogramm


Le systme dexploitation est donc un ensemble de programmes qui ralise linterface entre le matriel de lordinateur et les utilisateurs. Il a deux objectifs principaux
(figure 11.2) :
construction au-dessus du matriel dune machine virtuelle plus facile demploi et
plus conviviale;
prise en charge de la gestion de plus en plus complexe des ressources et partage de
celles-ci.

11.2 Structure dun systme dexploitation multiprogramm

269

UTILISATEURS

MACHINE VIRTUELLE
SYSTME DEXPLOITATION
MATRIEL

bus

cpu

mmoire

Figure 11.2

Place du systme dexploitation.

Comme son nom le suggre, le systme dexploitation a en charge lexploitation


de la machine pour en faciliter laccs, le partage et pour loptimiser.

11.2 STRUCTURE DUN SYSTME DEXPLOITATION


MULTIPROGRAMM
11.2.1 Composants dun systme dexploitation
Les diffrentes fonctionnalits

Dunod La photocopie non autorise est un dlit.

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 des objets


externes (fichiers)

Gestion
du processeur

Gestion
de la mmoire

Gestion
des entres-sorties

Mcanisme des interruptions


MACHINE PHYSIQUE
Figure 11.3

Fonctionnalits du systme dexploitation.

270

11 Introduction aux systmes dexploitation multiprogramms

La fonctionnalit de gestion du processeur

Le systme doit grer lallocation du processeur aux diffrents programmes pouvant


sexcuter. Cette allocation se fait par le biais dun algorithme dordonnancement
qui planifie lexcution des programmes. Selon le type de systme dexploitation,
lalgorithme dordonnancement rpond des objectifs diffrents.
La fonctionnalit de gestion de la mmoire

Le systme doit grer lallocation de la mmoire centrale entre les diffrents


programmes pouvant sexcuter, cest--dire quil doit trouver une place libre suffisante en mmoire centrale pour que le chargeur puisse y placer un programme
excuter, en sappuyant sur les mcanismes matriels sous jacents abords au
chapitre 8. Comme la mmoire physique est souvent trop petite pour contenir la totalit des programmes, la gestion de la mmoire se fait selon le principe de la mmoire
virtuelle : un instant donn, seules sont charges en mmoire centrale, les parties
de code et donnes utiles lexcution.
La fonctionnalit de gestion des entres-sorties

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

Comme plusieurs programmes coexistent en mmoire centrale, ceux-ci peuvent


vouloir communiquer pour changer des donnes. Par ailleurs, il faut synchroniser
laccs aux donnes partages afin de maintenir leur cohrence. Le systme offre des
outils de communication et de synchronisation entre programmes.
La fonctionnalit de gestion de la protection

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

Les fonctionnalits du systme dexploitation utilisent les mcanismes offerts par le


matriel de la machine physique pour raliser leurs oprations. Notamment, le systme

11.3 Principaux types de systmes dexploitations multiprogramms

271

dexploitation sinterface avec la couche matrielle, par le biais du mcanisme des


interruptions, qui lui permet de prendre connaissance des vnements survenant sur
la machine matrielle.
Par ailleurs, le systme dexploitation sinterface avec les applications du niveau
utilisateur par le biais des fonctions prdfinies que chacune de ses fonctionnalits
offre. Ces fonctions que lon qualifie de routines systmes constituent les points
dentres des fonctionnalits du systme dexploitation et sont appelables depuis les
applications de niveau utilisateur. Ces appels peuvent se faire deux niveaux :
dans le code dun programme utilisateur laide dun appel systme, qui nest autre
quune forme dappel de procdure amenant lexcution dune routine systme;
depuis le prompt de linterprteur de commandes laide dune commande. Linterprteur de commandes est un outil de niveau utilisateur qui accepte les commandes
de lutilisateur, les analyse et lance lexcution de la routine systme associe.
Exemples de routines systme

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.

Dunod La photocopie non autorise est un dlit.

11.2.2 La norme POSIX pour les systmes ouverts


La norme POSIX (Portable Operating System Interface) dfinit lensemble des
services et primitives que doit offrir un systme dexploitation dit ouvert pour
permettre lcriture dapplications portables entre systmes diffrents.
Un systme ouvert est un systme capable de dialoguer avec nimporte quel autre
type de systme. Un prrequis ce dialogue est que les systmes prsentent une
interface commune, cest--dire un ensemble dappels systmes et de commandes
identiques.
La norme POSIX est constitue de plusieurs extensions. Parmi celles-ci, lextension 1003.1 dfinit lensemble minimal des services que doit offrir un systme pour
tre qualifi de systme ouvert.

11.3 PRINCIPAUX TYPES DE SYSTMES DEXPLOITATIONS


MULTIPROGRAMMS
Les systmes dexploitation multiprogramms peuvent tre classs selon diffrents
types qui dpendent des buts et des services offerts par les systmes. Trois grandes

272

11 Introduction aux systmes dexploitation multiprogramms

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.

11.3 Principaux types de systmes dexploitations multiprogramms

273

Un exemple de systme dexploitation orient batch est le systme MVS. Dans ce


systme, le traitement par lots ( job scheduling) est assur par une entit particulire du
systme, le sous-systme JES (Job Entry Subsytem). Le sous-systme JES (figure 11.4)
est responsable de la prise en compte des travaux et de leur excution auprs du
systme MVS. Les travaux soumis, avec leur fichier de donnes dentres (SYSIN)
sont stocks dans une zone particulire de disque appele le SPOOL. Les rsultats
dune excution (SYSOUT), de mme, sont stocks sous forme dun fichier dans la
mme zone de SPOOL. Le sous-systme JES est lui-mme organis sous forme de
plusieurs initiateurs qui constituent chacun un espace adresse destin lexcution
dun travail batch. Chaque initiateur comprend lui-mme plusieurs classes de travaux,
auxquelles sont associs des profils dexcutions. Un travail JOB soumis par la commande
SUBMIT JOB est attach un initiateur et une classe dans cet initiateur, puis plac
dans le SPOOL en attente dtre excut. Le travail sera excut lorsque linitiateur
associ la classe deviendra actif, et quil sera le travail le plus prioritaire du soussystme JES. En effet, par exemple, un initiateur peut devenir actif seulement la nuit,
pour excuter lorsque le maximum de ressource processeur est libre, des gros travaux
soumis de jour par les utilisateurs.

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

Dunod La photocopie non autorise est un dlit.

Job Job
Job Job

Figure 11.4

SPOOL

Le sous-systme JES du systme dexploitation MVS.

Initiateurs et classes MVS

Un initiateur est un espace adresse dans lequel un travail peut sexcuter. Un


initiateur est actif (active) si un travail est en train de sexcuter dans celui-ci.
Il est inactif (inactive) sinon. Un initiateur drain (drained) est un initiateur

274

11 Introduction aux systmes dexploitation multiprogramms

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

Display Filter View Print Options Help


SDSF INITIATOR DISPLAY
COMMAND INPUT ===>
PREFIX=* DEST=(ALL) OWNER=*
NP ID
A
B
C
D
E
F
G
H
I
J
K
L

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

JOBNAME STEPNAME PROC TYPE JNUM C


DE106RL EX
STEP1 JOB 2893 M
JOB 2894 D
DE3162C ST094
A99PRD

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

Les initiateurs et les classes MVS.

11.3.2 Les systmes interactifs


La particularit dun systme dexploitation interactif est quau contraire des
systmes prcdents, lutilisateur de la machine peut interagir avec lexcution de
son programme. Typiquement, lutilisateur lance lexcution de son travail et attend
derrire le clavier et lcran, le rsultat de celle-ci. Sil saperoit que lexcution
nest pas conforme son esprance, il peut immdiatement agir pour arrter celle-ci
et analyser les raisons de lchec.
Puisque lutilisateur attend derrire son clavier et son cran et que par nature, lutilisateur de la machine est un tre impatient, le but principal poursuivi par les systmes
interactifs va tre doffrir pour chaque excution le plus petit temps de rponse possible.
Le temps de rponse dune excution est le temps coul entre le moment o lexcution est demande par lutilisateur et le moment o lexcution est acheve. Pour
parvenir ce but, la plupart des systmes interactifs travaillent en temps partag.
Un systme en temps partag permet aux diffrents utilisateurs de partager lordinateur simultanment, tout en ayant par ailleurs la sensation dtre seul utiliser la

11.3 Principaux types de systmes dexploitations multiprogramms

275

machine. Ce principe repose notamment sur un partage de lutilisation du processeur


par les diffrents programmes des diffrents utilisateurs. Chaque programme occupe
tour de rle le processeur pour un court laps de temps (le quantum) et les excutions se succdent suffisamment rapidement sur le processeur pour que lutilisateur
ait limpression que son travail dispose seul du processeur.
Un exemple de systme interactif fonctionnant en temps partag est le systme
Unix ou le systme Linux. Par ailleurs, beaucoup de systmes traitements par lots
ont t modifis pour offrir galement un service de traitement interactif : cest le
cas du systme MVS voqu dans le paragraphe prcdent qui supporte galement
un sous-systme en temps partag appel TSO (Time-Sharing Option).
11.3.3 Les systmes temps rel
Les systmes temps rel (figure 11.6) sont des systmes lis au contrle de procd
pour lesquels la caractristique primordiale est que les excutions de programmes
sont soumises des contraintes temporelles, cest--dire quune excution de
programme est notamment qualifie par une date butoir de fin dexcution, appele
chance, au-del de laquelle les rsultats de lexcution ne sont plus valides. Des
exemples de systme temps rel sont par exemple le pilotage automatique dun train

Procd

Commandes

vnements, mesures

Dunod La photocopie non autorise est un dlit.

Excutions de programmes

Excutif temps rel


Excutif Temps Rel
Gestion des excutions, des interruptions, du temps, etc.

Systme temps rel : systme de contrle

Gestion des tches, des interruptions, du temps, etc.


Figure 11.6

Systme temps rel.

276

11 Introduction aux systmes dexploitation multiprogramms

tel que EOLE ou encore le dispositif de surveillance dun racteur de centrale


nuclaire. Le procd dsigne ici soit le train EOLE, soit le racteur nuclaire. Dans
le cas mme de EOLE, le systme temps rel sera qualifi de systme embarqu,
puisquil est install bord du train. Dans de nombreux cas par ailleurs, le systme
temps rel est galement qualifi de systme ractif, car ce systme reoit des informations du procd auquel il se doit de ragir dans les temps impartis. Dans le cas de
EOLE, par exemple, le systme recevra des informations relatives lapproche
dune station et devra entreprendre des actions de freinage pour tre mme de
sarrter temps.
Il ne sagit pas de rendre le rsultat le plus vite possible, mais simplement
temps. Lchelle du temps relative la contrainte temporelle varie dune application lautre : elle peut tre par exemple de lordre de la microseconde dans des
applications de contrle radars, mais peut tre de lordre de lheure pour une application de contrle chimique. Par contre, il est souvent primordial de respecter la
contrainte temporelle, sous peine de graves dfaillances, pouvant mettre en pril le
procd lui-mme et son environnement. Tout retard de raction vis--vis dune
situation anormale au sein du racteur nuclaire, peut videmment mener une
situation catastrophique !
Pour tre en mesure de respecter les contraintes temporelles associes aux excutions de programmes, le systme temps rel doit offrir un certain nombre de mcanismes particuliers, dont le but est de rduire au maximum tout indterminisme au
niveau des dures des excutions et de garantir par l mme que les contraintes
temporelles seront respectes. Par exemple, le processeur sera de prfrence allou
lexcution la plus urgente et les choix de conception du systme lui-mme seront
tels que les ressources physiques comme la mmoire ou encore les priphriques
seront grs avec des mthodes simples, limitant les fluctuations et les attentes indtermines.
Le systme temps rel est souvent qualifi dexcutif temps rel. Des exemples de
tels systmes sont les excutifs LynxOS de la socit Lynx Real-Time Systems ou
encore VxWORKS de la socit Wind River Systems qui sont des systmes exclusivement ddis au temps rel et conus en tant que tels. Notons quil existe galement
des systmes temps rel, drivs de systmes interactifs prexistants : cest le cas par
exemple du systme RTLinux, driv temps rel du systme Linux.

11.4 NOTIONS DE BASE


Comme nous lavons dj voqu prcdemment, le systme dexploitation sinterface avec les applications du niveau utilisateur par le biais de fonctions prdfinies
qualifies de routines systmes et qui constituent les points dentres des fonctionnalits du systme. Ces appels peuvent tre de deux natures et se faire soit par le biais
dun appel systme, soit par le biais dune commande du langage de commandes.
Lexcution des routines systmes seffectue sous un mode privilgi, appel
mode superviseur ou mode matre.

11.4 Notions de base

277

11.4.1 Modes dexcutions et commutations de contexte


Modes dexcutions

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

Le registre dtat du processeur 68000 est un registre 16 bits, dans lequel le


bit 13 permet le codage du mode dexcution du processeur, soit utilisateur
pour lequel le jeu dinstructions utilisables vis--vis du processeur est rduit
(interdiction notamment dutilisation des instructions permettant la modification du registre dtat et interdiction de certaines oprations sur la pile),
soit superviseur pour lequel toutes les instructions sont utilisables.

Dunod La photocopie non autorise est un dlit.

Commutations de contexte

Aussi, lorsquun programme utilisateur demande lexcution dune routine du systme


dexploitation par le biais dun appel systme, ce programme quitte son mode
courant dexcution (le mode esclave) pour passer en mode dexcution du systme,
cest--dire le mode superviseur. Ce passage du mode utilisateur au mode superviseur constitue une commutation de contexte : elle saccompagne dune opration de
sauvegarde du contexte utilisateur, cest--dire principalement de la valeur des registres
du processeur (CO, PSW). Lorsque lexcution de la fonction systme est acheve,
le programme repasse du mode superviseur au mode utilisateur. Il y a de nouveau
une opration de commutation de contexte avec restauration du contexte utilisateur sauvegard lors de lappel systme, ce qui permet de reprendre lexcution du
programme utilisateur juste aprs lappel (figure 11.7).
Trois causes majeures provoquent le passage du mode utilisateur au mode superviseur (figure 11.8) :
le fait que le programme utilisateur appelle une fonction du systme. Cest une
demande explicite de passage en mode superviseur;
lexcution par le programme utilisateur dune opration illicite (division par 0,
instruction machine interdite, violation mmoire) : cest la trappe ou lexception.
Lexcution du programme utilisateur est alors arrte;

278

11 Introduction aux systmes dexploitation multiprogramms

Mode utilisateur

Mode superviseur
(privilge suprieur)

protection

main()
{

sauvegarde contexte utilisateur (CO, PSW utilisateur)


chargement CO < adresse de- la routine systme open
chargement PSW < mode superviseur
Excution de open()

int i, j, fd;
i = 3;
fd = open ("fichier", "wr");
}

restitution du contexte utilisateur


chargement CO < CO sauvegard
chargement PSW < PSW sauvegard
Figure 11.7

Mode superviseur

protection

Mode utilisateur

Commutations de contexte.

Excution de open()
APPELS SYSTME

main()
{
IT

int i, j, fd;

Excution du traitant dit horloge


i = 0;
fd = open ("fichier, "wr");
TRAPPE

read(fd, j, 1);

erreur irrecouvrable

j=j/i;

arrt du programme
}

IT HORLOGE
Figure 11.8

MATRIEL

Trois causes de commutations de contexte.

11.4 Notions de base

279

la prise en compte dune interruption par le matriel et le systme dexploitation.


Le programme utilisateur est alors stopp et lexcution de la routine dinterruption associe linterruption survenue est excute en mode superviseur.
Trappes et appels systmes sont parfois qualifis dinterruptions logicielles pour
les opposer aux interruptions matrielles leves par les priphriques du processeur.
11.4.2 Gestion des interruptions matrielles et logicielles
Prise en compte dune interruption matrielle

Comme il a t dcrit au chapitre 7, une interruption est un signal permettant un


dispositif externe au processeur (un priphrique dentres-sorties notamment) dinterrompre le travail courant du processeur pour aller raliser un traitement particulier
li la cause de linterruption, appel procdure, programme ou traitant dinterruption. Si le niveau dexcution du processeur est plus bas que celui de linterruption,
le processeur accepte linterruption avant de dcoder linstruction machine suivante
et relve son niveau dexcution afin quaucune autre interruption de niveau infrieure ou gale ne puisse linterrompre.
Les traitants dinterruptions sont des routines excutes en mode superviseur, charges en mmoire centrale au moment du chargement du systme dexploitation et dont
les adresses en mmoire centrale sont contenues dans une table galement place en
mmoire centrale, la table des vecteurs dinterruptions.
Lors de la survenue dune interruption par exemple linterruption numro 3 tel
que le montre la figure 11.9 le programme utilisateur en cours dexcution est
Table des vecteurs
dinterruptions
0017
CO

Dunod La photocopie non autorise est un dlit.

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

Prise en compte dune interruption.

280

11 Introduction aux systmes dexploitation multiprogramms

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-

11.4 Notions de base

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.

Ralisation dun appel systme sous Linux

Dunod La photocopie non autorise est un dlit.

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.

Exemple : les interruptions sur le systme IBM 370


Les diffrents types dinterruptions

Sur larchitecture IBM 370, six sortes dinterruptions sont rpertories :


les interruptions matrielles lies la gestion des entres-sorties;
les interruptions matrielles lies la signalisation dun mauvais fonctionnement
de lordinateur (problme dalimentation lectrique ou problme de refroidissement, etc.);

282

11 Introduction aux systmes dexploitation multiprogramms

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

Le processeur fonctionne selon deux tats diffrents : ltat problme (problem


program) qui correspond au mode esclave et ltat superviseur. Cet tat est cod
dans le 16e bit du registre dtat du processeur (PSW) qui en compte 64 au total
(1 pour ltat problme, 0 pour ltat superviseur). Par ailleurs, les bits 35 63 contiennent ladresse de la prochaine instruction excuter dans le programme et constituent donc ladresse de reprise du programme interrompu (CO).
Mcanisme de traitement dune interruption

Ce mcanisme comporte principalement quatre tapes :


le PSW courant est sauvegard dans une zone fixe de la mmoire. Un nouveau
PSW spcifique du type de linterruption leve est charg. Il y a 6 couples ancien
PSW/nouveau PSW correspondant aux 6 types dinterruptions mentionnes plus
haut. Ces 6 couples sont crs au dmarrage du systme;
le nouveau PSW branche le processeur vers une premire routine dinterruption
appele routine de premier niveau ou FLIHs (First Level Interrupt Handler) particulire du type dinterruption leve. Cette routine est rsidente en mmoire. Elle
sauvegarde les registres du processeur dans une zone rserve de la mmoire
centrale;
une routine de traitement dinterruption de second niveau ou SLIH (Second Level
Interrupt Handler) est maintenant appele pour rpondre exactement linterruption. Selon le type de linterruption, il sagit soit dune routine du superviseur
dentres-sorties, soit dune routine du superviseur de terminaison responsable de
la reprise en cas derreur, soit dune routine spcifique aux interruptions externes,
soit dune routine SVC;
le PSW sauvegard la premire tape est restaur, une fois lexcution de la
routine dinterruption de second niveau acheve.
11.4.3 Langage de commande
Dfinition

Le langage de commande constitue linterface de niveau utilisateur avec le


systme dexploitation. Les commandes composant le langage sont analyses par

11.4 Notions de base

283

loutil interprteur de commandes qui appelle la routine systme approprie en


assurant le passage des paramtres ventuels via les registres du processeur rservs
cet effet.
Chaque systme dexploitation a son langage de commandes propre. Nous prenons
ci-aprs deux exemples : dune part un exemple de langage de commandes dans le
cadre dun systme dexploitation orient batch, avec la prsentation du langage JCL
du systme MVS, dautre part un exemple de langage de commandes dans le cadre
dun systme dexploitation interactif, avec la prsentation du langage Shell du
systme Unix.
Exemples : Shell Unix et langage JCL de MVS
Le langage JCL de MVS

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.

Dunod La photocopie non autorise est un dlit.

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

11 Introduction aux systmes dexploitation multiprogramms

//DSE25CPY JOB (), DELETE COPY, CLASS = A, MSGCLASS = X,


//
NOTIFY = DSE25, MSGLEVEL = (1, 1)
//*-----------------------------------------------------------//*
DESTRUCTION DE FICHIERS TEMPORAIRES
//*-----------------------------------------------------------//STEP01
EXEC PGM = IDCAMS
//SYSPRINT
DD SYSOUT = *
//SYSOUT
DD SYSOUT = *
//SYSIN
DD *
DEL MDP1.DB90.TEMP01
DEL MDP1.DB90.TEMP02
/*
//------------------------------------------------------------//
COPIE DE BIBLIOTHEQUES
//------------------------------------------------------------//STEP02
EXEC PGM = IEBCOPY, REGION = 6144K
//SYSPRINT
DD SYSOUT = *
//SYSOUT
DD SYSOUT = *
//SYSUT1
DD UNIT = WORK, SPACE = (CYL, (1, 1))
//SYSUT2
DD UNIT = WORK, SPACE = (CYL, (1, 1))
//I1
DD DISP = SHR, DSN = SYS4.KF31.LOADTP
//I2
DD DISP = SHR, DSN = SYS4.KF31.LOADBT
//O1
DD DISP = SHR, DSN = DSE25.UTIL.LOAD.KF
//SYSIN
DD*
COPY INDD = I1, OUTDD = O1
COPY INDD = I2, OUTDD = O1
/*
//
Le shell dUnix

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

11.5 Gnration et chargement dun systme dexploitation

Figure 11.10

285

Session utilisateur avec invite du shell lmi 20 :~ #.

Les principales commandes du shell concernent essentiellement :

Dunod La photocopie non autorise est un dlit.

la dlivrance dinformations gnrales sur le systme (commande date dlivrant


la date et lheure du systme, commande who dlivrant la liste des utilisateurs
connects);
la gestion des fichiers (commandes cp pour la copie de fichiers, cd pour le changement de rpertoire, rm pour la destruction de fichier, rmdir et mkdir pour la destruction et la cration de rpertoire, ls pour lister les fichiers dun rpertoire);
la gestion des excutions de programmes (commandes batch pour le lancement de
commandes en diffr, ps pour obtenir des informations sur les excutions de
programmes en cours);
la communication entre utilisateurs (commande mail pour lenvoi de courrier
lectronique, commande talk pour assurer le dialogue entre deux utilisateurs
connects).

11.5 GNRATION ET CHARGEMENT


DUN SYSTME DEXPLOITATION
11.5.1 Gnration dun systme dexploitation
Le processus de gnration dun systme dexploitation dsigne lopration consistant configurer le systme en fonction de la spcificit du site sur lequel il est
appel sexcuter. Cette gnration est effectue par un utilitaire particulier, SYSGEN,
livr avec le systme, qui rend le systme oprationnel pour la machine cible partir
des paramtres fournis par ladministrateur et des bibliothques de distribution. Les
paramtres fournis par ladministrateur de la machine concernent par exemple la
dfinition du type de lunit centrale, la dfinition de la quantit de mmoire centrale

286

11 Introduction aux systmes dexploitation multiprogramms

disponible, la liste des priphriques disponibles et le choix des diffrentes options


du systme dexploitation.
La gnration dun systme tel que MVS seffectue en deux tapes. La premire
tape (STAGE1) concerne la dfinition des paramtres. Un JCL est cr en fonction
de ces paramtres, qui est excut lors de la seconde tape du processus (STAGE2).
Cette excution gnre partir des bibliothques de distribution fournies par IBM, le
systme dexploitation en utilisant des oprations de copies de bibliothques, dassemblage et ddition des liens.
11.5.2 Chargement dun systme dexploitation
Les programmes composant le systme dexploitation gnr sont conservs sur un
support de masse non volatile. Lorsque lordinateur commence fonctionner, il excute
un premier code plac dans une zone de mmoire morte (ROM). Ce premier programme,
appel programme damorage ou boot-strap, effectue tout dabord un test du matriel de la machine, puis il charge partir du support de masse, un programme
damorce plus sophistiqu. Cette amorce est place dans une zone particulire du
support de masse, par exemple, dans le bloc 0 du disque qualifi alors de bloc
damorage. Ce disque constitue le disque systme. Une fois cette amorce place en
mmoire centrale, elle sexcute et charge leur tour les programmes du systme
dexploitation.
Le chargement dun systme MVS se droule en trois tapes. La premire tape
appele IML (initial microcode load) effectue un test de la mmoire de lordinateur
puis elle charge partir dun disque dont ladresse est conserve dans une mmoire
ROM, une image de la configuration matrielle de la machine (lIOCDS) lui permettant notamment de connatre ladresse de la console oprateur et ladresse du disque
systme (le SYSRES). La deuxime tape appele IPL (initial program load) est
dclenche depuis la console systme par la fonction LOAD; elle permet le chargement depuis le SYSRES du texte de chargement (texte dIPL) plac dans le bloc 0 du
SYSRES. Ce texte dIPL recherche sur le disque le fichier SYS1.NUCLEUS qui
contient des modules dinitialisation du systme. Lexcution de ces modules constitue la dernire tape de linitialisation du systme, le NIP (nucleus initialization
program), qui met en place les diffrents composants du systme en utilisant notamment les descriptions faites dans le fichier systme PARMLIB. Le chargement complet
du systme est une opration qui peut durer une demi-heure sur un systme de
moyenne importance. Il faut noter que lopration dIML nest ncessaire que si la
machine a t compltement mise hors tension.

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

construire au-dessus du matriel dune machine virtuelle plus facile demploi et


plus conviviale;
prendre en charge de la gestion de plus en plus complexe des ressources et partage
de celles-ci.

Dunod La photocopie non autorise est un dlit.

Les fonctionnalits du systme dexploitation sont accessibles par le biais des


commandes ou des appels systme.
Le mode superviseur est le mode dexcution du systme. Cest un mode dexcution privilgi qui autorise notamment lappel des instructions interdites en mode
utilisateur (manipulation des interruptions). Ce mode assure la protection du systme
dexploitation. Le passage du mode utilisateur vers le mode superviseur est soit
provoqu par un appel systme, soit par une trappe, soit par larrive dune interruption. Il saccompagne de commutations de contexte qui consiste en la squence :
sauvegarde du contexte utilisateur changement de mode dexcution restitution
du contexte utilisateur.

Chapitre 12

Gestion de lexcution
des programmes : le processus

12

Nous commenons prsent ltude du fonctionnement dun systme multiprogramm.


Dans ce chapitre, nous nous intressons la fonction dexcution qui recouvre principalement deux notions : celle de processus qui correspond limage dun programme
qui sexcute et celle dordonnancement qui correspond au problme de lallocation
du processeur et donc du partage du processeur entre diffrents processus. Enfin, nous
terminons cette partie en abordant les problmes de synchronisation et de communication entre processus.

12.1 NOTION DE PROCESSUS


12.1.1 Dfinitions
Comme nous lavons tudi au chapitre 3, la chane de production de programme transforme un programme crit dans un langage de haut niveau en un programme dit excutable, crit en langage machine. Ce programme excutable est stock sur le disque.
lissue du chargement, il est plac en mmoire centrale pour pouvoir tre excut.
Imaginons que le programme excuter est plac en mmoire centrale partir de
lemplacement dadresse 0A1016. Le processeur commence lexcution du programme :
la premire instruction de celui-ci est charge dans le registre instruction1 (RI) et le
1. Une instruction est suppose avoir une longueur de 4 octets.

12.1 Notion de processus

289

compteur ordinal (CO) contient ladresse de la prochaine instruction excuter soit


0A1416. Lorsque linstruction courante a t excute, le processeur charge dans le
registre RI linstruction pointe par le CO, soit par exemple linstruction add Im R1 5
et le compteur ordinal prend la valeur 0A1816. Lexcution de linstruction add Im R1 5
modifie le contenu du registre PSW puisque cest une instruction arithmtique : les
drapeaux de signe, de nullit etc. sont mis jour. Ainsi, chaque tape dexcution
du programme, le contenu des registres du processeur volue. De mme le contenu
de la mmoire centrale peut tre modifi par des oprations dcriture ou de lecture
dans la pile (instructions push, pop) ou encore des oprations de modification des
donnes (instruction store).
On appelle processus limage de ltat du processeur et de la mmoire au cours de
lexcution dun programme. Le programme est statique et le processus reprsente
la dynamique de son excution. Plus prcisment, les dfinitions suivantes permettent de caractriser ce quest un processus :
un processus est un programme en cours dexcution auquel est associ un environnement processeur (CO, PSW, RSP, registres gnraux) et un environnement
mmoire (zone de code, de donnes et de pile) appels contexte du processus;
un processus est linstance dynamique dun programme et incarne le fil dexcution
de celui-ci dans un espace dadressage protg, cest--dire sur une plage mmoire
dont laccs lui est rserv.
Par ailleurs, un programme rentrant est un programme pour lequel il peut exister
plusieurs instances dexcutions simultanes (n par exemple), cest--dire que le
programme peut tre excut n fois en mme temps. Il y a alors n processus correspondant n excutions diffrentes et indpendantes du mme programme, chaque
processus voluant son propre rythme.
12.1.2 tats dun processus

Dunod La photocopie non autorise est un dlit.

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

12 Gestion de lexcution des programmes : le processus

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

Diagramme dtats dun processus.

12.1.3 Bloc de contrle du processus


Le chargeur a pour rle de monter en mmoire centrale le code et les donnes du
programme excuter. En mme temps que ce chargement, le systme dexploitation
cre une structure de description du processus associ au programme excutable : cest
le PCB ou Process Control Block (bloc de contrle du processus).
Le bloc de contrle dun processus contient les informations suivantes (figure 12.2) :
un identificateur unique du processus (un entier);
ltat courant du processus (lu, prt, bloqu);
le contexte processeur du processus : la valeur du CO, la valeur des autres registres du processeur;
le contexte mmoire : ce sont des informations mmoire qui permettent de trouver
le code et les donnes du processus en mmoire centrale;
des informations diverses de comptabilisation pour les statistiques sur les performances du systme;
des informations lies lordonnancement du processus;
des informations sur les ressources utilises par le processus, tels que les fichiers
ouverts, les outils de synchronisation utiliss, etc.

12.1 Notion de processus

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

Bloc de contrle de processus.

Le PCB permet la sauvegarde et la restauration du contexte mmoire et du


contexte processeur lors des oprations de commutations de contexte.
12.1.4 Oprations sur les processus

Dunod La photocopie non autorise est un dlit.

Le systme dexploitation offre gnralement les oprations suivantes pour la gestion


des processus : cration de processus, destruction de processus, suspension de lexcution et reprise de celle-ci.
Cration de processus

Un processus peut crer un ou plusieurs autres processus en invoquant un appel


systme de cration de processus. Le processus crateur est gnralement appel le
processus pre tandis que le ou les processus crs constituent quant eux les
processus fils. Ces processus fils peuvent leur tour crer des processus, devenant
ainsi galement des processus pre. Ainsi, au fil des oprations de cration inities
par les processus, se dveloppe un arbre de filiation entre processus.
Les oprations de cration de processus admettent notamment les variantes suivantes
selon les systmes dexploitation :
le processus cr hrite ou non de donnes et du contexte de son processus crateur. Ainsi, le nouveau processus peut excuter un programme diffrent de celui

292

12 Gestion de lexcution des programmes : le processus

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

La destruction dun processus intervient :


lorsque le processus a termin son excution. Dans ce cas, le processus sautodtruit
en appelant une routine systme de fin dexcution (par exemple exit() sous Unix);
lorsque le processus commet une erreur irrcouvrable. Dans ce cas, une trappe est
leve et le processus est termin par le systme (cf. paragraphe 11.4.2);
lorsquun autre processus demande la destruction du processus, par le biais dun
appel une routine systme telle que kill sous Unix.
Lors de la destruction dun processus, le contexte de celui-ci est dmantel : les
ressources alloues au processus sont libres et son bloc de contrle est dtruit.
Suspension dexcution

La suspension dexcution est une opration qui consiste momentanment arrter


lexcution dun processus pour la reprendre ultrieurement. Lors de lopration de
suspension, le contexte du processus est sauvegard dans son PCB afin de pouvoir
reprendre lexcution, l o elle a t suspendue. Le processus suspendu passe dans
ltat bloqu. Lors de sa reprise dexcution, le processus franchit la transition de
dblocage et entre dans ltat prt.
Sous les systmes Linux ou Unix, lappel systme sleep(duree) permet de suspendre
lexcution dun processus pour un temps gal duree secondes.
12.1.5 Un exemple de processus : les processus Unix
Le systme Unix est entirement construit partir de la notion de processus. Au
dmarrage du systme, un premier processus est cr, le processus 0. Ce processus 0
cre son tour un autre processus, le processus 1 encore appel processus init. Ce
processus init lit le fichier /etc/inittab et cre chacun des deux types de processus
dcrits dans ce fichier : dune part, les processus dmons (dont le nom est suffix par
un d ) qui sont des processus systme responsables dune fonction particulire
(inetd surveille le rseau, lpd gre les imprimantes, crond gre un chancier) et

12.1 Notion 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

Dunod La photocopie non autorise est un dlit.

Figure 12.3

Processus shell

cration
ls-l

Arborescence des processus Unix.

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

12 Gestion de lexcution des programmes : le processus

Table des rgions


(allocation de la mmoire)
Zone U

Table des rgions par processus


(allocation mmoire du processus)

Table des processus


(pid, tat, informations ordonnancement,
informations mmoire)
Figure 12.4

Mmoire principale

Bloc de contrle dun processus Unix.

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

Diagramme dtats simplifi dun processus Unix.

12.2 Ordonnancement sur lunit centrale

295

12.2 ORDONNANCEMENT SUR LUNIT CENTRALE


La fonction dordonnancement gre le partage du processeur entre les diffrents
processus en attente pour sexcuter, cest--dire entre les diffrents processus qui
sont dans ltat prt.
Dans le contexte dune machine multiprogramme, plusieurs processus sont prsents
en mmoire centrale. Imaginons la situation suivante un instant t : le processus P1
est lu et sexcute sur le processeur. Les processus P2 et P4 sont dans ltat bloqu
car ils attentent tous les deux la fin dune opration dentres-sorties avec le disque.
Les processus P3, P5 et P6 quant eux sont dans ltat prt : ils pourraient sexcuter
mais ils ne le peuvent pas car le processeur est occup par le processus P1. Lorsque
le processus P1 quitte le processeur parce quil a termin son excution, les trois
processus P3, P5 et P6 ont tous les trois le droit dobtenir le processeur. Mais le
processeur ne peut tre allou qu un seul processus la fois : il faut donc choisir
entre P3, P5 et P6. Par ailleurs, un moment donn lun des deux processus P2
ou P4, terminera son opration dentres-sorties. Ce processus passera alors dans
ltat prt et sera peut-tre plus prioritaire que le processus courant. Il faudra alors
prempter celui-ci. Cest le rle de la fonction dordonnancement que de choisir un
des trois processus P3, P5 ou P6 pour lui allouer le processeur ou de choisir darrter
le processus courant pour allouer le processeur un nouveau processus prt.
12.2.1 Ordonnancement premptif et non premptif
La figure 12.6 reprend le graphe dtats tel quil a t prsent sur la figure 12.1. Sur
cette figure, nous nous intressons plus particulirement aux transitions pouvant
exister entre ltat prt (tat dattente du processeur) et ltat lu (tat doccupation
du processeur). Le passage de ltat prt vers ltat lu constitue lopration dlection :
cest lallocation du processeur un des processus prts. Le passage de ltat lu
vers ltat prt a t ajout par rapport la figure 12.1 : il correspond une rquisi-

Dunod La photocopie non autorise est un dlit.

Fin

Rveil

lu

lection

En excution

Prt
Premption
En attente du processeur
Dblocage
Bloqu

Blocage

En attente de ressources
Figure 12.6

Oprations dlection et de premption.

296

12 Gestion de lexcution des programmes : le processus

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

Droulement des oprations dordonnancement.

La figure 12.7 schmatise le droulement des oprations dordonnancement premptif


avec deux processus P0 et P1. Initialement le processus P0 est lu et sexcute. Le
processus P1 est dans ltat prt. Le processus P0 fait un appel systme, par exemple
read (donnes, disque) pour demander la lecture de donnes depuis un disque. Il y
a commutation de contexte avec changement de protection pour aller excuter le
code de lappel systme (passage en mode superviseur) au cours duquel le processus
P0 se bloque dans lattente de la fin de lopration dentres-sorties avec le disque. Il
y a donc une opration dlection et le processus P1 est lu : le contexte processeur
associ au processus P0 est sauvegard dans le PCB du processus P0 (PCB0) et le
processeur est charg avec le PCB du processus 1 (PCB1). Le processus P1 commence
son excution. Au cours de cette excution, lopration dentres-sorties au bnfice
du processus P0 se termine et le disque envoie donc une interruption pour signaler la

12.2 Ordonnancement sur lunit centrale

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.

12.2.3 Politiques dordonnancement


La politique dordonnancement dtermine quel sera le prochain processus lu. Selon
si la premption est autorise ou non, la politique dordonnancement sera de type
premptive ou non.

298

12 Gestion de lexcution des programmes : le processus

Objectifs des politiques

Les objectifs atteindre en matire dordonnancement diffrent selon les types de


systmes considrs. Aussi, telle ou telle autre politique se rvlera plus approprie
un certain type de systme plutt qu un autre. Plus prcisment :
pour un systme traitements par lots, le but recherch est de maximiser le dbit
du processeur ou capacit de traitement, cest--dire le nombre de travaux traits
sur une certaine tranche de temps;
pour un systme en temps partag, le but recherch est de maximiser le taux doccupation du processeur tout en minimisant le temps de rponse des processus;
pour un systme temps rel, le but recherch est de respecter les contraintes temporelles des processus.
Diffrents critres sont utiliss pour mesurer les performances des politiques dordonnancement :
le taux doccupation du processeur, cest--dire le rapport entre le temps dutilisation du processeur par les processus sur le temps total coul;
la capacit de traitement du processeur, cest--dire le nombre de processus
excut sur un intervalle de temps donn;
le temps dattente des processus, cest--dire le temps pass par un processus dans
la file dattente des processus prts;
le temps de rponse des processus, cest--dire le temps coul entre la soumission du processus et sa fin dexcution.
Les mesures sont gnralement effectues sur un temps moyen pour un ensemble
de processus.
Prsentation des politiques

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

La premire politique est la politique du Premier Arriv, Premier Servi . Les


processus sont lus selon lordre dans lequel ils arrivent dans la file dattente des
processus prts. Il ny a pas de rquisition, cest--dire quun processus lu sexcute
soit jusqu ce quil soit termin, soit jusqu ce quil se bloque de lui-mme.
Lavantage de cette politique est sa simplicit. Son inconvnient majeur rside
dans le fait que les processus de petit temps dexcution sont pnaliss en terme de
temps de rponse par les processus de grand temps dexcution qui se trouvent avant
eux dans la file dattente des processus prts. La figure 12.9 donne un exemple dapplication de cette politique.

12.2 Ordonnancement sur lunit centrale

dure

ordre
darrive

P1

P2

P3

P1

299

P2

P3

10

temps de rponse moyen = (5 + 8 + 10) / 3 = 7,67


temps dattente moyen = (0 + 5 + 8) / 3 = 4,33
Figure 12.9

Politique Premier Arriv, Premier Servi .

Politique Plus Court dAbord

Une deuxime politique dordonnancement est la politique du Plus Court dAbord .


Dans cette politique, lordre dexcution des processus est fonction de leur temps
dexcution. Le processus de plus petit temps dexcution est celui qui est ordonnanc en premier. La politique est sans rquisition.
La stratgie mise en uvre dans cette politique remdie linconvnient cit pour
la politique prcdente du Premier Arriv, Premier Servi . On montre dailleurs
que cette politique est optimale dans le sens o elle permet dobtenir le temps de
rponse moyen minimal pour un ensemble de processus donn. La difficult majeure
de cette politique rside cependant dans la connaissance a priori des temps dexcution des processus. Cette connaissance nest pas disponible dans un systme interactif. Cest pourquoi cette politique est essentiellement mise en uvre dans les
systmes de traitement par lots o les utilisateurs soumettent leurs travaux en fournissant une estimation du temps dexcution ncessaire. La figure 12.10 donne un
exemple dapplication de cette politique.

Dunod La photocopie non autorise est un dlit.

dure

P1

P2

P3

P3

P2
2

P1
5

10

temps de rponse moyen = (2 + 5 + 10) / 3 = 5,67


temps dattente moyen = (0 + 2 + 5) / 3 = 2,33
Figure 12.10

Politique Plus Court dAbord .

300

12 Gestion de lexcution des programmes : le processus

Politique par priorit

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

temps de rponse moyen = (3 + 5 + 10) / 3 = 6


temps dattente moyen = (0 + 3 + 5) / 3 = 2,67
Figure 12.11

Politique par priorit.

Nous prsentons sur la figure 12.12 un exemple dapplication de cette politique


priorit dans le cadre dun systme temps rel. Les deux processus considrs ici sont
priodiques, cest--dire quils sexcutent intervalles rguliers. Ainsi le processus P1
a une priode gale 5 : il devient donc prt aux instants t = 0, t = 0 + 5 (5), t = 5 + 5 (10),
t = 10 + 5 (15), et ainsi de suite.
La politique applique appele Rate Monotonic est une politique classique du
temps rel. Chaque processus reoit une priorit fixe qui est inversement proportionnelle sa priode : le processus de plus petite priode est donc le processus le plus

12.2 Ordonnancement sur lunit centrale

dure

priode

P1

P2

10

P1

301

P2

P1

4
Figure 12.12

P2

10

Politique Rate Monotonic.

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)

Dunod La photocopie non autorise est un dlit.

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

excution non acheve

P3
8

P2 P3

P1
10

P1
12

14

temps de rponse moyen = (14 + 4 + 10) / 3 = 9,33


Figure 12.13

Politique du tourniquet.

302

12 Gestion de lexcution des programmes : le processus

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

Politique sans extinction ou avec extinction de priorit.

12.2 Ordonnancement sur lunit centrale

303

processus de niveau n 1 ne peuvent sexcuter que lorsquil ny aura plus aucun


processus dans la file de niveau suprieure n. De mme les processus de niveau n 2
ne peuvent sexcuter que lorsquil ny a plus aucun processus dans les files de
niveau suprieur n et n 1. Ainsi, plus les processus sont dans les files de priorits
infrieures, plus leurs chances de sexcuter sont rduites.
Si la mme politique est mise en uvre mais avec extinction de priorit, alors
lorsquun processus de niveau n a termin son quantum, il ne regagne pas la file de
niveau n, mais la file de niveau juste infrieure n 1. Ainsi sa priorit baisse.
Ordonnancement sous Linux
Principe de lordonnancement

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.

Dunod La photocopie non autorise est un dlit.

Appels systmes lis lordonnancement

Le systme Linux, conformment la norme POSIX 1003.1, offre un ensemble de


primitives systmes pour la gestion de lordonnancement, plus prcisment :
les primitives sched_setscheduler() et sched_getscheduler() permettent dattribuer
une des trois politiques dordonnancement vues prcdemment un processus ou
de connatre la politique affecte un processus;
les primitives setpriority() et getpriority() permettent de modifier la priorit
dun processus ou de connatre la priorit affecte un processus;
la primitive sched_rr_get_interval() permet de connatre le quantum de temps
attribu un processus de type SCHED_RR.
Ordonnancement sous MVS

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

12 Gestion de lexcution des programmes : le processus

Request Block) dcrivent les demandes dexcutions de routines systmes dans un


espace adresse systme. Les TCB et SRB sont attachs un espace adresse auquel est
galement associe une priorit et qui est galement dcrit par un bloc de contrle,
lASCB (Address Space Control Block).
Au niveau de lordonnanceur, une premire file dattente est constitue par le
chanage de tous les ASCB prsents en mmoire, chans par ordre de priorit croissant. Ensuite, pour chaque ASCB, il existe une file de tous les TCB et SRB attachs
cet espace adresse, galement chans par priorit croissante. Les SRB sont prioritaires par rapport au TCB.
un instant donn, lordonnanceur choisit dallouer le processeur au SRB ou
dfaut au TCB le plus prioritaire de lespace adresse de plus haute priorit (figure 12.15).
Priorit ++

ASCB

ASCB

ASCB

ASCB

SRB

SRB

SRB

SRB

SRB

SRB

TCB

vers le processeur

TCB

TCB
Priorit ++

Figure 12.15

Chanage des ASCB, TCB et SRB au sein de lordonnanceur MVS.

12.3 SYNCHRONISATION ET COMMUNICATION


ENTRE PROCESSUS
Dans un systme multiprocessus, lordonnanceur alloue le processeur chaque
processus selon un algorithme dordonnancement : la politique choisie conditionne
lordre dexcution des processus et trs souvent, les excutions des processus sentrelacent les unes avec les autres. Chaque processus dispose dun espace dadressage
propre et indpendant, protg par rapport aux autres processus. Malgr tout, les
processus peuvent avoir besoin de communiquer entre eux pour changer des donnes.

12.3 Synchronisation et communication entre processus

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.

Dunod La photocopie non autorise est un dlit.

12.3.1 Lexclusion mutuelle


Un exemple simple

Nous allons mettre en lumire ce premier problme de synchronisation laide dun


exemple simple. Pour cela, considrons donc le petit programme de rservation de
place (dans un avion, un train) donn ci-aprs.
Rservation :
si nbplace > 0
alors
rserver une place;
nbplace = nbplace 1;
fsi

306

12 Gestion de lexcution des programmes : le processus

Le programme Rservation peut tre excut par plusieurs processus la fois


(autrement dit, le programme est rentrant). La variable nbplace, qui reprsente le
nombre de places restantes dans lavion par exemple, est ici une variable dtat du
systme (de rservation).
On considre lexcution de deux processus Client_1 et Client_2, alors que nbplace
est gale 1. Client_1 sexcute en premier, et entame une rservation. Maintenant,
lexcution de Client_1 est commute par lordonnanceur juste aprs le test de la
valeur de la variable nbplace (nbplace = 1). Client_2 sexcute son tour, teste nbplace
quil trouve galement gale 1 et donc effectue une rservation en dcrmentant
dune unit la variable nbplace. nbplace devient gale 0. Maintenant que le processus
Client_2 a termin son excution, Client_1 reprend la main. Comme Client_1 avait
trouv la variable nbplace comme tant gale 1 juste avant dtre commut, il
continue son excution en dcrmentant son tour nbplace. De ce fait, nbplace devient
gale 1 ce qui est incohrent ! Une mme place a t alloue deux clients
diffrents !
Ressource critique, section critique et exclusion mutuelle

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

Nous rappelons que le mcanisme sous-jacent lordonnancement des processus


peut tre la survenue dune interruption horloge. Aussi une solution pour raliser
lexclusion mutuelle est de masquer les interruptions dans le prlude et de les dmasquer dans le postlude. Ainsi les interruptions sont masques ds quun processus
accde la ressource critique et aucun vnement susceptible dactiver un autre
processus ne peut tre pris en compte.

12.3 Synchronisation et communication entre processus

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

Dunod La photocopie non autorise est un dlit.

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

12 Gestion de lexcution des programmes : le processus

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

12.3 Synchronisation et communication entre processus

309

init (mutex, 1);


Rservation :
P(mutex);
prelude de section critique
si nbplace > 0
alors
reserver une place;
nbplace = nbplace 1;
fsi
V(mutex);
postlude de section critique

12.3.2 Le schma de lallocation de ressources


Prsentation du schma

Le schma dallocation de n exemplaires de ressources critiques un ensemble de


processus est une gnralisation du schma prcdent, dans lequel on considre
prsent que lon a n sections critiques. Le smaphore res dallocation de ressources
est initialis au nombre dexemplaires de ressources initialement disponibles, soit n,
cest--dire que lon fait correspondre un jeton par exemplaire de ressources. Pour
un processus, acqurir un exemplaire de ressource est alors synonyme dacqurir le
jeton correspondant, soit une opration P(res). Rendre la ressource est synonyme de
rendre le jeton associ, soit une opration V(res).
init (res, n);
Allocation : P(res);
Utilisation de la ressource res
Restitution : V(res);

Dunod La photocopie non autorise est un dlit.

Interblocage

Considrons prsent la situation suivante pour laquelle deux processus P1 et P2


utilisent tous deux deux ressources critiques R1 et R2 selon le code suivant. Les
deux ressources R1 et R2 sont gres par le biais de deux smaphores SR1 et SR2
initialiss 1.
Processus P1
Processus P2
dbut
dbut
P(SR1);
P(SR2);
P(SR2);
P(SR1);
Utilisation de R1 et R2;
Utilisation de R1 et R2;
V(SR2);
V(SR1);
V(SR1);
V(SR2);
fin
fin
Initialement, les deux ressources R1 et R2 sont libres. Le processus P1 commence
son excution, demande accder la ressource R1 en faisant lopration P(SR1) et
obtient R1 puisque la ressource est libre. Maintenant, le processus P1 est commut
par lordonnanceur au bnfice du processus P2. Le processus P2 commence donc

310

12 Gestion de lexcution des programmes : le processus

sexcuter, demande accder la ressource R2 en faisant lopration P(SR2) et


obtient R2 puisque la ressource est libre. Le processus P2 poursuit son excution et
demande prsent accder la ressource R1 en effectuant lopration P(SR1).
Cette fois, le processus P2 est stopp puisque R1 a t alloue au processus P1. Le
processus P2 passe donc dans ltat bloqu; lordonnanceur est invoqu et celui-ci
rlit le processus P1. Le processus P1 reprend son excution et demande prsent
accder la ressource R2 en effectuant lopration P(SR2). Le processus P1 est
galement stopp puisque R2 a t alloue au processus P2.
La situation dans laquelle les processus P1 et P2 se trouvent maintenant est donc
la suivante : le processus P1 possde la ressource R1 et attend la ressource R2 dtenue
par le processus P2. Pour que le processus P1 puisse reprendre son excution, il faut
que le processus P2 libre la ressource R2 en effectuant lopration V(SR2). Mais le
processus P2 ne peut lui-mme pas poursuivre son excution puisquil est bloqu en
attente de la ressource R1 possde par le processus P1. On voit donc clairement que
les deux processus P1 et P2 sont bloqus dans lattente lun de lautre et que rien ne
peut les sortir de cette attente.
Une telle situation est qualifie dinterblocage. Elle correspond une situation o
au moins deux processus, possdant dj un ensemble de ressources, sont en attente
infinie les uns des autres pour lacquisition dautres ressources. Une telle situation,
lorsquelle se produit, ne peut tre rsolue que par la destruction des processus impliqus dans linterblocage. Une faon dviter loccurrence dune telle situation est de
veiller ce que les processus utilisant les mmes ressources demandent celles-ci dans
le mme ordre. Ici, donc les oprations P(SR2) et P(SR1) pour le processus P2 doivent
tre inverses.
12.3.3 Le schma lecteurs-rdacteurs
Dans ce problme, on considre la situation o un fichier ou une zone de mmoire
commune est accde simultanment en lecture et en criture. Il y a donc deux types de
processus, dune part des processus lecteurs et dautre part des processus rdacteurs.
Dans ce schma, deux objectifs doivent tre atteints. Dun ct, le contenu du fichier
ou de la zone de mmoire commune doit videmment rester cohrent, donc les critures ne doivent pas avoir lieu en mme temps. Par ailleurs, on souhaite que les lecteurs
lisent toujours une information stable, cest--dire que les lecteurs ne doivent pas lire
une information en cours de modification.
Pour parvenir raliser ces deux objectifs, il faut donc, un instant donn, sur la
zone de mmoire commune ou sur le fichier partag :
soit une seule criture en cours;
soit une ou plusieurs lectures en cours, les lectures simultanes ne gnant pas
puisquune lecture ne modifie pas le contenu de linformation.
Le rdacteur

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

12.3 Synchronisation et communication entre processus

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

Dunod La photocopie non autorise est un dlit.

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

12 Gestion de lexcution des programmes : le processus

Utilisation de ce schma au niveau du systme dexploitation

Certains systmes dexploitation offrent au niveau du systme de gestion de fichiers,


un paramtre permettant de configurer louverture dun fichier, soit en mode partag,
soit en mode exclusif. Lorsquun processus ouvre un fichier en mode partag, alors
il est mis en attente pour accder ce fichier seulement si un autre processus a ouvert
ce mme fichier en mode exclusif. Ce processus se comporte comme un lecteur.
Lorsquun processus ouvre un fichier en mode exclusif, alors il est mis en attente
pour accder ce fichier seulement si un autre processus a ouvert ce mme fichier en
mode exclusif ou en mode partag. Autrement dit, ce processus accde seul au
fichier, tout comme un rdacteur.

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

Un accs concurrent ce fichier ralis par un autre job entrane laffichage du


message suivant :
DSLIST Data Sets Matching MDP1.ARTEMIS.V70.PRO003. Data set in use

indiquant que laccs au fichier est verrouill.


12.3.4 Le schma producteur-consommateur
Prsentation du problme

On considre maintenant deux processus communiquant par un tampon de n cases.


Dun ct, un processus producteur produit des messages quil dpose dans la case
du tampon pointe par lindex de dpt i. De lautre ct, un processus consommateur prlve les messages dposs par le processus producteur dans la case pointe
par lindex de retrait j. Le tampon est gr selon un mode FIFO circulaire en
consommation et en production, cest--dire que :
le producteur dpose les messages depuis la case 0 jusqu la case n 1, puis
revient la case 0;
le consommateur prlve les messages depuis la case 0 jusqu la case n 1, puis
revient la case 0.
Le processus producteur et le processus consommateur sont totalement indpendants dans le sens o ils sexcutent chacun leur propre vitesse. Dans ce cas, pour
quaucun message ne soit perdu, les trois rgles suivantes doivent tre respectes :
le producteur ne doit pas produire si le tampon est plein;
le consommateur ne doit pas faire de retrait si le tampon est vide;
le producteur et le consommateur ne doivent jamais travailler dans une mme case.

12.3 Synchronisation et communication entre processus

313

Une solution au problme

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.

Dunod La photocopie non autorise est un dlit.

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

Les systmes dexploitation offrent directement des outils de communication mettant


en uvre au niveau des primitives daccs ces outils, le schma producteurconsommateur.
Le systme Linux par exemple offre deux outils de ce type :
dune part, les tubes (pipe) qui permettent exclusivement la communication entre
processus qui sont issus dun mme processus pre, crateur du tube;
dautre part, les files de messages (Messages queues MSQ) qui permettent
nimporte quel processus connaissant lidentifiant de la file de communiquer avec
dautres processus.

314

12 Gestion de lexcution des programmes : le processus

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

Nous commenons prsent ltude de la gestion de la mmoire centrale. Dans le


cadre dun systme multiprogramm, plusieurs programmes sont chargs dans la
mmoire centrale, qui doit donc tre partage entre ceux-ci. Ce partage engendre trois
grands problmes rsoudre : tout dabord, il faut dfinir un espace dadressage
spar pour chaque processus, allouer de la place en mmoire centrale pour le code
et les donnes de ce processus et protger cet espace dadressage vis--vis des accs
des autres processus. Par ailleurs, le nombre de processus ncessaires une occupation optimale du processeur va trs vite rendre insuffisante la quantit de mmoire
physique disponible sur la machine. Une gestion de la mmoire visant ne charger
que les parties utiles un instant donn de chaque processus est donc mise en place
pour palier ce problme : cest le concept de mmoire virtuelle que nous expliquons
dans la deuxime partie de ce chapitre. Enfin, nous terminons en abordant les notions
de swapping.

13.1 MMOIRE PHYSIQUE ET MMOIRE LOGIQUE


La chane de production de programmes telle que nous lavons tudie en premire
partie de cet ouvrage produit un programme excutable relogeable, cest--dire dont
toutes les adresses sont calcules partir dune origine fixe 0.
Lors dune opration de chargement dynamique (cf. paragraphe 3.3.1), les adresses
du programme excutable relogeable ne sont pas translates de la valeur de ladresse

316

13 Gestion de la mmoire centrale

dimplantation en mmoire centrale. Cette translation seffectue seulement au moment


de lexcution, cest--dire au moment o le processeur veut accder lemplacement de la mmoire physique dsign par ladresse manipule. ce moment-l,
ladresse relogeable est additionne avec la valeur de ladresse dimplantation maintenue dans un registre dit registre de translation.
Lensemble des adresses du programme excutable, gnres par le processeur au
moment de lexcution des instructions, est appel espace dadresses logiques ou
virtuelles. Lensemble des adresses physiques rellement occupes par le programme
excutable suite au chargement en mmoire centrale est appel espace dadresses
physiques.
Pour que le processeur puisse accder la mmoire centrale, il est ncessaire de
convertir les adresses logiques gnres par le processeur en adresses physiques,
places sur le bus et prsentes au dispositif de slection de la mmoire physique.
Cette conversion est ralise par un dispositif matriel dj voqu au chapitre 8, la
MMU (Memory Management Unit). Dans lexemple pris ici et illustr par la figure 13.1,
la MMU contient le registre de translation. Ce registre de translation est toujours
charg avec ladresse dimplantation du programme excutable correspondant au
processus couramment actif. Nous verrons dans la suite de ce chapitre quil existe
dautres schmas de conversion, notamment les schmas de conversions lis la
segmentation et la pagination.
espace logique

processus
prts
PCB
5 632

programme

processus
actif
PCB

1 024

5 120

espace physique

adresse
dimplantation

2 048
CPU

adresse logique 1 024


2 048

programme

registre de translation
3 072

2 048
MMU
adresse physique = 1 024 + 2 048
bus

5 120

programme

mmoire physique
Figure 13.1

Espace dadresses logiques et espace dadresses physiques.

13.2 Allocation de la mmoire physique

317

13.2 ALLOCATION DE LA MMOIRE PHYSIQUE


Dans un systme multiprogramm, la mmoire centrale abrite dune part le code et
les donnes du systme dexploitation, dautre part le code et les donnes des
programmes utilisateurs. La mmoire est donc divise en deux grandes zones, celle
rserve au systme dexploitation qui est gnralement plac en mmoire haute
(depuis les adresses 0), en tous les cas toujours au voisinage du vecteur dinterruptions, dautre part celle rserve aux programmes des utilisateurs. Ainsi sous le systme
Linux, 1 Go de mmoire centrale est rserve au systme dexploitation et 3 Go sont
ddis aux utilisateurs.
Lorsquun utilisateur demande lexcution dun programme, le chargeur place en
mmoire centrale dans la zone rserve aux programmes utilisateurs le code et les
donnes de ce programme. Pour ce faire, le chargeur doit trouver une place libre suffisamment grande dans cette zone. Lorsque le processus correspondant a termin son
excution, la mmoire centrale doit tre libre. Lattribution de place mmoire aux
programmes utilisateurs et la libration de celle-ci en fin dexcution des processus
sappuient sur diffrentes stratgies dallocation et de libration mmoire.
Les stratgies dallocation / libration de la mmoire centrale peuvent tre divises
en deux grandes familles :
pour la premire famille, un programme est un ensemble de mots contigus inscable. Lespace dadressage du processus est linaire. On trouve ici les mthodes
dallocations en partitions variables que nous allons tudier en premier;
pour la seconde famille, un programme est un ensemble de mots contigus scable,
cest--dire que le programme peut tre divis en plus petits morceaux, chaque
morceau tant lui-mme un ensemble de mots contigus. Chaque morceau peut alors
tre allou de manire indpendante. On trouve ici les mcanismes de segmentation et de pagination.
13.2.1 Allocation contigu de la mmoire physique

Dunod La photocopie non autorise est un dlit.

Notion de partitions variables

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

13 Gestion de la mmoire centrale

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

Fin P2, P4 Programme 3


Taille

Programme 4

ZONE LIBRE

Initialement

Programme 5

Programme 5

Taille

Taille

ZONE
LIBRE

ZONE
LIBRE

linstant t

linstant t

Figure 13.2 volution


de la mmoire centrale gre en partitions variables.

Gestion de la mmoire sur lOS-MFT

Sur le systme dexploitation OS-MFT, anctre de MVS, la mmoire relle


tait divise au plus en 15 partitions de taille fixe, attribues 15 utilisateurs
diffrents. La taille de chaque partition, ainsi que son adresse origine taient
fixes au dmarrage du systme. Loccupation de la mmoire pouvait tre
trs mauvaise, un travail de petite taille pouvant tre plac dans une partition
bien plus grande que lui, gnrant une perte de place qualifie de fragmentation interne.

Mthodes dallocations dune zone libre

Charger un nouveau programme consiste trouver une zone libre suffisamment


grande pour pouvoir y placer ce programme, tout en minimisant la place perdue en
mmoire centrale et le temps de choix dune zone libre. Trois stratgies existent pour
le choix de la zone libre : stratgie de la premire zone libre (First Fit), stratgie de la
meilleure zone libre (Best Fit) et stratgie de la plus mauvaise zone libre (Worst Fit).

13.2 Allocation de la mmoire physique

319

Stratgie de la premire zone libre

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

Stratgie de la premire zone libre.

Dunod La photocopie non autorise est un dlit.

Stratgie de la meilleure zone libre

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

13 Gestion de la mmoire centrale

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

Stratgie de la meilleure zone libre.

Stratgie de la plus mauvaise zone libre

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

Au fur et mesure des oprations dallocations et de dsallocations, la mmoire


centrale devient compose dun ensemble de zones occupes et de zones libres parpilles dans toute ltendue de la mmoire centrale. Ces zones libres peuvent tre
chacune trop petites pour permettre lallocation de nouveaux programmes, alors que
la somme totale de lespace libre en mmoire centrale est suffisant : on parle alors de
fragmentation externe de la mmoire centrale.
Ainsi, sur la figure 13.6, la mmoire centrale comporte 4 zones libres respectivement de 60 Ko, 120 Ko, 20 Ko et 150 Ko mais aucune delles nest assez grande pour

13.2 Allocation de la mmoire physique

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

Stratgie de la plus mauvaise zone libre.

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

Fragmentation de la mmoire centrale.

70 Ko

322

13 Gestion de la mmoire centrale

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

Une solution au problme de la fragmentation externe est apporte par lopration de


compactage de la mmoire centrale. Le compactage de la mmoire centrale consiste
dplacer les programmes en mmoire centrale de manire ne crer quune seule
et unique zone libre. Le compactage de la mmoire centrale est une opration coteuse.
Il nexiste pas dalgorithme simple permettant doptimiser le nombre doctets dplacs
lors dune telle opration. Par ailleurs elle suppose un chargement dynamique des
programmes : dplacer un programme consiste alors changer la valeur dadresse
dimplantation charge dans le registre de translation.
La figure 13.7 illustre le principe du compactage de la mmoire centrale qui permet
ici de charger le programme 8 dont la taille est gale 180 Ko.
0

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

Compactage de la mmoire centrale.

170 Ko

13.2 Allocation de la mmoire physique

323

Protection des partitions

Chaque partition alloue un programme constitue un espace dadressage protg pour


le processus correspondant qui doit tre gard des accs mmoire des autres processus.
Cette protection est ralise en vrifiant que chaque adresse logique gnre par
le processeur pour le compte dun processus est bien infrieure strictement la taille
de la partition alloue au processus concern. La taille limite de la partition alloue
un processus fait partie du contexte du processus au mme titre que la valeur de
ladresse dimplantation adr en mmoire centrale de cette partition. Les valeurs de
ces grandeurs pour le processus actif sont charges dans des registres de la MMU,
respectivement dans le registre de translation et dans le registre limite (figure 13.8).
MMU
Registre translation
CPU
Adresse logique

Mmoire centrale

adr
Registre limite
taille
oui

<

non
erreur

Figure 13.8

adr
Adresse t
a
+
physique i
l
l
e

Programme

Protection des partitions.

13.2.2 Allocation non contigu de la mmoire physique

Dunod La photocopie non autorise est un dlit.

La mthode dallocation par partitions variables prsente deux difficults :


comme le programme charger en mmoire centrale est considr comme un
ensemble de mots inscable, elle ncessite de trouver en mmoire centrale une
zone libre dun seul tenant suffisamment grande pour y placer le programme. Si
la taille du programme est importante, trouver une telle zone libre peut se rvler
difficile;
les allocations et dsallocations successives engendrent une fragmentation externe
de la mmoire centrale, ncessitant une opration de compactage de la mmoire
centrale qui est excessivement coteuse.
Une solution la premire difficult voque ci-dessus est de considrer que
lensemble des mots constituant un programme est maintenant un ensemble scable.
Ainsi, le programme charger est divis en un ensemble de morceaux, chaque

324

13 Gestion de la mmoire centrale

morceau tant lui-mme un ensemble de mots contigus inscable. Chaque morceau


du programme est alors allou en mmoire centrale indpendamment des autres :
Si le programme est divis en un ensemble de morceaux de taille fixe et gale, le
mcanisme dallocation de la mmoire centrale est alors celui de la pagination.
Chaque morceau est appel page.
Si le programme est divis en un ensemble de morceaux de taille variable, le
mcanisme dallocation de la mmoire centrale est alors celui de la segmentation.
Chaque morceau est appel segment.
La pagination
Principe de la pagination

Dans le mcanisme de pagination, lespace dadressage du programme est dcoup


en morceaux linaires de mme taille appels pages. Lespace de la mmoire physique
est lui-mme dcoup en morceaux linaires de mme taille appels case ou cadre
de page. La taille dune case est gale la taille dune page. Cette taille est dfinie
par le matriel, comme tant une puissance de 2, variant selon les systmes dexploitation entre 512 octets et 8 192 octets. Ainsi, sur lIBM 370, la taille des pages est
fixe 4 Ko tandis que sur une machine DEC la taille des pages est de 512 mots.
Dans ce contexte, charger un programme en mmoire centrale consiste placer les
pages dans nimporte quelle case disponible. Pour connatre tout moment quelles
sont les cases libres en mmoire centrale un instant t, le systme maintient une table
appele table des cadres de pages ou table des cases qui indique pour chaque case
de la mmoire physique, si la case est libre ou occupe, et si elle est occupe, quelle
page et quel processus la possdent.
Ce mcanisme dallocation de la mmoire centrale nengendre pas de fragmentation externe. Il peut provoquer une fragmentation interne dans la mesure o la taille
du programme allouer nest pas forcment un multiple de la taille des pages.
La figure 13.9 donne un exemple dapplication de ce mcanisme dallocation pour
deux processus P1 et P2 dont les espaces dadressage sont respectivement gaux
16 Ko et 7 Ko. Les pages et les cases ont-elles une taille de 4 Ko.
Adresse logique et table des pages

Conversion adresse logique adresse physique


Lespace dadressage du processus tant dcoup en pages, les adresses gnres dans
cet espace dadressage sont des adresses pagines, cest--dire quun octet est repr
par son emplacement relativement au dbut de la page laquelle il appartient. Ladresse
dun octet est donc forme par le couple <numro de page p laquelle appartient
loctet, dplacement d relativement au dbut de la page p>. Pour une adresse logique
de m bits, en considrant des pages de 2n octets, les m n premiers bits correspondent au numro de page p et les n bits restants au dplacement d dans la page.
Les octets dans la mmoire physique ne peuvent tre adresss au niveau matriel
que par leur adresse physique. Pour toute opration concernant la mmoire, il faut
donc convertir ladresse pagine gnre au niveau du processeur en une adresse

13.2 Allocation de la mmoire physique

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

Espace dadressage du processus P1 (16 Ko)

Page 1

Page 2 P1

Case 6

Page 4 P1

Case 7

Page 2 P2

Case 8

ALLOCATION

Page 2

Espace dadressage du processus P2 (7 Ko)


Page
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8

Dunod La photocopie non autorise est un dlit.

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.

La table des pages


Dans une premire approche, la table des pages est une table contenant autant dentres
que de pages dans lespace dadressage dun processus. Chaque processus a sa propre
table des pages. Chaque entre de la table est un couple <numro de page, numro de

326

13 Gestion de la mmoire centrale

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

Table des pages


du processus P1

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

Espace dadressage du processus P1 (16 Ko)


Table des pages
du processus P2

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

Espace dadressage du processus P2 (7 Ko)


Fragmentation interne
Page
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8

Processus

1 (libre)
1
P1
P1
3
P2
1
1 (libre)
P1
2
P1
4
P2
2
Table des cases

Figure 13.10

Table des pages.

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.

13.2 Allocation de la mmoire physique

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

Dunod La photocopie non autorise est un dlit.

cs

er ac

i
prem

Table des pages


c

seco c
+ acc nd
s
adresse
physique

Page
d

Mmoire
Figure 13.11

Traduction dune adresse pagine en adresse physique.

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

13 Gestion de la mmoire centrale

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

Table des pages

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.

Protection de lespace dadressage des processus

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-

13.2 Allocation de la mmoire physique

329

quement, 3 bits sont utiliss pour dfinir respectivement lautorisation daccs en


lecture (r), criture (w) et excution (x).
Lors dun accs une page, la cohrence du type daccs avec les droits associs
la page est vrifie et une trappe est leve par le systme dexploitation si le type
daccs ralis est interdit. Par exemple, sur la figure 13.13, la page 1 du processus P1
est dfinie avec le seul accs en lecture (r--) autoris. La demande dexcution dune
instruction du type STORE D R1 page1, d, demandant lcriture du contenu du registre R1
dans la cellule mmoire situe lemplacement d de la page 1 provoque une trappe
et larrt de lexcution du processus P1.
Mmoire
Page 1
Page 2
Page 3

Table des pages


du processus P1

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

Espace dadressage du processus P1 (16 Ko)


Table des pages
du processus P2

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

Espace dadressage du processus P2 (7 Ko)


Fragmentation interne

Dunod La photocopie non autorise est un dlit.

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

Table des cases


Figure 13.13 Entres de la table des pages
avec les bits de protection et partage des pages entre processus.

330

13 Gestion de la mmoire centrale

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
+

Table des pages


c

+
Page
Adresse
physique

Pagination deux niveaux.

c
d

Mmoire
Figure 13.14

hp

13.2 Allocation de la mmoire physique

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.

Dunod La photocopie non autorise est un dlit.

Un exemple : gestion mmoire sur le systme MVS/370

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

13 Gestion de la mmoire centrale

Pour acclrer la conversion de ladresse virtuelle vers ladresse relle, un cache


associatif de 8 100 postes est plac en amont de lhypertable.
La segmentation

La pagination constitue un dcoupage de lespace dadressage du processus qui


ne correspond pas limage que le programmeur a de son programme. Pour le
programmeur, un programme est gnralement constitu des donnes manipules
par ce programme, dun programme principal, de procdures spares et dune pile
dexcution.
La segmentation est un dcoupage de lespace dadressage qui cherche conserver
cette vue du programmeur (figure 13.15). Ainsi, lors de la compilation, le compilateur associe un segment chaque morceau du programme compil. Un segment est
un ensemble demplacements mmoire conscutifs non scable. la diffrence des
pages, les segments dun mme espace dadressage peuvent tre de taille diffrente.

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.

Dune manire gnrale, on trouvera un segment de code, un segment de donnes


et un segment de pile.
Adresse logique et table des segments

Conversion adresse logique adresse physique


Dune manire similaire ce qui se passe avec la pagination, la segmentation de
lespace dadressage dun processus gnre des adresses segmentes, cest--dire
quun octet est repr par son emplacement relativement au dbut du segment auquel
il appartient. Ladresse dun octet est donc forme par le couple <numro de segment s
laquelle appartient loctet, dplacement d relativement au dbut du segment s>.
Pour toute opration concernant la mmoire, il faut ici encore convertir ladresse
segmente gnre au niveau du processeur en une adresse physique quivalente.

13.2 Allocation de la mmoire physique

333

Ladresse physique dun octet sobtient partir de son adresse segmente en


remplaant le numro de segment s de ladresse segmente par ladresse physique
dimplantation du segment en mmoire centrale et en ajoutant cette adresse
physique dimplantation, le dplacement d de loctet dans le segment. Cest la MMU
qui effectue cette conversion.
Il faut donc connatre pour tout segment, ladresse dimplantation dans la mmoire
centrale du segment : cette correspondance seffectue grce une structure particulire appele la table des segments.

La table des segments


La table des segments est une table contenant autant dentres que de segments dans
lespace dadressage dun processus. Chaque entre i de la table est un couple <adresse
adr dimplantation du segment i, taille t du segment i>. Sur la figure 13.16, le processus
P1 a 4 segments dans son espace dadressage, donc la table des segments a 4 entres.
Chaque entre tablit lquivalence entre dune part le numro de segment, dautre
part ladresse dimplantation du segment et sa taille, relativement au schma de la
mmoire centrale.
Mmoire

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

Table des segments du processus P1


Segment 3

Dunod La photocopie non autorise est un dlit.

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

Table des segments.

195 Ko

334

13 Gestion de la mmoire centrale

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

Table des segments

Registre LTBR

ads

adr

ads
s

>?
non

oui
2

>?

oui

Segment

non
d

Adresse
physique

TRAPPE

TRAPPE
Mmoire
Figure 13.17

Traduction dune adresse segmente en adresse physique.

13.2 Allocation de la mmoire physique

335

Lallocation des segments en mmoire centrale seffectue selon le mme principe


que pour lallocation de partitions variables. Pour allouer un segment de taille t, il
faut trouver une zone libre dont la taille soit au moins gale la taille du segment.
Elle engendre les mmes problmes de fragmentation externe.
Protection de lespace dadressage dun processus

Des bits de protection sont associs chaque segment de lespace dadressage du


processus et permettent ainsi de dfinir le type daccs autoriss au segment. Ces
bits de protection sont mmoriss pour chaque segment, dans la table des segments
du processus. Classiquement, 3 bits sont utiliss pour dfinir respectivement lautorisation daccs en lecture (r), criture (w) et excution (x).
Lors dun accs un segment, la cohrence du type daccs avec les droits associs au segment est vrifie et une trappe est leve par le systme dexploitation si le
type daccs ralis est interdit.
Par ailleurs, chaque processus ne peut avoir accs qu sa propre table des
segments et donc ses propres segments. De ce fait, chaque espace dadressage est
protg vis--vis des accs des autres processus. Pour que deux processus puissent
partager un ensemble de segments, il faut que chacun des deux processus rfrence
cet ensemble de segments dans sa table des segments respective.

Dunod La photocopie non autorise est un dlit.

Pagination des segments

Une solution, trs largement rpandue, au problme de la fragmentation externe, est


de combiner pagination et segmentation, cest--dire de paginer les segments.
Dans le cas o pagination et segmentation sont simultanment employes, une
table des segments est dfinie pour chaque espace dadressage de processus. Chaque
segment est son tour pagin, il existe donc une table des pages pour chaque segment.
Ainsi une entre de la table des segments ne contient plus ladresse du segment
correspondant en mmoire physique mais contient ladresse de la table des pages en
mmoire physique pour ce segment.
Ladresse dun octet dans lespace dadressage du processus devient un couple
<s, d>, le dplacement d tant son tour interprt comme tant un couple <numro
de page p, dplacement d dans cette page>. Les mcanismes de traduction de ladresse
logique vers ladresse physique concernant la segmentation et la pagination se superposent lun lautre. Ainsi (figure 13.18) :
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_t
de la table des pages du segment s en mmoire centrale;
le dplacement d est alors dcompos en un numro de page p et un dplacement
d dans la page p. Le numro de page p est ajout ladresse adr_t de la table des
pages du segment s pour indexer dans la table lentre concernant la page p.

336

13 Gestion de la mmoire centrale

Ladresse adr dimplantation en mmoire centrale de la case contenant la page p


est ainsi rcupre;
enfin, le dplacement d est ajout adr pour constituer ladresse physique de loctet
recherch.
MMU
Registre STLR
max_s
Adresse logique
s
1

Registre LTBR

Table des segments

ads

adr_t

ads
s

>?

non

oui
2

>?

non

oui

Table des pages


adr

p d
3

adr_t

TRAPPE

Page
4
TRAPPE

Segment

adr
d

Adresse
physique
Mmoire

Figure 13.18

Pagination des segments.

13.3 MMOIRE VIRTUELLE


13.3.1 Principe de la mmoire virtuelle
La multiprogrammation implique de charger plusieurs programmes en mmoire
centrale de manire obtenir un bon taux dutilisation du processeur. Supposons
comme sur la figure 13.19 que lexcution des processus P1, P2, P3 soit ncessaire
pour obtenir ce taux dutilisation du processeur satisfaisant. On peut remarquer
quune fois les pages des processus P1 et P2 charges dans la mmoire, il ne reste
pas assez de cases libres pour charger la totalit des pages du programme 3. Ce
dernier ne peut donc pas tre charg.
Lorsque lon regarde lexcution dun processus, on saperoit qu un instant
donn le processus naccde qu une partie de son espace dadressage, par exemple

13.3 Mmoire virtuelle

337

Mmoire
Page 1

Table des pages


du processus P1

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

Espace dadressage du processus P2 (7 Ko)


Table des pages
du processus P3

Page 1
Page 2
Page 3

Page 1

case 5

Page 2

case 1

Page 3

Fragmentation interne

Espace dadressage du processus P3 (12 Ko)


Page
Page 4

Page 1

Page 5
Page 2
Dunod La photocopie non autorise est un dlit.

Page 6
Page 3
Page 8

Page 7
Page 9

Espace dadressage du processus P4 (36 Ko)


Figure 13.19

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

Insuffisance de la mmoire physique.

la page de code couramment excute par le processeur et la page de donnes


correspondante. Les autres pages de lespace dadressage ne sont pas accdes et
sont donc inutiles en mmoire centrale. Une solution pour pouvoir charger plus de
processus dans la mmoire centrale est donc de ne charger pour chaque processus

338

13 Gestion de la mmoire centrale

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

Table des pages


du processus P1
case
V
Page 1

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

Espace dadressage du processus P2 (7 Ko)


Table des pages
du processus P3

Page 1
Page 2
Page 3

Page 1

case 5

Page 2

case 1

Page 3

Espace dadressage du processus P3 (12 Ko)

Page
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8

Page 4

Page 1

Page 5

Table des pages


du processus P4

Page 2
Page 6
Page 3
Page 8

Page 7
Page 9

Espace dadressage du processus P4 (36 Ko)

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

13.3 Mmoire virtuelle

339

Dunod La photocopie non autorise est un dlit.

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

13 Gestion de la mmoire centrale

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

Table des pages


V = 0 adresse p
sur disque

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.

13.3 Mmoire virtuelle

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

Dunod La photocopie non autorise est un dlit.

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

Bit validation vrai si la page est prsente en mmoire centrale


Bit modification vrai si la page a t modifie en mmoire centrale
Champ Accs utilis par les algorithmes de remplacement de page
Droits daccs la page en lecture / criture / excution
Figure 13.22

Format dune entre de la table des pages.

342

13 Gestion de la mmoire centrale

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.

13.3 Mmoire virtuelle

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

Dunod La photocopie non autorise est un dlit.

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

13 Gestion de la mmoire centrale

la page la plus anciennement charge est slectionne comme tant a priori la


page victime;
si la valeur du bit de rfrence est 0, alors la page est effectivement remplace;
si la valeur du bit de rfrence est au contraire 1, alors une seconde chance est
donne la page. Son bit de rfrence est remis 0, et la page la plus anciennement charge suivante est slectionne.
Cet algorithme constitue une bonne approximation de lalgorithme LRU. Il est
beaucoup moins coteux implmenter car de nombreux matriels offrent directement un bit de rfrence associ chaque case de la mmoire centrale.
Remplacement LFU et MFU

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.

13.3 Mmoire virtuelle

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 :

un bit V de validation indique si la page est prsente ou non en mmoire centrale;


un bit M de modification indique si la page a t modifie en mmoire centrale;
le champ case contient ladresse de la case physique contenant la page;
un champ accs indique si la page a t accde ou non;
un compteur ge permet de mmoriser lge de la page en mmoire centrale.

Les champs accs et ge sont utiliss par le processus drobeur de pages


(processus kswapd) pour choisir des pages victimes. Le drobeur de pages est rveill
ds que lespace mmoire libre tombe sous une marque de limite infrieure. Le drobeur de pages libre alors des cases jusqu ce que lespace mmoire libre passe audessus dune marque de limite suprieure. Les marques de limite infrieure et suprieure sont des paramtres systme configurs par ladministrateur.
Une page est victime du drobeur de pages si elle a atteint un ge donn (paramtre systme) sans tre rfrence. Plus prcisment :
chaque fois quune page est rfrence, lge de la page devient gal 0 et le bit
rfrence est mis vrai;
chacun de ses passages, le drobeur de pages met faux le bit rfrence sil est
vrai puis incrmente lage de la page.
Une page est victime si son bit de rfrence est faux et si elle a atteint lge
limite. Le remplacement est de type global.

Dunod La photocopie non autorise est un dlit.

La mmoire virtuelle sous lOS MVS/370

La gestion de la mmoire virtuelle pour le systme dexploitation MVS/370 est


assez similaire celle mise en uvre sous Linux. Chaque page est caractrise par
un bit de rfrence qui est positionn par le matriel chaque rfrence la page et
par un ge voluant de 0 255 comptabilis dans le compteur UIC (unreferenced
interval count) dune taille dun octet.
intervalle rgulier, le systme inspecte lensemble des pages prsentes en mmoire
centrale :
si le bit de rfrence est positionn, celui-ci est remis faux et lUIC de la page
revient 0;
si le bit de rfrence nest pas positionn, lUIC de la page est incrment dune
unit.
La page victime est celle pour laquelle la valeur de lUIC est la plus grande, ce qui
correspond la page la moins rcemment utilise (LRU). Le remplacement est ici
aussi de type global.

346

13 Gestion de la mmoire centrale

13.3.6 Notion dcroulement


On appelle croulement, une haute activit de pagination. Un processus scroule
lorsquil passe plus de temps paginer qu sexcuter. La figure 13.25 illustre ce
phnomne. Elle reprsente le taux dutilisation du processeur en fonction du degr
de multiprogrammation, cest--dire en fonction du nombre de processus chargs en
mmoire centrale.
Taux dutilisation
du processeur

croulement

Dgr de multiprogrammation
Figure 13.25

croulement.

Sur cette figure, on voit clairement que lutilisation du processeur augmente


jusqu un certain seuil au-del duquel cette utilisation chute compltement. Cette
chute correspond une trop grande activit de pagination des processus qui passent
le plus clair de leur temps en oprations dentres-sorties car ils nont pas suffisamment de cases mmoires disponibles pour contenir les pages relatives leur espace
de travail courant.
Le phnomne dcroulement se produit surtout si une stratgie de remplacement
global est mise en uvre. En effet, avec une telle stratgie, un processus peut
stendre en mmoire centrale au dtriment des autres. Les autres processus qui
voient leur nombre de pages diminuer en mmoire centrale vont commettre des
dfauts de pages et passer dans ltat bloqu, en attente de la fin de lopration
dentres-sorties leur permettant dobtenir les pages souhaites. Le nombre de
processus prts va donc diminuer et le systme automatiquement va rintroduire de
nouveaux processus en mmoire centrale pour maintenir le taux dutilisation du
processeur un bon niveau. Ces nouveaux processus vont leur tour provoquer des
dfauts de pages puisquils vont demander le chargement en mmoire centrale des
pages ncessaires au dmarrage de leur excution. Leffet prcdent en est donc
encore renforc, entranant petit petit le systme jusqu lcroulement de ses
performances.

13.4 Swapping des processus

347

13.4 SWAPPING DES PROCESSUS


Lopration de vidage (swap-out) dun processus consiste transfrer sur disque
dans la zone de swap, lensemble des pages prsentes en mmoire centrale de
lespace dadressage de ce processus. Le processus victime de lopration de vidage
est un processus endormi (tat bloqu) en attente dune ressource pour la poursuite
de son excution. Lintrt de cette opration est de dsengorger dun seul coup la
mmoire centrale de pages inutiles plutt que de le faire petit petit par vol de
pages. Le vidage de processus peut tre aussi dclench en cas de situation de crise
au niveau de loccupation de la mmoire centrale. Lopration inverse de swap-in
consiste ramener les pages du processus depuis la zone de swap lorsque celui-ci
redevient actif.
Sous le systme Unix, le processus systme 0, premier processus cr lors du boot
du systme, devient ensuite le processus swapper. Lorsquil est rveill par le noyau,
le processus swapper examine les processus prsents en mmoire centrale et transfre ceux qui sont endormis depuis le plus longtemps. Par ailleurs, il examine galement les processus transfrs dans la zone de swap et remonte en mmoire centrale
ceux qui sont devenus prts et pour lesquels il existe suffisamment despace en
mmoire centrale.

Dunod La photocopie non autorise est un dlit.

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

Systme de gestion de fichiers

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.

14.1 LE FICHIER LOGIQUE


14.1.1 Dfinition
Le fichier logique correspond la vue que lutilisateur de la machine a de la conservation de ses donnes. Plus prcisment, le fichier logique est :
dune part, un type de donnes standard dfini dans les langages de programmation, sur lequel un certain nombre doprations spcifiques peuvent tre ralises.

14.1 Le fichier logique

349

Ces sont les oprations de cration, ouverture, fermeture et destruction de fichier.


Dans le programme, le fichier est identifi par un nom. Les oprations de cration
ou douverture du fichier logique effectuent la liaison du fichier logique avec le
fichier physique correspondant sur le support de masse. Au contraire, les oprations de fermeture et de destruction rompent cette liaison;
dautre part, un ensemble denregistrements ou articles. Un enregistrement est un
type de donnes regroupant des donnes de type divers lies entre elles par une
certaine smantique inhrente au programme qui les manipule. Lenregistrement
constitue pour le programme une unit logique de traitement. Les enregistrements
du fichier logique sont accessibles par des oprations spcifiques de lecture ou
dcriture que lon appelle les fonctions daccs. Diffrents modes daccs aux
enregistrements peuvent tre dfinis. Les principaux sont le mode squentiel, le
mode index et le mode direct.

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;

Dfinition du fichier de nom nom_fich comme tant un ensemble dlment


element.
nom_fich : file of element;

Dunod La photocopie non autorise est un dlit.

14.1.2 Les modes daccs


Les modes daccs dfinissent la manire dont les enregistrements composant un
fichier sont accessibles. Le nombre et le type de modes daccs disponibles sont
fonction du systme dexploitation. Les modes daccs les plus courants sont laccs
squentiel, laccs index et laccs direct. Ils dfinissent la smantique des oprations de lecture et dcriture denregistrements au niveau du fichier. Selon le mode
daccs associ un fichier, celui-ci peut tre accessible en lecture seule, en criture
seule ou en lecture et criture simultane.
Accs squentiel

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

14 Systme de gestion de fichiers

positionne sur le suivant. Ainsi, lire le troisime enregistrement du fichier ncessite


au pralable la lecture du premier enregistrement ainsi que du second. Lopration
dcriture dun nouvel enregistrement place obligatoirement cet enregistrement en
fin de fichier. Ce mode daccs est trs simple et il dcoule naturellement du modle
de la bande magntique. Avec ce mode, un fichier est soit accessible en lecture seule,
soit en criture seule.
Accs index

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;

14.1 Le fichier logique

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

Dunod La photocopie non autorise est un dlit.

Le langage Ada permet la dfinition de fichiers accessibles en mode squentiel et en


mode direct.
Voici un premier programme illustrant la dfinition et la manipulation de deux
fichiers A et B, dfinis comme tant accs squentiel. Les fichiers contiennent des
enregistrements de type T_ENRG, composs de deux champs nom_eleve et note. Les
oprations OPEN et CREATE associent les fichiers logiques A et B un fichier physique,
respectivement Notes_Eleves qui est ouvert en mode lecture (IN_FILE) et Copie_Eleves
qui est ouvert en mode criture (OUT_FILE). Les enregistrements lus dans le fichier A
en mode squentiel sont crits dans le fichier B.
Fichier squentiel
type T_ENRG is
dfinition de lenregistrement
record
nom_eleve : string[30];
note : integer
end record;
instanciation du paquetage SEQUENTIAL_IO permettant lutilisation du mode
squentiel. Le paquetage contient les fonctions daccs.
with SEQUENTIAL_IO;
package T_IO is new SEQUENTIAL_IO(ELEMENT_TYPE = > T_ENRG);
dclaration de deux fichiers A et B de type squentiel
A, B : T_IO.FILE_TYPE; ENRG : T_ENRG;
BEGIN
ouverture du fichier A en mode lecture seule (IN_FILE)
T_IO.OPEN(A, IN_FILE, "Notes_Eleves");
ouverture du fichier B en mode criture seule (OUT_FILE)
T_IO.CREATE(B, OUT_FILE, "Copie_Eleves");
lecture dun enregistrement dans A et copie dans B jusqu atteindre
la fin de fichier pour A

352

14 Systme de gestion de fichiers

WHILE (NOT T_IO.END_OF_FILE(A))


T_IO.READ(A, ENRG);
T_IO.WRITE(B, ENRG);
END;
fermeture des fichiers
T_IO.CLOSE(A);
T_IO.CLOSE(B);
END;

Le second programme illustre la dfinition et la manipulation de trois fichiers A,


B et C, dfinis comme tant accs direct. Les ordres de lecture (READ) et criture
(WRITE) spcifient le numro relatif de lenregistrement concern.
Fichier en mode direct
type T_ENRG is
record
nom_eleve : string[30];
note : integer
end record;
instanciation du paquetage DIRECT_IO permettant lutilisation du mode
direct. le paquetage contient les fonctions daccs.
with DIRECT_IO;
package T_IO is new DIRECT_IO(ELEMENT_TYPE = > T_ENRG)
A, B, C : T_IO.FILE_TYPE; ENRG : T_ENRG;
BEGIN
ouverture du fichier A en mode lecture seule (IN_FILE)
T_IO.OPEN(A, IN_FILE, "Notes_Eleves");
ouverture du fichier B en mode criture seule (OUT_FILE)
T_IO.OPEN(B, OUT_FILE, "Copie_Eleves");
ouverture du fichier C en mode lecture/criture (INOUT_FILE)
T_IO.OPEN(C, INOUT_FILE, "Modif_Eleves");
lecture dans le fichier A de lenregistrement numro 2 du fichier
T_IO.READ(A, ENRG, 2);
criture dans le fichier B de lenregistrement numro 2 du fichier A
T_IO.WRITE(B, ENRG);
lecture dans le fichier C de lenregistrement numro 4 du fichier
T_IO.READ(C, ENRG, 4);
ENRG.note : = 0;
criture dans le fichier C de lenregistrement numro 4 du fichier
aprs modification
T_IO.WRITE(C, ENRG, 4);
T_IO.CLOSE(A);
T_IO.CLOSE(B); T_IO.CLOSE(C);
END;

14.1 Le fichier logique

353

Manipulation de fichiers avec le langage Cobol

Dunod La photocopie non autorise est un dlit.

Le programme suivant illustre la dclaration de deux fichiers FIC1 et FIC2, en


langage Cobol, sous un systme MVS 370. Les deux fichiers utilisent la mthode
daccs VSAM. Le premier fichier FIC1 est un fichier squentiel. Le second fichier
FIC2 est un fichier avec une organisation de type squentielle indexe. Dans ce
fichier FIC2, un enregistrement est compos de deux champs dont le premier sur
5 caractres correspond la cl. Lexcution de ce programme Cobol est lance par
lintermdiaire dun job crit en JCL qui effectue la liaison des fichiers logiques
FIC1 et FIC2 avec le fichier physique correspondant.
000100
000200
000300
000400
000500
000600
000700
000800
000900
001000
001100
001200
001300
001400
001500
001600
001700
001800
001900
002000
002100
002200
002300
002400
002500
002600
002700
002800
002900
003000
003100

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

14 Systme de gestion de fichiers

14.2 LE FICHIER PHYSIQUE


Le fichier physique correspond lentit alloue sur le support permanent et contient
physiquement les enregistrements dfinis dans le fichier logique. Nous prendrons ici
comme support de mmoire secondaire le disque dur.
14.2.1 Structure du disque dur
Un disque est constitu dun ensemble de plateaux (jusqu 20), empils verticalement sur un mme axe, formant ainsi ce que lon appelle une pile de disques.
Chaque plateau est compos dune ou deux faces, divises en pistes qui sont des
cercles concentriques. Selon les modles, le nombre de pistes par face varie de 10
plus de 1 000. Chaque piste est elle-mme divise en secteurs (de 4 32 secteurs par
piste), le secteur constituant la plus petite unit de lecture/criture sur le disque. La
taille dun secteur varie gnralement entre 32 4 096 octets, avec une valeur courante
de 512 octets. On parle galement de cylindre, celui-ci tant constitu de lensemble
des pistes de mme rayon sur lensemble des plateaux. Lopration consistant crer
partir dun disque vierge, lensemble des pistes et des secteurs sappelle lopration de formatage.
Laccs une face dun disque seffectue par lintermdiaire dun bras, supportant
une tte de lecture/criture. Le bras avance ou recule pour se positionner sur la piste
lire/crire tandis que le disque tourne. Une adresse sur le disque est donc de la
forme (face ou bras, piste ou cylindre, secteur).
Dplacement du bras

Rotation
Cylindre : ensemble des pistes
accessibles sans dplacement
des ttes
Bloc : n secteurs
Plateau

Face : 10 1 500 pistes

Piste : ensemble de secteurs (4 32)


Secteur : plus petite unit dinformation accessible 32 4 096 octets
Figure 14.1

Structure du disque dur.

14.2 Le fichier physique

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.

Dunod La photocopie non autorise est un dlit.

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

14 Systme de gestion de fichiers

Fichier fich_1 : 3 blocs


1

Fichier fich_2 : 3 blocs


7

10

11

12

Fichier fich_3 : 2 blocs


13

17

18

Fichier fich_4 : 1 bloc


19

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.

14.2 Le fichier physique

357

Fichier fich_1 : 3 blocs


1

Fichier fich_5 : 4 blocs

Fichier fich_2 : 3 blocs


7

10

11

12

Fichier fich_3 : 2 blocs


13

17

18

Fichier fich_4 : 1 bloc


19

20

25

Bloc allou

Dunod La photocopie non autorise est un dlit.

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

La mthode dallocation par zones constitue une variante de lallocation contigu,


qui autorise un fichier tre constitu de plusieurs zones physiques distinctes. Une
zone doit tre alloue dans un ensemble de blocs contigus mais les diffrentes zones
composant le fichier peuvent tre disperses sur le support de masse. Il en rsulte
une extension plus facile dun fichier. Lors de la cration du fichier, la premire zone
appele zone primaire est alloue et les zones suivantes appeles zones secondaires

358

14 Systme de gestion de fichiers

sont alloues au fur et mesure de lextension du fichier. La taille de la zone


primaire et celle des zones secondaires sont gnralement dfinies au moment de la
cration du fichier. Le nombre de zones secondaires autorises pour un fichier est
souvent limit. La figure 14.4 illustre cette mthode.
Fichier fich_1 : ZP

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

14.2 Le fichier physique

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

//DSE25BP JOB (A99, DSE), ALLOC-DSN, CLASS = D, MSGCLASS = X,


//
NOTIFY = DSE25, MSGLEVEL = (1, 1)
//*
//*-------------------------------------------------------//* ALLOCATION DATASET
//*-------------------------------------------------------//*
//STEP1
EXEC PGM = IEFBR14
//* fichier physique DSE25.OUT
//* disposition (DISP) : cration (NEW), inscription
//* au rpertoire en fin de job (CATLG), destruction du fichier
//* si probleme (DELETE)
//* donnes du fichier (DCB) : longueur enregistrement
//* de taille fixe (132)
//FICHIER DD DSN = DSE25.OUT, SPACE = (TRK, (5, 1)),
//
DISP = (NEW, CATLG, DELETE), UNIT = ARTAR0T1,
//
DCB = (LRECL = 132, RECFM = FB, BLKSIZE = 0)
//

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.

Dunod La photocopie non autorise est un dlit.

Allocation par blocs chans

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

14 Systme de gestion de fichiers

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

Allocation par blocs chans.

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

14.2 Le fichier physique

361

Ainsi la figure 14.6 donne la FAT correspondant lallocation chane de la


figure 14.5.
On distingue lheure actuelle deux systmes de FAT, la FAT 16 pour laquelle le
numro de bloc est cod sur 16 bits autorisant ainsi 65 536 blocs sur le disque et la
FAT 32 pour laquelle le numro de bloc est cod sur 32 bits autorisant ainsi 2 Gigablocs sur le disque. Notons que ce systme a t conu lorigine pour grer lallocation sur des disquettes de faible capacit et tend aujourdhui montrer ses limites
du fait de laugmentation de la capacit des disques. Il est aujourdhui remplac par
le systme NTFS (NT File Systems).
FAT
Fichier fich_1

1
2

5
Fichier fich_2

7
8
10
12
14
15
17
18

Dunod La photocopie non autorise est un dlit.

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

Table dallocation Windows (FAT).

362

14 Systme de gestion de fichiers

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

Mthode dallocation indexe.

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

14.2 Le fichier physique

363

tre faible ce qui conduit un problme de fragmentation interne et une perte de


place, notamment en ce qui concerne lallocation des fichiers de petite taille. Au
contraire, le nombre dentres disponibles dans le bloc dindex peut se rvler tre
insuffisant vis--vis du nombre de blocs requis pour le fichier.
Dans ce dernier cas, une solution est dutiliser un index multiniveaux. Le premier
bloc dindex ne contient pas directement des adresses de blocs de donnes, mais il
contient des adresses de blocs dindex, qui eux contiennent les adresses des blocs de
donnes du fichier. Ainsi, pour lire un bloc de donnes dun fichier, le systme doit
dabord lire le premier bloc dindex, puis le bloc dindex de second niveau avant de
lire le bloc de donnes lui-mme. Il sensuit une vidente perte de performances qui
saccrot encore si ce schma est tendu 3 ou 4 niveaux (figure 14.8).

Index multiniveaux

Dunod La photocopie non autorise est un dlit.

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

14 Systme de gestion de fichiers

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

Index dans le systme Unix.

14.2 Le fichier physique

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.

Dunod La photocopie non autorise est un dlit.

Gestion de lespace libre par un vecteur de bits

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

14 Systme de gestion de fichiers

Nombre de blocs libres


conscutifs

Zones libres
Fichier fich_1

Adresse du premier bloc


de la prochaine zone libre
1 9

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

Gestion de lespace libre par liste chane.

14.3 CORRESPONDANCE
FICHIER LOGIQUE-FICHIER PHYSIQUE
14.3.1 Notion de rpertoire
Dfinition

Le systme de gestion de fichiers effectue la correspondance entre fichiers logiques


et fichiers physiques par le biais dune table appele rpertoire qui contient des
informations de gestion des fichiers, dont notamment, pour chaque fichier existant
sur le disque, le nom logique du fichier et son adresse physique sur le disque. Plus
prcisment, une entre de rpertoire concernant un fichier donn, contient gnralement les informations suivantes :

14.3 Correspondance fichier logique fichier physique

367

le nom logique du fichier;


le type du fichier si les fichiers sont typs. Les principaux types de fichiers sont
les fichiers texte, les fichiers objet, les fichiers excutables, les fichiers de traitement par lots contenant des commandes pour linterprteur de commandes, les
fichiers binaires correspondant par exemple des images ou des impressions. Le
type dun fichier est souvent cod dans son nom logique, laide dune extension
spare du nom proprement dit du fichier par un point. Ainsi, les extensions.exe
pour les fichiers excutables, .o pour les fichiers objets, .doc pour les fichiers texte
issus de lapplication Word, .gif ou .jpeg pour des fichiers binaires de type images;
ladresse physique du fichier, cest--dire une information permettant daccder
aux blocs physiques allous au fichier. Cette information dpend de la mthode
dallocation mise en uvre sur le disque. Ainsi, dans le cas dune allocation
contigu ou dans le cas dune allocation par blocs chans, linformation mmorise ladresse du premier bloc allou au fichier. Dans le cas dune allocation par
zones, cette information est une structure contenant ladresse de la zone primaire
et les adresses des zones secondaires alloues au fichier. Enfin, dans le cas dune
allocation indexe, cette information est constitue par ladresse du bloc dindex;
la taille en octets ou en blocs du fichier;
la date de cration du fichier;
le nom du propritaire du fichier;
les protections appliques au fichier, savoir si le fichier est accessible en lecture,
criture ou en excution et ventuellement par quels utilisateurs.
Le systme de gestion de fichiers offre des primitives permettant de manipuler les
rpertoires; ce sont les oprations permettant de lister le contenu dun rpertoire, de
changer de rpertoire, de crer un rpertoire ou de dtruire un rpertoire.
Ainsi sous le systme Unix, la commande mkdir nom_rep cre un rpertoire. La
commande rmdir nom_rep dtruit le rpertoire. Enfin, la commande ls l nom_rep
permet dafficher lensemble des fichiers connus du rpertoire avec leurs caractristiques.

Dunod La photocopie non autorise est un dlit.

Structure des rpertoires

Les diffrentes structures de rpertoires existantes se distinguent par le nombre de


niveaux quelles prsentent. Les rpertoires un niveau groupent tous les fichiers
dun support de masse dans une mme table. Sils sont simples, les rpertoires un
niveau posent des difficults quand le nombre de fichiers augmente et lorsque
plusieurs utilisateurs diffrents stockent leurs fichiers sur un mme support de masse
car tous les noms de fichiers doivent tre diffrents. On prfre alors les rpertoires
deux niveaux o chaque utilisateur possde un rpertoire propre, appel rpertoire
de travail. La structure deux niveaux se gnralise facilement dans une structure
n niveaux pour laquelle chaque utilisateur hirarchise son propre rpertoire en autant
de sous-rpertoires quil le dsire. Cette structure en arbre est compose dun rpertoire initial appel la racine, souvent symbolise par / , dun ensemble de nuds

368

14 Systme de gestion de fichiers

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

14.3 Correspondance fichier logique fichier physique

369

Notion de volumes ou partitions

Le systme de gestion de fichiers dun ordinateur peut comporter des milliers de


fichiers rpartis sur plusieurs giga-octets de disque. Grer ces milliers de fichiers
dans un seul ensemble peut se rvler difficile. Une solution couramment mise en
uvre est alors de diviser lensemble du systme de gestion de fichiers en morceaux
indpendants appels volumes ou partitions. Chaque partition constitue alors un
disque virtuel, auquel est associ un rpertoire qui rfrence lensemble des fichiers
prsents sur la partition. Le disque virtuel ainsi cr peut physiquement correspondre une seule partie de disque physique, ou bien regrouper plusieurs parties de
disque, places sur un mme disque ou des disques diffrents (figure 14.12).

Rpertoire Fichiers

Fichiers

Rpertoire

Fichiers

Partition B

Rpertoire

Fichiers

Partition C

Rpertoire

Dunod La photocopie non autorise est un dlit.

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

14 Systme de gestion de fichiers

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.

Heure Date 1er Bloc taille

14.3 Correspondance fichier logique fichier physique

371

Le rpertoire racine comprend 112 entres de 32 octets chacune. Une entre


comporte les lments suivants :
le nom du fichier sur 8 octets;
lextension du nom du fichier sur 3 octets;
les attributs du fichier sur un octet. Les attributs du fichier permettent de dfinir si
le fichier est un fichier cach, un fichier systme, un rpertoire, une archive ou si
le fichier est accessible en lecture seule;
un champ de 10 octets rservs DOS;
lheure de dernire criture du fichier sur 2 octets;
la date de dernire criture sur 2 octets;
le numro du premier bloc constituant le fichier sur 2 octets, les autres blocs tant
accessibles via la FAT;
la taille en octets du fichier sur 2 octets.
Partition Unix

Sous le systme Unix, un fichier est reprsent physiquement par un descripteur


stock sur le disque, appel i-nud (inode). Li-nud dun fichier contient toutes les
informations concernant ce fichier cest--dire notamment lidentificateur du propritaire du fichier, le type du fichier, les permissions daccs au fichier, les dates daccs
au fichier et enfin la table dindex de 13 entres permettant de trouver les blocs de
donnes allous au fichier.
Bloc boot

Super bloc

Liste des i-nuds

Blocs de donnes

Dunod La photocopie non autorise est un dlit.

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

14 Systme de gestion de fichiers

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

Le rpertoire MVS encore appel VTOC (Volume Table Of Contents) donne la


liste des fichiers prsents sur le disque, leurs caractristiques et leur emplacement
physique. La table est constitue dentres appeles DSCB (DataSet Control
Blocks) qui dcrivent soit des fichiers, soit des zones despaces libres. Il y a six
types de DSCB :
le type 1 concerne un fichier du disque et dcrit la zone primaire alloue au fichier
ainsi que des deux premires zones secondaires;
le type 2 indique lemplacement de lindex du fichier si celui-ci est accs squentiel index;
le type 3 complte le DSCB de type 1 en dcrivant les 13 zones secondaires
supplmentaires ;
le type 4 conserve des informations spcifiques sur la structure du disque;
le type 5 dcrit les espaces libres disponibles sur le disque. Un DSCB de type 5
peut dcrire au maximum 26 espaces libres;
le type 6 permet de dcrire des zones partages entre fichiers.
14.3.2 Ralisation des oprations
Fonctions du systme de gestion de fichiers

Les fonctions systmes composant le systme de gestion de fichiers peuvent tre


groupes selon deux catgories : les fonctions lies aux oprations sur les fichiers et
les fonctions lies laccs aux enregistrements.
Fonctions lies aux oprations sur les fichiers

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

14.3 Correspondance fichier logique fichier physique

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.

Dunod La photocopie non autorise est un dlit.

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

14 Systme de gestion de fichiers

Sous Unix, la commande rm nom_fichier provoque la destruction du fichier


nom_fichier. Li-nud disque allou au fichier est rintgr la liste des i-nuds
libres.
Fonctions lies laccs aux enregistrements

Pour assurer les oprations de lecture/criture, le systme dexploitation positionne


un index logique de lecture/criture dans le fichier, qui mmorise lemplacement
dans le fichier du prochain enregistrement dlivr. louverture du fichier, cet index
est plac au dbut du fichier et pointe sur le premier enregistrement de celui-ci. Il est
mmoris dans le BCF du fichier.
Pour raliser la lecture dun enregistrement du fichier, le systme dexploitation
utilise le BCF du fichier pour rcuprer lindex de position courante dans le fichier
et calcule la position permettant de lire lenregistrement demand. Puis, il effectue la
lecture du bloc contenant lenregistrement.
Afin damliorer les performances du systme de gestion de fichiers, les oprations de lecture et criture denregistrements ne se traduisent pas systmatiquement
par des oprations dentres-sorties disque. En effet, le systme dexploitation utilise
un mcanisme de cache compos dun nombre fixe de tampons qui permettent de
mmoriser en mmoire centrale les blocs les plus rcemment lus. Ainsi, un bloc
lire est tout dabord recherch dans le cache et lopration dentres-sorties nest
ralise que si le bloc ny est pas trouv. Dune manire similaire, les oprations
dcriture sont ralises dans le cache et le bloc nest rellement crit sur le disque que
lorsque le tampon le contenant doit tre libr pour y mmoriser un nouveau bloc.
Droulement dune opration dentres-sorties

En prenant exemple sur le fonctionnement du systme MVS 370, nous dcrivons


prsent la ralisation dune opration dentres-sorties sur un disque, telle que la
lecture dun enregistrement.
Interface des dispositifs dentres-sorties

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.

14.3 Correspondance fichier logique fichier physique

375

CPU
Bus dentres-sorties
Bus mmoire

Mmoire
centrale

Canal

Contrleur

Dunod La photocopie non autorise est un dlit.

Figure 14.15

Canal

Contrleur

Canal

Contrleur

Contrleur

Interface matrielle du disque.

Interface systme et tapes de lopration dentres-sorties


(lecture dun enregistrement)
Linterface du systme dexploitation avec le dispositif dentres-sorties matriel est
compose de trois parties, la dernire cite tant la plus proche du matriel et du
sous-systme canal : la mthode daccs, le pilote du superviseur dentres-sorties
(IOCS driver) et le superviseur dentres-sorties (IOCS).
La mthode daccs est appele par lopration de lecture dun enregistrement
par exemple. Cette mthode daccs construit le programme canal. Puis, elle dcrit
dans un bloc de contrle dentres-sorties (IOB input/output block), les paramtres
de lopration dentres-sorties cest--dire notamment lidentification du fichier
concern, lidentification de lunit disque et du contrleur concerns, ladresse du
programme canal en mmoire centrale. Enfin, elle passe la main au pilote du superviseur dentres-sorties.
Le pilote du superviseur dentres-sorties prpare lenvironnement ncessaire
lopration dentres-sorties. Notamment, il contrle les donnes fournies par la
mthode daccs, puis il traduit les adresses virtuelles du programme canal en adresses
relles et fixe les pages du programme canal en mmoire centrale car le sous-systme
canal ne connat pas la mmoire virtuelle. Enfin, le pilote lance le superviseur
dentres-sorties.
Le superviseur dentres-sorties ralise linterface avec le sous-systme canal. Il
met la demande dentres-sorties transmise par le pilote dans la file dattente corres-

376

14 Systme de gestion de fichiers

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

Interface systme du disque.

Ordonnancement des requtes disque

Le superviseur dentres-sorties place chaque nouvelle requte dentres-sorties


dans la file dattente du contrleur du disque concern.
Laccs un secteur du disque se dcompose en deux parties :
le temps de positionnement du bras correspond au temps ncessaire pour que le bras
portant la tte de lecture vienne se positionner sur la piste contenant le secteur;

14.3 Correspondance fichier logique fichier physique

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.

Dunod La photocopie non autorise est un dlit.

10 12

25

40 45 50

Figure 14.17

80

88

100 105 110

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

14 Systme de gestion de fichiers

10 12

25

40 45 50

Figure 14.18

80

88

100 105 110

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

80 88 100 105 110

150

Algorithme SCAN.

80 88 100 105110

Algorithme C-SCAN.

150

14.4 Protection

379

du bras lorsquil arrive lautre extrmit du disque. Au lieu de repartir en sens


inverse, le bras va ici se repositionner sur lextrmit initiale de son parcours. Ainsi,
le parcours des pistes se fait toujours dans le mme sens. Cette politique offre pour
chaque requte disque un temps de traitement plus uniforme que la politique prcdente. Sur la file de requtes dfinie dans lexemple, lordre de service est 100,
105, 110, 10, 12, 25, 40, 45, 50, 80 et 88 et le dplacement total du bras est gal
298 pistes.
Une dernire variante de ces politiques est la politique LOOK. Le bras parcourt de
la mme manire lensemble du disque en sens montant ou descendant, mais cette
fois il sarrte dans son balayage ds quil a rencontr la requte la plus extrme
dans le sens montant ou descendant.
10 12

25

40 45 50

Figure 14.21

80

88

100 105 110

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.

Dunod La photocopie non autorise est un dlit.

14.4.1 Protection contre les accs inappropris


La protection du systme de gestion de fichiers contre les accs inappropris peut
tre ralise de plusieurs faons. Une premire solution est dassocier un mot de
passe chaque fichier que lutilisateur souhaite protger. Cest une solution souvent
retenue sur les systmes mono-utilisateur mais elle est plus difficilement mise en
uvre sur les systmes multi-utilisateurs. Ainsi, la protection des fichiers par mot de
passe est une mthode usuellement mise en uvre dans les systmes IBM. Les
fichiers peuvent tre protgs en criture par un mot de passe ou en lecture/criture.
Ce mot de passe est stock dans lentre de la VTOC correspondant au fichier.
Une autre solution consiste dfinir des droits daccs associs aux fichiers, tels
que le droit le lire le fichier, le droit dcrire le fichier, le droit dexcuter le fichier
ou encore le droit de dtruire le fichier. Une liste, appele liste daccs, est ensuite
construite. Elle regroupe pour chaque fichier, les identifiants des utilisateurs avec les

380

14 Systme de gestion de fichiers

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

6401 Jan 8 1997 eleve.c


24576 Dec 15 1998 essai
67 Dec 15 1998 essai.c

67 Dec 15 1998 essai.c

14.4.2 Protection contre les dgts physiques


Le systme de gestion de fichiers peut tre endommag ou dtruit de multiples
manires : les coupures dlectricit, lcrasement des ttes de lecture/criture sur le
disque, les poussires ou encore des tempratures extrmes peuvent altrer le support
physique de stockage.
La protection contre ces dgts physiques est assure par le recours aux techniques
de redondance, qui consiste dupliquer et gnralement stocker dans des endroits
diffrents, les donnes maintenues sur le support physique. Cette redondance peut tre
de deux types, la redondance interne et la redondance par sauvegarde priodique.
Redondance interne

La redondance interne consiste maintenir linformation en double exemplaires


sur le support physique. La premire version appele version primaire est la version

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

Dunod La photocopie non autorise est un dlit.

Lacquisition de la redondance par sauvegarde priodique consiste copier lensemble


du systme de gestion de fichiers sur un second support. Ainsi, la sauvegarde des
disques durs est-elle souvent ralise sur bandes magntiques. Cette opration est la
plupart du temps lance automatiquement par le systme dexploitation, une fois que
ladministrateur de la machine a configur les paramtres du programme responsable de celle-ci.
La sauvegarde complte consiste copier rgulirement lintgralit du systme
de gestion de fichiers. Le problme dune telle opration est quelle peut tre trs
longue raliser et prendre ainsi plusieurs heures durant lesquelles le systme est
inactif. La sauvegarde incrmentale consiste ne copier que les fichiers qui ont t
modifis depuis la dernire sauvegarde ralise. Ceci permet videmment de rduire
le temps ncessaire la ralisation de cette opration.
Les deux types de sauvegarde sont trs souvent utiliss simultanment mais
rythmes diffrents. Par exemple, une sauvegarde incrmentale est programme tous
les soirs de la semaine hormis le dimanche, jour o a lieu une sauvegarde complte.
Une restauration, suite une perte de donnes, seffectue alors en utilisant la sauvegarde complte du dimanche, actualise ensuite avec les sauvegardes incrmentales
ralises jusqu la veille de la restauration.

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

14 Systme de gestion de fichiers

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

Introduction aux rseaux

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

Selon ce critre, on classe les rseaux en :


Rseaux personnels ou PAN (Personal Area Network) : cest typiquement le
rseau permettant de connecter lordinateur ses priphriques (souris, clavier,
imprimante).

384

15 Introduction aux rseaux

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

On distingue deux grands modes de transmission : la diffusion et le point point.


Un rseau diffusion dispose dun seul canal de transmission partag par tous les
utilisateurs du rseau. Linformation est gnralement transmise sous formes de
paquets reus par lensemble des machines connectes au rseau. Dans le paquet,
on trouve dune part, linformation transmettre, dautre part, une information
(dite dadressage) permettant au rcepteur de reconnatre que cette information
est pour lui. Ladressage permet, soit datteindre toutes les machines du rseau
(diffusion broadcast) soit datteindre un sous-ensemble de machines (diffusion
multicast).
linverse, le rseau point point, permet la connexion dun trs grand nombre
de machines. Les machines sont relies une une. Dans ce type de rseau, linformation, pour aller dune machine une autre, passe par plusieurs machines intermdiaires. Ainsi il peut y avoir plusieurs routes pour aller dune machine une
autre. Dans ce type de rseau, le calcul de la meilleure route est donc un facteur
important damlioration de lefficacit de la transmission. La transmission point

15.2 Les rseaux filaires

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.

15.2 LES RSEAUX FILAIRES


Les rseaux filaires ou transmission des donnes par des supports guids occupent
une place trs importante. Nous prsentons ces rseaux en prcisant les aspects
concernant larchitecture des rseaux filaires et les modalits de circulation de
linformation dans les rseaux.
15.2.1 Architecture des rseaux filaires

Dunod La photocopie non autorise est un dlit.

Les supports physiques

Le rle des supports de transmission est de transporter un flux de donnes binaires


brutes dune machine une autre. Il existe plusieurs types de supports qui se diffrencient par leurs caractristiques comme la bande passante, le dlai de transmission, le
cot mais aussi la simplicit dinstallation. Les supports de transmission guide sont
construits partir des paires torsades, du cble coaxial et de la fibre optique.
La paire torsade est compose de deux fils de cuivre isols. Ces fils sont enrouls
de manire hlicodale. Ce type de support est trs largement utilis dans les systmes
tlphoniques. La bande passante dpend du diamtre des fils de cuivre et de la
distance parcourir. Il est possible de transporter des informations plusieurs Mbits/s
sur de courtes distances (quelques kilomtres). Elle permet le transport des signaux
analogiques et numriques. Ainsi par ses performances, son cot et la simplicit
dutilisation, elle est trs largement utilise.
Le cble coaxial est constitu de deux conducteurs concentriques spars par un
isolant. Le conducteur extrieur est une tresse de cuivre appel blindage qui est reli
la terre. Le tout est protg par une gaine isolante. Le cble coaxial permet des
dbits plus levs que la paire torsade, il est peu sensible aux perturbations lectromagntiques extrieures et le taux derreurs sur un tel cble est trs faible. Il est trs
utilis en transmission numrique dans les rseaux locaux o lon peut atteindre des
dbits de 10 Mbits sur des distances de lordre du kilomtre. En liaison analogique,
le cble coaxial est utilis pour raliser des liaisons longues distances.
La transmission des donnes par fibre optique permet denvisager des bandes
passantes de lordre de 50 000 Gbits/s (50 Tbits/s). Actuellement on est limit une
bande passante de lordre de 10 Gbits/s. Cette limitation est essentiellement due la
difficult deffectuer les transformations des signaux numriques en signaux optiques.

386

15 Introduction aux rseaux

Il est intressant de comparer la fibre optique au cble de cuivre. La fibre prsente de


nombreux avantages :
la bande passante importante (bien plus que celle du cble de cuivre) la rend bien
adapte aux rseaux hautes performances;
la faible attnuation du signal permet un nombre limit de rpteurs (un rpteur
tous les 50 km environ) pour les liaisons longues distances. Le cot dinstallation
est donc beaucoup plus faible quavec un support base de fil de cuivre o il faut
un rpteur tous les 5 km environ;
elle est fine et lgre, insensible la corrosion et aux surtensions lectriques.
Par contre il sagit dune technologie rcente qui ncessite des comptences que
tout le monde na pas. Par ailleurs elle ne supporte pas facilement dtre plie, et
sappuyant sur de la transmission optique, elle ne transmet que des flux unidirectionnels. Il est clair que dans un proche avenir toutes les lignes de communications fixes
dpassant quelques mtres de longueurs seront ralises partir de fibres optiques.
Topologies physiques des rseaux

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

Liaison point point.

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

15.2 Les rseaux filaires

387

Topologie en bus

Topologie en anneau

Figure 15.2

Topologie en bus et en anneau.

Dunod La photocopie non autorise est un dlit.

Topologie en toile

Figure 15.3

Topologie en toile.

388

15 Introduction aux rseaux

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.

15.2 Les rseaux filaires

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

Dunod La photocopie non autorise est un dlit.

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

15 Introduction aux rseaux

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

15.2 Les rseaux filaires

Figure 15.7

391

Principe de la commutation.

terminal utilisateur. Ce cblage est trs onreux et plusieurs solutions soffrent pour
rduire les cots :

Dunod La photocopie non autorise est un dlit.

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

15 Introduction aux rseaux

nications a pos le problme du partage de cette ressource. LART (Autorit de


Rgulation des Tlcommunications) a permis le partage de cette ressource par le
dgroupage (figure 15.8) de la boucle locale.

Vers rseaux
oprateurs

Concentrateurs

Rpartiteur

Rpartiteur
Rpartiteurs oprateurs
Regroupement des oprateurs

Laccs aux rseaux


Figure 15.8

Dgroupage de la boucle locale.

On retrouve une topologie en toile permettant aux utilisateurs daccder aux


rseaux des oprateurs via leur tlphone, les concentrateurs, les sous-rpartiteurs
relis aux rpartiteurs principaux qui distribuent eux-mmes sur les rpartiteurs des
oprateurs. Pour laccs aux hauts dbits il est possible dutiliser les paires mtalliques en sappuyant sur les techniques DSL (Data Subscriber Line). Le sigle DSL
indique que lon utilise une ligne dabonn pour les donnes.
La bande passante pour la voix ncessite 4 kHz alors que la bande passante
possible pour la paire torsade dpasse le MHz. La technologie ADSL (Asymetric
data rate Digital Subscriber Line) rserve une bande passante pour le service de la
voix en mme temps quelle ouvre deux canaux de donnes, lun dit montant qui
offre une bande passante de 32 640 Kbits/s et lautre dit descendant qui offre une
bande passante de 1,5 8,2 Mbits/s.
Laccs haut dbit au rseau via la ligne tlphonique (figure 15.9) ncessite
linstallation dun modem qui intgre la fonction (splitter) de sparation des canaux.
Le modem offre gnralement des accs de type Ethernet et USB. Du ct de
loprateur, le DSLAM (Digital Subscriber Line Access Multiplex) est un multiplexeur qui assure linterface entre les connexions de lutilisateur et le rseau haut

15.2 Les rseaux filaires

393

RTC

Rseau
Haut Dbit
Oprateur
DSLAM
Internet

Boucle locale

Accs hauts dbits

Figure 15.9

Laccs aux hauts dbits.

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.

Dunod La photocopie non autorise est un dlit.

15.2.2 Circulation des informations


Nous prsentons dans cette partie les diffrents lments permettant des htes de
correspondre entre eux au travers dun rseau de transmission de donnes. Dans ce qui
prcde nous avons class les rseaux en deux grandes catgories pour ce qui concerne
la transmission des donnes : les rseaux diffusion et les rseaux point point.
Les rseaux diffusion correspondent le plus souvent aux rseaux locaux. Ils
permettent linterconnexion des machines au travers dun canal unique.
Les rseaux point point, permettent linterconnexion dun trs grand nombre de
machines et correspondent plutt aux WAN. De plus nous avons vu quafin de
mutualiser les ressources, les WAN sappuient sur la fonction commutation pour
interconnecter les htes au travers du sous-rseau. Les informations transporter
sont dcoupes en paquets qui circulent au travers du sous-rseau. Ainsi un sousrseau est compos de lignes de transmissions reliant les routeurs. Lorsque des
routeurs veulent communiquer, ils devront le faire au travers de routeurs intermdiaires
sils ne sont pas relis directement par des lignes de transmission. Lorsquun paquet
arrive sur un routeur intermdiaire, il est reu intgralement, puis mis en attente
jusqu ce que la liaison de sortie se libre. Ce mode de fonctionnement, le plus

394

15 Introduction aux rseaux

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

Les rseaux permettent la communication dinformations. Il est donc ncessaire


didentifier dune part les machines qui doivent communiquer et dautre part les applications (programmes informatiques) qui produisent et reoivent les informations.
Une adresse est une suite de caractres identifiant de manire unique et sans
ambigut un point de raccordement un rseau : adressage physique.
Ladresse est un identifiant qui permet lacheminement des informations, au
travers dun ou plusieurs rseaux, de messages dun correspondant metteur vers un
correspondant destinataire. Pour identifier un correspondant final il faut pouvoir
identifier :
le rseau auquel il est connect;
le point daccs auquel il est raccord.
Ces deux champs dadresse permettent didentifier une machine dun utilisateur
dans le rseau. Cest ladresse rseau dune machine.
La machine maintenant identifie il reste dterminer quel est le processus sur
cette machine qui est en charge de rceptionner le message pour le traiter. Lidentification du processus dpend du systme dexploitation, il est donc ncessaire didentifier les processus sans rfrence aux systmes dexploitation. Pour envoyer une
information un processus destinataire, le processus metteur construit une structure de donnes contenant ladresse rseau de lordinateur distant et le numro du
processus distant, et il fournit cette information au rseau. Le rseau connaissant
ainsi ladresse du destinataire pourra acheminer une information grce aux mcanismes dacheminement dont il dispose.
Des organismes de normalisation dfinissent ladressage. LISO dfinit ladressage dit NSAP (Network Service Access point) au travers dune suite de caractres
rpartis en plusieurs champs :
lAFI (Autority Format Identifier) qui dsigne lautorit gestionnaire du domaine
dadressage;
lIDI (Initial Domain Identification) qui identifie le domaine dadressage;
DSP (Domain Specific Part) qui correspond ladresse effective de labonn.
Cette adresse peut tre complte par ladresse du terminal (numro du rseau et
numro de labonn dans le rseau).
Nous verrons un exemple du mcanisme dadressage choisi dans le cas de linternet.

15.2 Les rseaux filaires

395

Acheminement des donnes

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.

Dunod La photocopie non autorise est un dlit.

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

Dans la transmission de donnes, on peut offrir deux types de services : avec


connexion et sans connexion.
Un service avec connexion correspond au modle tlphonique (composition du
numro distant, conversation, raccrochage). Dans le cas dun service avec
connexion, une connexion est tablie, utilise puis libre. Ainsi les messages tran-

396

15 Introduction aux rseaux

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.

15.2 Les rseaux filaires

397

Rseau local Ethernet


Cble coaxial

Cble connexion

Carte coupleur
Ethernet

Mise en forme
des donnes

Contrle
daccs

metteur-rcepteur

Module
codage/dcodage

Dunod La photocopie non autorise est un dlit.

Figure 15.10

Module
mission/rception

Ethernet accs au bus.

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

15 Introduction aux rseaux

Rseau local Ethernet

Rpteur

Station

Terminateur

Coaxial
metteur-rcepteur

Rpeteur distant

Liaison point point

Figure 15.11

Ethernet architecture standard.

On trouve les diffrentes versions suivantes dEthernet :


Ethernet pais, IEEE 802.3 10 base 5 Cette version fonctionne 10 Mbits/s en
bande de base sur cble coaxial dune longueur maximale de 500 mtres par
segment. Chaque station est quipe dune interface NIC (Network Interface Card)
gnralement appele carte Ethernet qui gre lalgorithme CSMA/CD. Un connecteur DB15 permet le raccordement du cble au transceiver (MAU : Medium Attachement Unit). Le MAU contient llectronique qui assure la dtection des
collisions. On peut placer un maximum de 100 stations actives par segment de
500 m. On peut construire un rseau avec au maximum cinq segments et donc
couvrir une surface de 2,5 km. Cette version dEthernet prsente une grande difficult de cblage et de ce fait est de moins en moins utilise.
Ethernet fin, IEEE 802.3 10 base 2 Elle correspond une version conomique
(par rapport 10 base 5) ralise avec du coaxial fin. Dans cette version, les fonctions du transceiver sont intgres la carte. Le raccordement se fait par lintermdiaire dun T BNC (Barrel Neck Connection). La longueur dun segment est de
185 m et chaque segment peut supporter 30 stations. Cette version conomique
est utilise pour raliser de petits rseaux.
Ethernet sur paire torsade, IEEE 802.3 10 base T Le principe ici est dutiliser
le rseau tlphonique pour la ralisation du rseau. Le rseau devait passer dune

15.3 Les rseaux sans fil

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.

Dunod La photocopie non autorise est un dlit.

15.3 LES RSEAUX SANS FIL


Un rseau sans fil (wireless network) est un rseau permettant plusieurs ordinateurs
de communiquer sans liaison filaire. La communication seffectue en utilisant des
ondes du spectre lectromagntiques de la zone radio ou infrarouge la place de
signaux lectriques vhiculs par lintermdiaire de cbles.
Les rseaux sans fil permettent de relier facilement des ordinateurs distants dune
dizaine de mtres quelques kilomtres sans ncessiter damnagements des infrastructures existantes. Ils accroissent la libert de communication des quipements
nomades qui peuvent se raccorder un rseau filaire existant sans avoir recours
lutilisation de cbles.
Les rseaux sans fil sont aptes vhiculer des donnes texte, mais aussi de la voix
et de la vido. De ce fait, ils permettent lutilisation dapplications diverses comme
la messagerie lectronique, le Web ou la tlphonie.
Ils posent cependant deux difficults :
lutilisation dondes radiolectriques ne permet pas le confinement un espace
gographique donn des informations circulant sur le rseau. Il est donc plus ais
un pirate dcouter ce rseau;
la transmission par ondes radiolectriques est sensible aux interfrences. Comme
de nombreuses applications utilisent ce type de transmission, il est ncessaire de
dfinir par rglementation des plages de frquences affectes chaque type
dutilisation.

400

15 Introduction aux rseaux

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.

15.3 Les rseaux sans fil

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

Dunod La photocopie non autorise est un dlit.

Cellule
IBSS

Rseau en mode ad-hoc


Figure 15.12

Architecture des rseaux sans fil.

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

15 Introduction aux rseaux

la topologie ESS (Extended Service Set) comporte plusieurs points daccs,


connects entre eux par lintermdiaire dun systme de distribution (DS, Distribution System) qui assurent lchange de trames entre les diffrents points daccs.
Ce systme de distribution est le plus souvent implment sous la forme dun
rseau Ethernet mais il peut galement prendre la forme dun autre rseau sans fil.
Il peut aussi au travers dune passerelle servir dinterface vers un autre rseau de
type filaire tel quinternet.
Dans le mode ad-hoc ou IBSS (Independant Basic Set Service), les diffrents
quipements communiquent directement entre eux sans passer par un point daccs.
Dans le cas le plus simple, un tel rseau est compos de deux quipements munis de
leur carte rseau sans fil. Dans ce type darchitecture, lun des quipements peut tre
connect un rseau tel quInternet et offrir laccs ce rseau aux autres quipements qui sont dans sa zone de couverture.
15.3.2 Circulation des informations
Deux bandes de frquences dites sans licence, cest--dire nimposant pas lutilisateur dacqurir un droit pour leur usage, sont disponibles pour les rseaux sans fil.
Ce sont les frquences suivantes :
la bande ISM (Industrial Scientific and Medical) compose de trois sous-bandes
902-908 MHz, 2,400-2,4835 GHz et 5,725-5,825 GHz. En Europe, seules les
deux premires sous-bandes sont utilises;
la bande U-NII (Unlicensed National Information Infrastructure) compose des
deux sous-bandes 5,15-5,35 GHz et 5,725-5,825 GHz.
Dans ces bandes de frquence, un canal correspondant une certaine largeur de
bande est affect chaque cellule. Des cellules disjointes peuvent utiliser les mmes
canaux au sein dune plage de frquences tandis que des cellules qui se recouvrent
doivent utiliser des canaux diffrents pour viter les interfrences.
Accs au support

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.

15.3 Les rseaux sans fil

403

DCF : un aperu des mcanismes mis en uvre

Le DCF sappuie sur deux mcanismes distincts :


le protocole CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance).
Dans ce protocole, un quipement souhaitant envoyer des donnes coute le support
de communication avant dmettre ou diffre sa transmission si le support est occup;
le mcanisme de rservation qui permet un quipement souhaitant mettre de
rserver le support de communication durant la totalit de sa transmission.
Ainsi un quipement A souhaitant mettre suit lalgorithme suivant (figure 15.13) :
1. lquipement A coute le support;
2. le support est libre durant un temps appel DIFS; lquipement A met les
donnes;
3. le support nest pas libre, alors lquipement A attend que le support se libre;
4. le support tant libr, lquipement A attend un temps DIFS et si le support est
toujours libre, retarde encore son mission dun temps alatoire Tback-off calcul
selon un algorithme appel algorithme du back-off;
5. le temporisateur de back-off coul, si le support est libre, lquipement A met;
6. les autres quipements (quipement D), en attente pour mettre, bloquent lcoulement de leur propre temporisateur de back-off. lissue de lmission, et aprs
avoir vrifi que le support est libre au bout dun temps DIFS, ils reprennent
lcoulement de leur temporisateur.
Lquipement B destinataire quant lui suit lalgorithme suivant :

Dunod La photocopie non autorise est un dlit.

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

15 Introduction aux rseaux

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

coute du support et attente de sa libration


Dbit alatoire T back_off
Dbit alatoire T back_off restant
Figure 15.14

Protocole CSMA/CA avec collision.

DONNES

15.3 Les rseaux sans fil

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

Rservation du support par les trames RTS et CTS.

Dunod La photocopie non autorise est un dlit.

Transmission des donnes sur le support

Des techniques de transmission particulires, dites techniques dtalement de bandes,


sont mises en uvre sur les rseaux sans fil afin datteindre des dbits de dizaine de
mgabits malgr ltroitesse des bandes passantes disponibles, ceci afin de rendre
les rseaux sans fil concurrentiels par rapport aux rseaux filaires.
La technique FHSS (Frequency Hopping Spread Spectrum) est lune de ces techniques dtalement de bande. Elle est fonde sur le principe de saut de frquence. La
bande des 2,4 GHz est divise en 79 canaux de 1 GHz chacun. Afin de minimiser les
collisions, un change de donnes seffectue alors par lintermdiaire de sauts entre
les diffrents canaux, ces sauts se ralisant toutes les 300 ms. Pour communiquer,
lmetteur et le rcepteur se mettent au pralable daccord sur une squence de sauts.
Ce mcanisme permet thoriquement 26 rseaux simultans, mais dans la pratique,
cause des recouvrements partiels des canaux, seuls 15 rseaux simultans sont autoriss.
La technique DSSS (Direct Sequence Spread Spectrum) est une seconde mthode
dtalement de bande. Elle divise en 14 canaux de 20 MHz la bande de frquence
2,4 GHz. Une transmission seffectue en totalit sur un mme canal. Cependant, les
14 canaux se recouvrant partiellement, seuls trois rseaux simultans peuvent
mettre sans risque dinterfrences sur une mme cellule.

406

15 Introduction aux rseaux

Ces deux techniques sont illustres par la figure 15.16.

Frquences

Temps
quipement A

quipement B
Technique FHSS

Bande de frquence

Canaux

quipement A

quipement B

quipement C

Technique DSSS
Figure 15.16

Techniques FHSS et DSSS.

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;

15.3 Les rseaux sans fil

407

protocole WEP (Wired Equivalent Privacy) : ce protocole utilise un mcanisme


de chiffrement de donnes et dauthentification qui permet dviter les coutes
clandestines et assure galement de contrler lidentit des quipements autoriss
dans la cellule.
Dans ces mcanismes, seul le premier est obligatoire. Le SSID tant configur au
point daccs lors de la construction de celui-ci, il est ncessaire de le modifier lors
de la mise en place du rseau, afin quun quipement malveillant ne puisse le
dduire en fonction de la marque et du constructeur du point daccs.
15.3.3 Exemples de rseaux sans fil
Un rseau personnel

Bluetooth est une technologie dveloppe en 1994 par Ericsson et rpondant la


norme IEEE 802.15 (Institute of Electrical and Electronics Enginners).
Ce rseau personnel utilise la bande de frquence des 2,4 GHz, avec un dbit de
1 Mbits/s. Les transmissions seffectuent selon la technique dtalement de bandes
FHSS que nous avons prsente au paragraphe Y.
Ce rseau possde une zone de couverture dune dizaine de mtres et autorise le
raccordement ququipements tels quun ordinateur, un PDA, une imprimante, un
scanner sans liaison filaire.
La configuration de ce rseau est de type ad-hoc. Deux quipements se connectant constituent un rseau Bluetooth que lon dsigne sous le vocable piconet
(figure 15.17). Lquipement initiant la connexion est matre du piconet et les autres
quipements jouent le rle desclave. Au maximum, un quipement matre peut
tablir une connexion avec sept quipements esclaves.
Un quipement peut appartenir plusieurs piconets, mais il ne peut tre lquipement matre que pour un seul dentre eux.

Dunod La photocopie non autorise est un dlit.

quipement

quipement

quipement

quipement

quipement

PICONET

quipement

quipement

Deux Piconets avec un quipement commun

quipement matre
quipement esclave
Figure 15.17

Configuration du rseau Bluetooth.

408

15 Introduction aux rseaux

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

15.4 Linterconnexion de rseaux : Internet

409

considrablement les problmes dinterfrences entre diffrentes missions. Ce sont


essentiellement les trois protocoles suivants :
TDMA (Time Division Multiple Access) : la bande de frquence est divise en
sous-canaux, et chaque sous-canal est assign un quipement. Les quipements
peuvent donc mettre simultanment, chacun dans la bande de frquence qui lui
est rserve;
FDMA (Frequency Division Multiple Access) : chaque quipement est assigne
une tranche de temps durant lequel il peut mettre. Les quipements mettent
donc tour de rle;
CDMA (Code Division Multiple Access) : chaque quipement voit son signal
modul au moyen dun code diffrent. Les transmissions sont alors simultanes et
occupent toute la bande de frquence sans risque dinterfrences.

15.4 LINTERCONNEXION DE RSEAUX : INTERNET


Il sagit dun inter-rseau cest--dire dune interconnexion de rseaux comme lindique
la figure 15.18.

Internet
Ethernet

RTC

Dunod La photocopie non autorise est un dlit.

FAI

Token Ring

Figure 15.18

Une reprsentation de lInternet.

410

15 Introduction aux rseaux

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

Le rseau Internet doit tre considr comme un rseau logique dinterconnexion de


rseaux physiques. On ne peut donc pas parler de supports physiques et de topologies propres internet. On doit plutt considrer que lInternet intgre tous les
supports physiques et toutes les topologies de rseaux existants. Cest ce que symbolise la figure 15.18.
Les accs lInternet

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.

15.4 Linterconnexion de rseaux : Internet

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

Dunod La photocopie non autorise est un dlit.

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

15 Introduction aux rseaux

tions. Le problme est didentifier un processus indpendamment du systme


dexploitation afin de pouvoir faire communiquer des machines htrognes au plan
des systmes dexploitation. Pour identifier un processus dun point de vue rseau ,
on lui attribue un numro de port qui caractrise le processus. Ce numro de port est
associ (dans des tables systmes) un nom de processus du systme.
Ainsi ladresse complte dun processus est un doublet constitu de ladresse IP
de la machine et du numro de port du processus.
Transmission de linformation

LInternet permet de dfinir les modalits de transmission de linformation dun


point un autre.
Les messages sont dcoups en paquets (figure 15.20) qui peuvent tre achemins
soit selon un service avec connexion fiable (Mode TCP/IP), soit en mode datagramme (service sans connexion non fiable).
3
1

(1,1)

(5,3)

1
(1,2)

Message

paquet 1

paquet 2

paquet 3

paquet 4

(4,1)

paquet 5

Acheminement des messages


Datagrammes
La route est calcule
pour chaque paquet
Figure 15.20

Mode connect
tablissement de la connexion : CV
changes

Lacheminement des donnes.

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.

15.4 Linterconnexion de rseaux : Internet

413

Dunod La photocopie non autorise est un dlit.

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

Pour chacune des politiques dordonnancement premier arriv, premier servi ,


plus court dabord , priorit fixe, tourniquet avec un quantum de temps gal
2 units, donnez lordre de service des processus et le temps de rponse moyen
obtenu.
16.2

Ordonnancement par priorit premptif et non premptif

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

Reprsentez lordre dexcution des processus dans le cas dun ordonnancement


par priorit non premptif, puis dans le cas dun ordonnancement premptif. Dans
chacun des cas, donnez le temps dattente moyen.
16.3

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

Calcul durant 4 units

Calcul durant 3 units

Entres-sorties durant 2 units

Entres-sorties durant 1 unit

Calcul durant 3 units

Calcul durant 2 units

P3
Calcul durant 7 units

Entres-sorties durant 2 units

Dunod La photocopie non autorise est un dlit.

Calcul durant 1 unit

Reprsentez lexcution des processus dans le temps en mentionnant les changements dtats intervenant entre ltat prt, ltat lu et ltat bloqu.
16.4

Ordonnancement sous Unix

Les oprations relatives lordonnancement sont ralises par le systme Unix


chaque fois quun processus sapprte passer du mode systme au mode utilisateur,
donc la suite de loccurrence soit dune interruption, soit dun appel systme, soit
dune trappe. La politique dordonnancement du systme Unix est une politique
multiples niveaux de priorit avec quantum de temps. Le noyau recalcule la priorit
dun processus quand il passe du mode noyau au mode utilisateur. Ce calcul permet
une extinction de priorit des processus qui sexcutent, de manire permettre
lexcution de tous les processus et viter les problmes de famine. Lalgorithme

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

Ordonnancement sous Linux

On considre un systme monoprocesseur de type Linux dans lequel les processus


partagent un disque comme seul ressource autre que le processeur. Cette ressource
nest accessible quen accs exclusif et non requrable, cest--dire quune commande
disque lance pour le compte dun processus se termine normalement avant de pouvoir
en lancer une autre. Un processus peut tre en excution, en attente dentres-sorties,
en entres-sorties ou en attente du processeur. Les demandes dentres-sorties sont
gres lanciennet.
Dans ce systme, on considre 4 processus P1, P2, P3, P4 pour lesquels on sait que :
P1 et P2 sont des processus appartenant la classe SCHED_FIFO. Dans cette classe,
le processeur est donn au processus de plus haute priorit. Ce processus peut tre
prempt par un processus de la mme classe ayant une priorit suprieure;
P3 et P4 sont des processus appartenant la classe SCHED_RR. Dans cette classe,
le processeur est donn au processus de plus haute priorit pour un quantum de
temps gal 10 ms. La politique applique est celle du tourniquet.
Les processus de la classe SCHED_FIFO sont toujours plus prioritaires que les
processus de la classe SCHED_RR.
Les priorits des processus sont gales 50 pour le processus P1, 49 pour le
processus P2, 49 pour le processus P3 et 49 pour le processus P4. La plus grande
valeur correspond la priorit la plus forte.
Les 4 processus ont le comportement suivant :
Pl :
Calcul pendant 40 ms.
Lecture disque pendant 50 ms.
Calcul pendant 30 ms.

16 Synchronisation de processus

417

Lecture disque pendant 40 ms.


Calcul pendant 10 ms.
P2 :
Calcul pendant 30 ms.
Lecture disque pendant 80 ms.
Calcul pendant 70 ms.
Lecture disque pendant 20 ms.
Calcul pendant 10 ms.
P3 :
Calcul pendant 40 ms.
Lecture disque pendant 40 ms.
Calcul pendant 10 ms.
P4 :
Calcul pendant 100 ms.
tablissez le chronogramme dexcution des quatre processus en figurant les tats
prt, lu, en attente dentres-sorties et en entres-sorties.

SYNCHRONISATION DE PROCESSUS

Dunod La photocopie non autorise est un dlit.

16.6

Producteur(s)-Consommateurs(s)

Soit un systme compos de trois processus cycliques Acquisition, Excution et


Impression, et de deux tampons Requte et Avis grs circulairement, respectivement composs de m et n cases.
Le processus Acquisition enregistre chacune des requtes de travail qui lui sont
soumises par des clients puis il les place dans le tampon Requte destination du
processus Excution.
Le processus Excution excute chaque requte de travail prleve depuis le tampon
Requte et transmet ensuite au processus Impression un ordre dimpression de rsultats dpos dans le tampon Avis.
Le processus Impression prlve les ordres dimpression dposs dans le tampon
Avis et excute ceux-ci.
1. Programmez la synchronisation des trois processus laide des smaphores et des
variables ncessaires la gestion des tampons.
2. On tend le systme trois processus Acquisition, trois processus Excution et trois
processus Impression. Compltez la synchronisation prcdente pour que celle-ci
demeure correcte.
16.7

Allocations de ressources et interblocage

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

Le processus Acquisition effectue toutes les t units de temps la lecture de


mesures partir de trois capteurs et dpose les 3 grandeurs lues dans un tampon de
3 cases. Une fois les 3 dpts effectus par le processus Acquisition, le processus
Collecteur lit le contenu du tampon de 3 cases, enregistre les donnes collectes sur
le disque et imprime celles-ci. Le processus Bilan est quant lui rveill toutes les
semaines. Il lit depuis le disque toutes les mesures enregistres sur la semaine,
effectue un traitement sur celles-ci et imprime le rsultat de ce traitement.
1. Sachant que lunit de transfert vers limprimante est la ligne de texte, que les
impressions envoyes sur limprimante par les processus comportent toutes
plusieurs lignes, montrez que des incohrences peuvent survenir sur les impressions effectues par les processus de ce systme. Proposez une solution.
2. Voici les pseudo-codes des processus Collecteur et Bilan. Les smaphores imp
et disque sont respectivement initialiss 1. Montrez que ces codes peuvent
conduire une situation dinterblocage entre ces deux processus puis proposez
une solution.
Collecteur

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

3. Le processus Collecteur ne doit prlever les mesures dans le tampon de 3 cases


que lorsque les 3 dpts ont t effectus par le processus Acquisition. Par
ailleurs, le processus Acquisition ne doit pas faire de nouveau dpt tant que les
dpts du cycle prcdent nont pas t lus par le processus Collecteur. laide
de smaphores, tablissez le schma de synchronisation permettant de respecter
ces 2 contraintes.
16.8

Allocation de ressources et tats des processus

On considre un ensemble de deux ressources R accs exclusif et un type de


processus utilisateur de la ressource R dont le pseudo-code est de la forme :

16 Gestion de la mmoire centrale

419

processus utilisateur de R
dbut
P(R);
utilisation de R en effectuant un appel systme bloquant;
V(R);
fin

1. quelle valeur doit-on initialiser le smaphore R permettant de grer laccs


lensemble des deux ressources de type exclusif ?
2. On considre trois processus P1, P2, P3 utilisateurs de la ressource R selon le code
donn ci-dessus. Donnez la suite des tats pour chacun de ces processus, sachant
que lordre dlection des processus est P1, puis P2, puis P3. Les trois processus
sont prts en mme temps, un instant t = 0. Le temps de blocage sur lappel
systme est important au regard du temps ncessaire aux autres oprations.

GESTION DE LA MMOIRE CENTRALE


16.9

Gestion de la mmoire par partitions variables

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

Dunod La photocopie non autorise est un dlit.

Figure 16.1

5 Ko

10 Ko

30 Ko

E
10 Ko

F
15 Ko

20 Ko 10 Ko

Allocation de la mmoire t.

1. Reprsentez lvolution de la mmoire centrale, suite chacun des vnements


suivants, en supposant une stratgie de choix First Fit :
1) arrive du programme G de taille gale 20 Ko;
2) dpart du programme B;
3) arrive du programme H de taille gale 15 Ko;
4) dpart du programme E;
5) arrive du programme I de taille gale 40 Ko.
2. Mme question mais en supposant une stratgie de choix Best Fit.
16.10 Remplacement de pages
Soit la liste des pages virtuelles rfrences aux instants t = 1, 2, , 11 :
3 5 6 8 3 9 6 12 3 6 10

420

16 Exercices corrigs

La mmoire centrale est compose de 4 cases initialement vides. Reprsentez


lvolution de la mmoire centrale au fur et mesure des accs pour chacune des
deux politiques de remplacement de pages FIFO et LRU. Notez les dfauts de pages
ventuels.
16.11 Mmoire pagine et segmente
On considre une mmoire segmente pagine pour laquelle les cases en mmoire
centrale sont de 4 Ko. La mmoire centrale compte au total 15 cases numrotes
de 1 15. Dans ce contexte, on considre deux processus A et B. Le processus A a
un espace dadressage compos de trois segments S1A, S2A et S3A qui sont respectivement de 8 Ko, 12 Ko et 4 Ko. Le processus B a un espace dadressage compos
de deux segments S1B et S2B qui sont respectivement de 16 Ko et 8 Ko Pour le
processus A, seules les pages 1 et 2 du segment S1A, la page 2 du segment S2A et la
page 1 du segment S3A sont charges en mmoire centrale respectivement dans les
cases 4, 5, 10, 6. Pour le processus B, seules les pages 2 et 3 du segment S1B et la
page 1 du segment S2B sont charges en mmoire centrale respectivement dans les
cases 11, 2 et 15.
1. Reprsentez sur un dessin les structures alloues (table des segments, tables des
pages) et la mmoire centrale correspondant lallocation dcrite.
2. Soit ladresse logique <S1A, page 1, 12>. Quelle adresse relle lui correspond-elle ?
3. Soit ladresse logique <S2B, page 2, 10>. Quelle adresse relle lui correspond-elle ?
4. Dans ce mme contexte, donnez pour chacune des adresses linaires suivantes, son
quivalent en adresse virtuelle, puis son adresse physique correspondante : 4 098
pour le processus A, 12 292 pour le processus A, 8 212 pour le processus B.
16.12 Mmoire virtuelle et ordonnancement de processus
On considre un systme fonctionnant selon le principe de la mmoire virtuelle. Les
pages des processus sont charges la demande cest--dire seulement lorsque le
processus demande accder la page. Lors dun dfaut de page, une opration
dentres-sorties est lance qui cote 10 ms par page charger.
Soient les trois processus P1, P2 et P3 dont les espaces dadressages sont respectivement composs de 3, 3 et 2 pages. Les 3 processus sont tous les 3 prts linstant
t = 0. Lordonnancement sur le processeur est un ordonnancement par priorit
premptif. Le processus P1 est le processus le plus prioritaire et le processus P3 est
le processus le moins prioritaire.
Le comportement des processus est le suivant :
Pl :
Calcul utilisant la page 1 pendant 20 ms.
Calcul utilisant la page 2 pendant 10 ms.
Calcul utilisant la page 1 et la page 2 pendant 30 ms.
Calcul utilisant la page 3 pendant 30 ms.

16 Gestion de la mmoire centrale

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.

Dunod La photocopie non autorise est un dlit.

16.13 Pagination la demande


On considre une mmoire pagine pour laquelle les cases en mmoire centrale sont
de 1 Ko. La mmoire centrale compte au total pour lespace utilisateur 20 cases
numrotes de 1 20. Dans ce contexte, on considre trois processus A, B et C. Le
processus A a un espace dadressage compos de six pages P1, P2, P3, P4, P5 et P6.
Le processus B a un espace dadressage compos de quatre pages, P1 P4. Le
processus C a un espace dadressage compos de deux pages, P1 et P2. Pour le
processus A, seules les pages P1, P5, P6 sont charges en mmoire centrale respectivement dans les cases 2, 4, 1. Pour le processus B, seule la page P1 est charge en
mmoire centrale dans la case 5. Pour le processus C, seule la page P2 est charge en
mmoire centrale dans la case 12.
1. Reprsentez sur un dessin les structures alloues pour ce type dallocation
mmoire et la mmoire centrale correspondant lallocation dcrite.
2. Les trois processus A, B et C sont dcrits par un bloc de contrle qui contient
entre autre les informations suivantes :
Pour le processus A, compteur ordinal CO = (page P5, dplacement 16), adresse
table des pages = 16;
Pour le processus B, compteur ordinal CO = (page P2, dplacement 512), adresse
table des pages = 64;
Pour le processus C, compteur ordinal CO = (page P1, dplacement 32), adresse
table des pages = 128.
Le compteur ordinal CO contient ladresse de linstruction excuter.
Le processus A devient actif. Dcrivez le processus de conversion dadresse pour
linstruction excute sa reprise. Quelle valeur contient le registre PTBR ?
Quelle adresse physique correspond ladresse virtuelle de linstruction excute ?
Maintenant le processus A est prempt et le processus B est lu. Dcrivez
succinctement lopration de commutation de contexte qui a lieu notamment en
donnant les nouvelles valeurs des registres CO et PTBR. Que se passe-t-il lorsque
le processus B reprend son excution ?
3. Chaque entre de table des pages contient un champ de bits permettant de spcifier les droits daccs associs une page. Ce champ est compos de trois bits x,
r, w avec la signification suivante :

422

16 Exercices corrigs

x : 0 pas de droit en excution sur la page, 1 droit en excution accord;


r : 0 pas de droit en lecture sur la page, 1 droit en lecture accord;
w : 0 pas de droit en criture sur la page, 1 droit en criture accord.
Ce champ droit la valeur 010 pour la page P1 du processus A. Le processus A
excute linstruction STORE R1 (page P1, dplacement 128) qui effectue lcriture du contenu du registre processeur R1 ladresse (page P1, dplacement 128).
Que se passe-t-il ?

SYSTME DE GESTION DE FICHIERS


16.14 Modes daccs
1. On considre un fichier accs direct. Le dernier enregistrement lu par le systme
dans ce fichier est lenregistrement 512. Combien faut-il lire denregistrements
pour accder chacun des enregistrements suivants : enregistrement 513, enregistrement 1 024, enregistrement 77 ?
2. On considre prsent un fichier squentiel. Le dernier enregistrement lu par le
systme dans ce fichier est lenregistrement 512. Combien faut-il lire denregistrements pour accder chacun des enregistrements suivants : enregistrement 513,
enregistrement 1 024, enregistrement 77 ?
16.15 Organisation de fichiers
1. On considre un fichier allocation contigu constitu de blocs de 1 024 octets.
Ladresse du premier bloc constituant le fichier est mmorise dans lentre du
rpertoire concernant ce fichier. Le dernier bloc lu par le systme dans ce fichier
est le bloc 512. Combien faut-il lire de blocs physiques pour accder chacun des
blocs suivants : bloc 513, bloc 1 024, bloc 77 ?
2. On considre prsent un fichier allocation chane constitu de blocs de
1 024 octets. Ladresse du premier bloc constituant le fichier est mmorise dans
lentre du rpertoire concernant ce fichier. Le dernier bloc lu par le systme dans
ce fichier est le bloc 512. Combien faut-il lire de blocs physiques pour accder
chacun des blocs suivants : bloc 513, bloc 1 024, bloc 77 ?
16.16 Noms de fichiers et droits daccs
1. La figure 16.2 reprsente une arborescence de fichiers. Donnez le nom absolu de
chacun des fichiers apparaissant dans cette arborescence.
2. Le systme de protection des fichiers gre trois niveaux de protection. Chaque
niveau de protection dfinit des droits en lecture (r), criture (w) et excution (x)
pour les lments du niveau. Le premier niveau ne contient que le crateur du
fichier. Le second niveau correspond au groupe dutilisateurs auquel appartient le
crateur du ficher, enfin le troisime niveau concerne tous les autres utilisateurs en

16 Systme de gestion de fichiers

423

dehors du crateur et du groupe du crateur. Le systme dfinit deux groupes, les


tudiants et les professeurs.
/
usr

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.

Dunod La photocopie non autorise est un dlit.

16.18 Fichiers Unix


Un processus Unix lit squentiellement un fichier de 8 Mo, raison de 256 octets
la fois. On suppose que les blocs disque sont de 1 024 octets et quun numro de bloc
occupe 4 octets. Par ailleurs, le temps daccs moyen au disque est de 50 ms.
1. Le systme ne gre pas de mcanisme de cache au niveau du disque, cest--dire
que chaque demande de lecture quivaut une opration dentres-sorties. Donnez
le nombre total daccs disque ncessaire et le temps dattente en entres-sorties.
2. Le systme gre un mcanisme de cache au niveau du disque, qui mmorise en
mmoire centrale les 100 blocs disques les plus rcemment accds. Donnez le
nombre total daccs disque ncessaire et le temps dattente en entres-sorties.
16.19 Systme de gestion de fichiers FAT
Soit lallocation du disque C sur un systme Windows reprsente par la figure 16.3.
Lallocation est gre selon un systme de FAT. Les blocs sont numrots de 1 20,

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.

16.20 Systme de gestion Unix


On considre un fichier de type UNIX. Le fichier a une taille de 16 Moctets. Les
blocs disque sont de 1 024 octets. Un numro de bloc occupe deux octets.
1. Quel est le nombre de blocs de donnes du fichier ?
2. Combien comporte-t-il de blocs dadresses ?
16.21 Synthse
On considre les trois processus suivants caractriss par :
une date de soumission : date de larrive du processus dans la file des processus
prts;
un temps dexcution total;
une priorit fixe (plus la valeur de priorit est petite, plus la priorit est grande).

16 Systme de gestion de fichiers

425

Processus

Date de soumission (t)

Temps dexcution (s)

Priorit

P1

12

P2

P3

18

Dunod La photocopie non autorise est un dlit.

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

Table des pages P2


Espace d'adressage de P2
4 pages Pg1, Pg2, Pg3, Pg4

Pg1 P2

Pg3 P2

5
6
7
8

Table des pages P3


Espace d'adressage de P3

Pg1 P1

Pg1 P3
Pg2 P1

9
10

2 pages Pg1, Pg2


MC

Figure 16.4

Allocation de la mmoire centrale linstant t.

Le processus P1 accde ladresse pagine <page 1, deplacement 128>.


Donnez ladresse physique correspondante.
Le processus P2 accde ladresse pagine <page 4, deplacement 64>. Donnez
ladresse physique correspondante.

SOLUTIONS

16.1

Algorithmes dordonnancement

Politique premier arriv, premier servi :


ordre de service : P1, P2, P3, P4, P5;
temps de rponse moyen : (2 + 8 + 18 + 22 + 34)/5 = 16,8.
Politique plus court dabord :
ordre de service : P1, P4, P2, P3, P5;
temps de rponse moyen : (2 + 6 + 12 + 22 + 34)/5 = 15,2.
Politique par priorit :
ordre de service : P5, P1, P3, P2, P4;
temps de rponse moyen : (12 + 14 + 24 + 30 + 34)/5 = 22,8.
Politique par quantum :
ordre de service : P1, P2, P3, P4, P5, P2, P3, P4, P5, P2, P3, P5, P3, P5, P3,
P5, P5;
temps de rponse moyen : (2 + 20 + 30 + 16 + 34)/5 = 20,4.
16.2

Ordonnancement par priorit premptif et non premptif

La solution est donne par la figure 16.5.


Priorit non premptive
P5

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

Priorit premptive et non premptive.

428

16 Exercices corrigs

16.3

Chronogramme dexcutions

La solution est donne par la figure 16.6.


4
P1

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.

Ordonnancement sous Unix

linstant 0, le processus A est lu. Chaque seconde, linterruption horloge survient


et le compteur utilisation du processeur est incrment dune unit.
Au bout de 60 interruptions (instant t = 1), la priorit des processus est recalcule.
Du fait que les processus B et C ne se sont pas encore excuts leur priorit est
inchange (compteur utilisation du processeur est nul pour ces processus). La
priorit du processus A par contre baisse et devient gale 75 (60 + 30/2). Cest
donc le processus B qui est prsent lu.
linstant 2, de nouveau les priorits sont recalcules. Le compteur utilisation
du processeur du processus C tant toujours nul, la priorit de ce processus nest
pas modifie. Les priorits du processus A et B par contre voluent et deviennent
respectivement gales 67 pour le processus A (60 + 15/2) et 75 pour le processus B.
On voit prsent que le processus A a une priorit qui remonte du fait quil na pas
pu utiliser lunit centrale. Le processus C est lu.
linstant 3, les priorits deviennent pour le processus A gal 63 (60 + 7/2), pour
le processus B gal 67 et le processus C gale 75. Le processus A est donc lu.
linstant 4, les priorits deviennent pour le processus A gal 75 (60 + 31/2), pour
le processus B gal 63 et le processus C gale 67. Le processus B est donc lu.

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

Ordonnancement sous Linux

La solution est donne par la figure 16.7.


E/S
attente E/S
P1

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

Dunod La photocopie non autorise est un dlit.

16.6

200

300

Ordonnancement Linux.

Producteur(s)-Consommateurs(s)

1. On identifie un schma producteur-consommateur sur chacun des tampons. On


utilise pour chacun de ces schmas un couple de smaphores :
mvide initialis m et mplein initialis 0 (tampon requte);
nvide initialis n et nplein initialis 0 (tampon avis).
dclarations globales :
requte : tampon (0.m 1) de messages;
avis : tampon (0.n 1) de messages;
m, n : entier;
mvide, nvide, mplein, nplein : smaphores;
init(mvide, m); init (nvide, n); init(mplein, 0); init(nplein, 0);

430

16 Exercices corrigs

Acquisition

Excution

Impression

mess : message;

mess, res : 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);

excuter_travail(mess, res); imprimer_resultat(mess);

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, res : 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);

excuter_travail(mess, res); imprimer_resultat(mess);

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

Dunod La photocopie non autorise est un dlit.

16.7

Allocations de ressources et interblocage

1. Deux processus se partagent limprimante : le processus Collecteur et le processus


Bilan. Imaginons que le processus Collecteur ait commenc une impression alors
que le processus Bilan se rveille et dmarre lui-mme sa propre impression suite
au traitement sur les mesures. Comme chacune des deux impressions comporte
plusieurs lignes et que la ligne est lunit de transfert vers limprimante il est trs
probable que les 2 impressions seront mlanges sur limprimante.
Pour rsoudre ce problme, il ne faut pas quun processus puisse dmarrer une
impression si une impression est dj en cours. Autrement dit, limprimante doit
tre accde en exclusion mutuelle.
2. Imaginons que le processus Collecteur sexcute et acquiert limprimante par le
biais de lopration P(imp). Le processus Bilan maintenant se rveille, prempte
le processus Collecteur et acquiert la ressource disque par le biais de lopration
P(disque). Maintenant les deux processus sont bel et bien en situation dinterblocage. Le processus Bilan poursuivant son excution est bloqu sur lopration
P(imp) car limprimante est alloue au processus Collecteur. Le processus Collec-

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

Allocation de ressources et tats des processus

1. Le smaphore R est initialis au nombre de ressources R initialement disponibles soit 2.


2. Suite des tats pour les processus P1, P2 et P3 :
t = 0 P1 lu P2 prt P3 prt :
P1 effectue P(R) et obtient un exemplaire de la ressource.
P1 se bloque sur lappel systme.
t = 1 P1 bloqu P2 lu P3 prt :
P2 effectue P(R) et obtient un exemplaire de la ressource.
P2 se bloque sur lappel systme.
t = 2 P1 bloqu P2 bloqu P3 lu :
P3 effectue P(R) et se bloque sur cette opration car il nexiste plus dexemplaires disponibles.

16 Solutions

433

t = 3 P1 bloqu P2 bloqu P3 bloqu :


P1 sort de lappel systme bloquant. P1 prt puis lu rend la ressource R via
lopration V(R). P1 se termine. P3 est dbloqu, acquiert un exemplaire de R
et passe ltat prt.
t = 4 P2 bloqu P3 prt :
P3 est lu et se bloque sur lappel systme.
t = 5 P2 bloqu P3 bloqu :
P2 sort de lappel systme bloquant. P2 prt puis lu rend la ressource R via
lopration V(R). P2 se termine.
t = 6 P3 bloqu :
P3 sort de lappel systme bloquant. P3 prt puis lu rend la ressource R via
lopration V(R). P3 se termine.
16.9

Gestion de la mmoire par partitions variables

1. La solution est donne par la figure 16.8.


2. La solution est donne par la figure 16.9.
16.10 Remplacement de pages
FIFO
Accs

12

10

Case 1

10

12

12

12

12

Case 2
Case 3
Case 4

Dunod La photocopie non autorise est un dlit.

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

Arrive du programme G, taille 20 Ko


10 Ko
10 Ko 5 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

Arrive du programme H, taille 15 Ko


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

Stratgie First Fit.

30 Ko

16 Solutions

435

tat Initial
10 Ko

5 Ko

10 Ko

20 Ko

30 Ko

5 Ko

10 Ko

30 Ko

Arrive du programme G, taille 20 Ko


10 Ko
10 Ko 5 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

Arrive du programme H, taille 15 Ko


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

Dunod La photocopie non autorise est un dlit.

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

Stratgie Best Fit.

30 Ko

436

16 Exercices corrigs

16.11 Mmoire pagine et segmente


1. La solution est donne par la figure 16.10.
Table des segments proc A
adresse
table des pages

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

Table des pages des segments


8
Table des segments proc B

16

9
0
1
1
0

11
2

15

Page 2 S2A

10

Page 2 S1B

11
12

13

14

Table des pages des segments


Page 1 S2B

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

Chronogrammes dexcutions des processus P1, P2 et P3.

Dunod La photocopie non autorise est un dlit.

16.13 Pagination la demande


1. La figure 16.12 reprsente lallocation de la mmoire centrale et les tables des
pages des processus.
2. Linstruction de reprise est celle dont ladresse correspond au CO = (page P5,
dplacement 16). La valeur de PTBR est gale 16.
La conversion de ladresse seffectue selon le processus suivant :
1. accs la table via le PTBR;
2. accs lentre 5 de la table des pages du processus A et test du bit V;
3. le bit V tant 1, la page est prsente en mmoire centrale; ladresse physique
correspondante est (case 4, dplacement 16) soit 3 Ko + 16 = 3 098.
Les oprations suivantes sont ralises lors de la premption du processus A par le
processus B :
1. sauvegarde dans le bloc de contrle du processus A de sa valeur de CO et
PTBR

438

16 Exercices corrigs

2. restauration du contexte du processus B. Le registre CO est charg avec ladresse


pagine (page P2, dplacement 512) et le registre PTBR prend la valeur 64.
Lorsque le processus B reprend son excution :
1. accs la table via le PTBR;
2. accs lentre 2 de la table des pages du processus B et test du bit V;
3. le bit V tant 0, la page est absente en mmoire centrale : il y a dfaut de page;
Table des pages proc A
V case
1

1
Page 1 PA

0
1

Page 3 PA

Page 1 PC

Table des pages proc B


V
1

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

Allocation de la mmoire centrale


et tables des pages des processus A, B et C.

3. Les droits 010 correspondent un droit en lecture seule pour la page P1 du


processus A. Linstruction STORE tant une opration dcriture en mmoire
centrale, une trappe est leve. Lexcution du processus A est droute en mode
systme et arrte.
16.14 Modes daccs
1. Dans tous les cas, un seul enregistrement doit tre lu.
2. Il faut une seule opration de lecture pour lire lenregistrement 513 qui suit immdiatement lenregistrement 512. La lecture de lenregistrement 1 024 ncessite la
lecture de 511 enregistrements tandis que la lecture de lenregistrement 77 ncessite la lecture des 77 premiers enregistrements.

16 Solutions

439

16.15 Organisation de fichiers


1. Dans tous les cas, une seule lecture est ncessaire car ladresse de chaque bloc sur
le disque peut tre calcule partir de ladresse du premier bloc, de la taille des
blocs et du numro de bloc recherch.
2. La lecture des blocs impose de suivre le chanage entre les blocs. Il faut donc une
seule opration de lecture pour lire le bloc 513 qui suit immdiatement le bloc 512.
La lecture du bloc 1 024 ncessite la lecture de 511 blocs tandis que la lecture de
lenregistrement 77 ncessite la lecture des 77 premiers blocs.
16.16 Noms de fichiers
1. Nom absolu de chacun des fichiers apparaissant dans larborescence :
/usr/bin/ls
/sbin/ping
/etudiants/dupont/exo1.c
/etudiants/dupont/rapport.txt
/etudiants/jeanne/fichier.o
/etudiants/jeanne/exo1.c
/professeurs/delacroix/pb.c
2. Non. Lutilisateur delacroix appartient au troisime niveau de protection pour le
fichier exo1.c. Il ne peut que lire le fichier exo1.c.
16.17 Algorithmes de services des requtes disque
FCFS :
ordre de service : 62, 200, 150, 60, 12, 120, 250, 45, 10, 100;
dplacement du bras : 12 + 138 + 50 + 90 + 48 + 108 + 130 + 205 + 35 + 90 = 906.

Dunod La photocopie non autorise est un dlit.

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.20 Systme de gestion Unix


On considre un fichier de type UNIX. Le fichier a une taille de 16 Moctets. Les
blocs disque sont de 1 024 octets. Un numro de bloc occupe deux octets.
1. Le nombre de blocs est gal 24 220 / 210 = 214 blocs soit 16 384 blocs.
2. Un bloc dadresse comporte 512 entres. Pour adresser les 16 384 blocs de donnes,
il faut donc :
Un bloc dadresse INDIRECT_1 adresse 512 blocs de donnes.
Il reste 16 384 512 10 = 15 862 blocs. Il faut 31 + 1 blocs dadresses au
niveau dindirection 2 pour adresser ces blocs de donnes.
Au total donc, 33 blocs dadresses sont ncessaires.
16.21 Synthse
1. La figure 16.13 donne le chronogramme dexcution des trois processus.
2. La figure 16.14 donne le chronogramme dexcution des trois processus.

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

Temps de rponse (P1) = 21 6 = 15 ; Temps de rponse (P2) = 9 0 = 9 ; Temps de rponse(P3) = 39 4 = 35.

Figure 16.13
B bloqu

P prt

Chronogramme dexcution.

E lu

Dunod La photocopie non autorise est un dlit.

B
P
E

P1

B
P
E

P2

B
P
E

P3
0123

10

20

30

40

Temps de rponse (P1) = 26 6 = 20 ; Temps de rponse (P2) = 40 0 = 40 ; Temps de rponse(P3) = 39 4 = 35

Figure 16.14

Chronogramme dexcution.

442

16 Exercices corrigs

3. La figure 16.15 donne la table dallocation FAT correspondant lallocation


dcrite.
5
7
2
8
9
10
11
17
15
null
30
13
16
libre
25
21
12
libre
libre
libre
null
24
libre
6
29
libre
libre
libre
null
null

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)

adresse premier bloc

fich_1

5 632

fich_2

4 098

fich_3

6 272

fich_4

3 104

22

Entres de rpertoire

FAT
Figure 16.15

Table dallocation FAT.

4. La figure 16.16 donne le schma dallocation mmoire complt.


Le processus P1 accde ladresse pagine <page 1, deplacement 128>.
Ladresse physique correspondante est <case 1, dplacement 128>, soit 128.
Le processus P2 accde ladresse pagine <page 4, deplacement 64>. La page 4
du processus P2 est hors mmoire centrale. Il y a dfaut de page. La page

16 Solutions

443

Table des pages P1


V
Espace d'adressage de P1
3 pages Pg1, Pg2, Pg3

V
V

1
8
5

Table des pages P2


V
Espace d'adressage de P2
4 pages Pg1, Pg2, Pg3, Pg4

I
V

5
4

2
3

Pg1 P2

Pg3 P2

Pg3 P1

7
8

Table des pages P3

2 pages Pg1, Pg2

Pg1 P1

Espace d'adressage de P3

Pg1 P3
Pg2 P1

9
10

Figure 16.16

MC

Allocation mmoire et tables des pages des processus.

Dunod La photocopie non autorise est un dlit.

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

Architecture des machines et des systmes informatiques

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

Dunod La photocopie non autorise est un dlit.

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

Microprocesseur 3, 10, 13, 131, 132


MIMD 167
MIPS 163
MISD 167
MMU 196, 316, 323, 327, 334
Mode
ad-hoc ou IBSS 402
daccs 349
direct 350
index 350
squentiel 349
dadressage 80, 81
dexcution 277
esclave 277
infrastructure 401
matre 277
superviseur 277
utilisateur 277
Mode de transmission
commutation de paquets 394
diffr 394
diffusion 384
point point 384
unicast 385
Mot
de passe 379
mmoire 5
Multi-ordinateurs 166
Multiplexeur 390
Multiprocesseur 166

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

Architecture des machines et des systmes informatiques

sur lunit centrale 295


Ordonnanceur 297
Overflow 73

PCF 402
PSW 11

Qualit de service 396


Quantum 301

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

Dunod La photocopie non autorise est un dlit.

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

Photocomposition : SCM, Toulouse

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

Vous aimerez peut-être aussi