Architecture et technologie des ordinateurs
Cours et exercices corrigés
6e édition
Paolo Zanella
Yves Ligier
Emmanuel Lazard
Dunod
Avant-propos de la sixième édition
Chapitre 0 - Informatique et société1
Chapitre 1 - Histoire de l'ordinateur9
1.1 Introduction9
1.2 Développement historique et conceptuel10
1.3 Progrès au XIXe siècle12
1.4 XXe siècle14
1.5 Naissance de l'ordinateur : 194515
1.6 Naissance de l'industrie informatique17
1.7 Evolution du matériel informatique18
1.8 Evolution du logiciel20
1.9 L'informatique au XXIe siècle21
Chapitre 2 - Présentation générale23
2.1 Ordinateur et informatique23
2.2 Principaux éléments d'un ordinateur24
2.3 Valeurs et acteurs de référence26
2.4 Principes de fonctionnement du matériel30
2.5 Développement de logiciel35
2.6 Utilisation des ordinateurs37
2.7 Conclusion39
Chapitre 3 - Représentation interne des informations41
3.1 Introduction41
3.2 Données non numériques42
3.21 UNICODE - ISO/IEC 10646
43
3.3 Données numériques51
3.3.1 Entiers positifs ou nuls
52
3.3.2 Entiers négatifs
54
3.3.3 Nombres réels
57
3.3.4 Décimaux codés en binaire
61
Exercices63
Chapitre 4 - Encodage de l'information69
4.1 Codes détecteurs et correcteurs d'erreurs69
4.1.1 Codes auto-vérificateurs
70
4.1.2 Codes auto-correcteurs
70
4.1.3 Détection d'erreurs groupées
75
4.2 Compression78
4.2.1 Codage de Huffman
79
4.2.2 Codage de Lempel-Ziv-Welch (LZW)
80
4.2.3 Run Length Encoding (RLE)
81
4.2.4 JPEG
82
4.2.5 Ondelettes
82
4.2.6 JPEG 2000
84
4.3 Chiffrement86
4.3.1 Data Encryption Standard (DES)
87
4.3.2 Algorithme RSA
88
4.3.3 Pretty Good Privacy (PGP)
88
Exercices89
Chapitre 5 - Circuits logiques93
5.1 Notion de circuit logique93
5.2 Circuits combinatoires93
5.2.1 Algèbre de Boole
94
5.2.2 Fonctions d'une variable
94
5.2.3 Fonctions de deux variables
94
5.2.4 Synthèse d'un circuit combinatoire
100
5.2.5 Analyse d'un circuit combinatoire
105
5.2.6 Multiplexeurs et démultiplexeurs
106
5.2.7 Décodeurs - Codeurs - Transcodeurs
107
5.3 Circuits séquentiels110
5.3.1 Concept d'automate fini
111
5.3.2 Circuits asynchrones et synchrones
113
5.3.3 Bascules
114
5.3.4 Synthèse d'un circuit séquentiel
119
5.3.5 Analyse d'un circuit séquentiel
121
Exercices123
Chapitre 6 - Composants électroniques131
6.1 Électrons dans la matière131
6.2 Electrons dans le vide133
6.3 Conductivité133
6.3.1 Conducteurs
134
6.3.2 Isolants
134
6.3.3 Semi-conducteurs
134
6.4 Diode137
6.5 Transistors138
6.5.1 Transistor bipolaire
139
6.5.2 Transistor à effet de champ
141
6.6 Circuits intégrés143
6.7 Circuits de base149
Exercices153
Chapitre 7 - Mémoires157
7.1 Généralités et définitions157
7.1.1 Hiérarchie des mémoires
157
7.1.2 Organisation des informations
160
7.2 Mémoire centrale161
7.2.1 Mémoires à semi-conducteurs
162
7.2.2 Structure physique de la mémoire centrale
167
7.3 Mémoire cache168
7.4 Mémoires auxiliaires169
7.4.1 Enregistrement magnétique
170
7.4.2 Disques magnétiques
175
7.4.3 Disques optiques numériques
178
7.4.4 Cartouches et bandes magnétiques
183
7.4.5 Disques SSD
185
7.4.6 Gestion du stockage
187
Exercices191
Chapitre 8 - Unité centrale de traitement195
8.1 Architecture195
8.2 Unité de commande196
8.3 Synchronisation des opérations198
8.4 Séquenceur199
8.5 Niveaux de programmation201
8.6 Structure des instructions niveau machine202
8.7 Jeu d'instructions204
8.8 Registres du CPU205
8.9 Adressage des opérandes208
8.10 Taille de l'adresse et taille de la mémoire209
8.11 Unité arithmétique et logique (UAL)210
Exercices210
Chapitre 9 - Superordinateurs et microprocesseurs213
9.1 Introduction213
9.1.1 Accroissement de la puissance des ordinateurs
214
9.1.2 Technologie et performance
217
9.1.3 Evaluation de la performance
220
9.2 Superordinateurs223
9.3 Microprocesseurs225
9.3.1 Microprocesseur et micro-ordinateur
225
9.3.2 Evolution des microprocesseurs
225
9.3.3 Micro-ordinateurs
229
9.3.4 Performances
232
9.4 Machines parallèles233
9.4.1 Histoire et évolution des idées
233
9.5 Parallélisme236
9.5.1 Parallélisme et applications
237
9.5.2 Toujours plus vite
238
9.6 Evolution de l'architecture du CPU239
9.6.1 Architectures RISC et CISC
239
9.6.2 Amélioration des performances
241
9.6.3 Tendances futures
249
9.6.4 L'importance du logiciel
250
9.6.5 Conclusions
250
Chapitre 10 - Entrées / sorties251
10.1 Évolution251
10.2 Clavier253
10.3 Souris et autres dispositifs de pointage254
10.4 Écrans255
10.4.1 Ecrans cathodiques
255
10.4.2 Écrans plats
260
10.5 Imprimantes268
10.5.1 Imprimantes avec impact
269
10.5.2 Imprimantes sans impact
270
10.5.3 Traceurs
274
10.5.4 Imprimantes 3D
274
10.6 Scanners276
10.7 Identification et surveillance277
10.8 Architectures et procédures d'entrées/sorties281
10.8.1 Système d'interruption
281
10.8.2 Accès direct à la mémoire (DMA)
284
10.8.3 Canaux d'entrées/sorties
286
10.8.4 Contrôleur de périphériques
288
10.8.5 Bus
289
10.9 Principaux bus d'extension290
10.9.1 Bus locaux
290
10.9.2 Bus externes
292
10.9.3 Bus local et externe
296
Exercices297
Chapitre 11 - Réseaux299
11.1 Introduction299
11.2 Voies de transmission301
11.2.1 Transmissions série et parallèle
302
11.2.2 Modes de transmission et synchronisation
302
11.2.3 Modes d'exploitation d'une voie de transmission
304
11.2.4 Bande passante et capacité
304
11.3 Transmission analogique et modulation306
11.3.1 Transmission analogique
306
11.3.2 Modulation d'amplitude, de fréquence et de phase
306
11.4 Transmission digitale et modulation308
11.4.1 Transmission digitale ou numérique
308
11.4.2 Modulation par impulsion et codage
309
11.3 Multiplexage310
11.6 Topologie et protocoles312
11.6.1 Types de réseaux
312
11.6.2 Techniques de commutation de données
313
11.6.3 Topologie
314
11.6.4 Protocoles
316
11.6.5 Modèle ISO-OSI
316
11.6.6 Connexions entre réseaux
319
11.6.7 Protocole HDLC
319
11.6.8 Méthodes d'accès dans les réseaux locaux
320
11.6.9 Exemple de réseau local : Ethernet
322
11.7 Développement des réseaux324
11.7.1 Standard FDDI
324
11.7.2 Evolution de la commutation par paquets
325
11.7.3 Relais de trames
325
11.7.4 Relais de cellules
326
11.7.5 Réseau numérique à intégration de services
327
11.7.6 ADSL
327
11.7.7 Réseaux locaux sans fil
328
11.7.8 Réseaux mobiles
330
11.7.9 Sécurité des réseaux
330
11.8 TCP/IP : protocoles d'Internet332
Exercices337
Chapitre 12 - Systèmes d'exploitation343
12.1 Introduction au logiciel d'exploitation343
12.2 Evolution des systèmes d'exploitation344
12.2.1 Préhistoire
344
12.2.2 Systèmes par lots
345
12.2.3 Vers l'indépendance des entrées/sorties
346
12.2.4 Multiprogrammation
347
12.2.5 Temps partagé
348
12.3 Caractéristiques des systèmes d'exploitation349
12.3.1 Exploitation des ressources
350
12.3.2 Virtualisation de la machine
351
12.3.3 Machine à deux états
352
12.3.4 Notions de programme, processeur et processus
353
12.3.5 Structure d'un système d'exploitation moderne
354
12.4 Noyau356
12.4.1 Allocation du CPU
356
12.4.2 Gestion des interruptions
357
12.4.3 Support de l'environnement des processus
357
12.5 Gestion de la mémoire centrale359
12.5.1 Partitions de taille fixe
360
12.5.2 Partitions de taille variable
360
12.5.3 Translation dynamique et protection
362
12.5.4 Segmentation
363
12.5.5 Mémoire virtuelle
365
12.5.6 Pagination
365
12.6 Organisation des entrées/sorties373
12.6.1 Quelques aspects du problème
374
12.6.2 Une approche répandue
374
12.7 Gestion de fichiers376
12.7.1 Pourquoi un système de fichiers ?
376
12.7.2 Objectifs
377
12.7.3 Enregistrements logiques et physiques
378
12.7.4 Gestion des ressources disques
379
12.7.5 Catalogues
379
12.7.6 Méthodes d'accès
381
12.7.7 Intégrité et sauvegarde
381
12.7.8 Performance
382
12.7.9 Serveurs de fichiers
383
12.8 Allocation des ressources383
12.8.1 Grappes de serveurs et grilles
384
12.9 Interface utilisateur384
12.10 Virtualisation386
12.11 L'informatique dans les nuages388
12.11.1 Cloud grand public
388
12.11.2 Cloud d'entreprise
389
12.12 Systèmes actuels390
12.12.1 Systèmes pour smartphones
391
12.12.2 Systèmes pour ordinateurs personnels
392
12.12.3 Systèmes pour ordinateurs centraux
395
Exercices398
Chapitre 13 - Langages de programmation401
13.1 Langage machine401
13.2 Traduction et interprétation402
13.3 Assembleur403
13.3.1 Codes opérations mnémoniques
404
13.3.2 Opérandes et étiquettes
404
13.3.3 Littéraux
404
13.3.4 Directives
405
13.3.5 Expressions arithmétiques
405
13.3.6 Macros et sous-programmes
406
13.4 Fonctionnement de l'assembleur410
13.4.1 Macro-assembleur et cross assembleur
411
13.5 Développement d'un programme412
13.5.1 Éditeur de texte
412
13.5.2 Éditeur de liens
414
13.5.3 Chargeur
415
13.5.4 Débogueur
417
13.6 Langages évolués417
13.6.1 Définition d'un langage
417
13.6.2 Concepts de base des langages évolués
419
13.6.3 Exemples de langages évolués
420
13.6.4 Approche orientée objet
425
13.6.5 Intelligence artificielle
428
13.6.6 Eléments d'un langage de programmation
432
13.7 Compilation433
13.7.1 Structure d'un compilateur
433
13.7.2 Analyse lexicale
434
13.7.3 Analyse syntaxique
435
13.7.4 Analyse sémantique
436
13.7.5 Génération de code intermédiaire
436
13.7.6 Optimisation de code
436
13.7.7 Génération de code objet
437
13.7.8 Table des symboles
437
13.7.9 Traitement des erreurs
437
13.7.10 Passes d'un compilateur
438
13.7.11 Portabilité des programmes
438
13.7.12 Machines virtuelles
439
13.7.13 Cross compilation
440
Exercices441
Chapitre 14 - Génie logiciel447
14.1 Définition447
14.2 Organisation de projet449
14.2.1 Projet informatique
449
14.2.2 Équipe de projet
450
14.2.3 Livrables
452
14.2.4 Industrialisation du processus de développement
456
14.3 Cycles de vie du logiciel458
14.3.1 Activités génériques
458
14.3.2 Modèles de cycles de vie
459
14.3.3 Modélisation
465
14.3.4 Architecture n-tiers
470
14.3.5 Qualité
471
14.4 Système d'information473
14.4.1 Système d'information et système informatique
473
14.4.2 Urbanisation d'un SI
474
14.5 Standard ouvert et logiciel libre476
14.5.1 Standards ouverts
477
14.5.2 Logiciel libre et Open Source
477
14.6 Transformation numérique479
Exercices480
Chapitre 15 - Structures de données483
15.1 Types et structures483
15.7.7 Vecteurs
485
15.1.2 Tableaux
485
15.1.3 Listes
486
15.1.4 Arbres
487
15.1.5 Queues
488
15.1.6 Piles
489
15.1.7 Tables
489
15.2 Fichiers494
15.2.1 Notion d'enregistrement
495
15.2.2 Types de fichiers
495
15.3 Bases de données496
15.3.1 Définition
496
15.3.2 Modèle hiérarchique
498
15.3.3 Modèle réseau
498
15.3.4 Modèle relationnel
498
15.3.5 Modèle à objets
501
15.3.6 Modèle distribué
501
15.3.7 De l'objet au relationnel
502
15.4 Big data504
15.5 Blockchain505
Exercices508
Chapitre 16 - Multimédia509
16.1 Définition509
16.2 Audionumérique510
16.3 Images513
16.3.1 Images fixes
513
16.3.2 Images animées et vidéo
523
16.4 Réalité virtuelle versus réalité améliorée527
16.5 Dispositifs d'interaction535
16.6 Multimédia et les cinq sens536
Chapitre 17 - Internet539
17.1 Internet539
17.1.1 Origines
539
17.1.2 Protocole TCP/IP
540
17.1.3 Accès à Internet
540
17.1.4 Outils d'Internet
542
17.2 World Wide Web542
17.2.1 Origines
542
17.2.2 Localisateurs URL
543
17.2.3 Langage HTML
544
17.2.4 Clients et serveurs web
546
17.2.5 Norme CGI
547
17.2.6 Intranet
548
17.3 Internet et Sécurité349
17.3.1 Clé de chiffrement, clé publique
550
17.3.2 Signature
551
17.3.3 Certificats
552
17.3.4 PKI
553
17.3.5 SSL
553
17.3.6 PGP [Pretty Good Privacy]
554
17.3.7 IPSec [Internet Protocol Security]
554
17.3.8 SSO [Single Sign On]
555
17.3.9 Menaces
555
17.4 Accès à l'information560
17.4.1 Guides spécialisés
560
17.4.2 Hiérarchies thématiques
560
17.4.3 Moteurs de recherche
561
17.4.4 Agents intelligents
562
17.4.5 Le web sémantique
562
17.5 Programmation et Internet563
17.5.1 Langage Java
564
17.5.2 PHP
565
17.5.3 JavaScript
565
17.5.4 Norme CORBA
566
17.6 L'Internet des objets566
17.6.1 Développement rapide des objets connectés
566
17.6.2 Technologies sans fil
567
17.6.3 Exemples de technologies sans fil
568
Exercices570
Conclusion571
Documents photographiques573
Ouvrages recommandés579
Glossaire581
Index595