Post on 04-Apr-2015
1
Introduction à laMicro-informatique
Eric T. KOUAMerickouam@gmail.com
octobre 2005
2
• Notions de base sur l’informatique
• Culture générale de l’ingénieur « SI »
Ce cours n’est qu’un rapide panorama :
– beaucoup de notions seront approfondies durant
votre cursus (programmation, archi, système...)
– à vous d’être curieux pour le reste !
Objectifs
3
Quelques définitions (1/3)
InformationRenseignement élémentaire susceptible d’être transmis
et conservé grâce à un support et un code. Une fois codée, elle devient une donnée.
Exemple de données/information?
Informatique (1962, information et automatique)Technique du traitement automatique de l’information
au moyen d’ordinateurs.Science du traitement rationnel de l’information.
Science ou technique ?
4
Quelques définitions (2/3)
OrdinateurMachine capable d'effectuer automatiquement des
opérations arithmétiques et logiques (à des fins scientifiques, administratives, comptables, etc.) à partir de programmes définissant la séquence de ces opérations.
RéseauEnsemble d'équipements reliés les uns aux autres par
des câbles ou des faisceaux hertziens, afin qu'ils puissent échanger, distribuer ou diffuser des informations et partager différentes ressources.
5
Quelques définitions (3/3)
InternetRéseau informatique mondial constitué d’un ensemble
de réseaux nationaux, régionaux et privés, reliés par le protocole TCP/IP.
Ces réseaux coopèrent pour offrir une interface unique (DNS, routage…)
Applications de l’Internet ?
Bit (Binary digit)Unité élémentaire d’information (codée), ne prenant
que 2 valeurs différentes (ex: 0 ou 1) et pouvant être composée pour coder des information plus complexes
6
Unités de mesures… (1/2)
• L’unité de quantité d’information codée est le bit. 1 octet = 8 bits
• En Anglais, ne pas confondre « bit » et « byte »– Qu’est-ce qu’un byte?
Le système international des poids et mesures ne normalise pas le bit et ses multiples! Donc gare aux confusions…
7
Unités de mesures… (2/2)
• On considère souvent les multiples selon une base binaire et non une base décimale.
• Norme internationale (bureau des poids et mesures) 1 kilo = 1000, 1 Mega = 106, 1 Giga = 109…
• Usage en informatique1 Kilo = 1024, 1 Mega = 1024 Kilo = 220, 1 Giga = 230…
• Terminologie CEI (Commission électrotechnique internationale, rarement appliquée malheureusement)
1 Kibi = « 1 Kilo Binaire » = 210 = 1024 Abbrév: Ki
1 Mébi = « 1 Méga Binaire » = 220 = 1 048 576 Abbrév: Mi…
Exemple: 1 Kibi-octet = 1024 octets
8
Pré-histoire et Histoire de l’Informatique
9
Calculateurs mécaniques (1/4)
1643 Blaise Pascal invente la Pascaline, machine à faire les additions, soustractions et a convertir les monnaies
Lorsqu’un cadran fait un tour complet, le cadran suivant est incrémenté (retenue automatique)
10
Calculateurs mécaniques (2/4)
1679 Leibnitz améliore la Pascaline, en y ajoutant la multiplication et la division : la calculette est née!
Pose les bases de l’arithmétique binaire
11
Calculateurs mécaniques (3/4)
1820 Charles-Xavier Thomas de Colmar invente l’arithmomètre. Portable, pratique et facile a utiliser : 1500 exemplaires en 30 ans
12
Calculateurs mécaniques (4/4)
1890 Automatisation du recensement américain grâce à la tabulatrice à cartes perforées de Hollerith.
Inspirée des métiers à tisser Jacquard + électricité
Création de la « Tabulated Machine Company »
Plein de calculateurs mécaniques jusqu’aux années 1950 !
13
XIXème siècle
Boole : bases de la logique binaire (1854)
(2 valeurs de vérité, 4 opérations de base)
Babbage : machine a différences
calcul des éphémérides grâce a une suite d’additions et de soustractions
purement mécanique
sortie : gravure d’une plaque de cuivre !
Calcul sophistiqué mais machine spécialisée
14
La Machine Analytique (1/2)
1833, Babbage : « un calculateur universel »
1. Entrée (programme)2. Unité de commande3. « Magasin » (mémoire)4. « Moulin » (calcul
élémentaire, UAL)5. Sortie
15
La Machine Analytique (2/2)
Une conception trop en avance! Problèmes de technologie : la machine ne fonctionna jamais.
Assisté de Lady Ada Lovelace, première programmeuse!
16
Les prémisses…
1906 invention du « tube à vide » (interrupteur électronique)
1936 Alan Turing théorise un calculateur programmable
Zuse construit le 1er calculateur à relais
1938 Claude Shannon invente le bit (binary digit)
1944 Aiken construit la machine analytique avec des
relais électromécaniques (1 opération / 6 secondes)
17
Deuxième Guerre Mondiale
Le défi Enigma (1943)• décryptage des communications des sous-marins
allemands par l’armée britannique• construction et utilisation de Colossus, conçu par le
mathématicien Alan Turing• avantage décisif pour la marine• technologie secrète pdt 30 ans
Premier ordinateur électronique !
18
Deuxième Guerre Mondiale (suite!)
ENIAC (1946, Mauchley et Eckert)• Electronic Numerical Integrator And Computer• Calculs balistiques pour l’armée américaine• 42 armoires de 3m de haut, 80m², 174kW• 18000 tubes à vide, 1500 relais• Programmation par « câblage » et 6000
commutateurs• 330 multiplications/s• Publication de l’ENIAC• Premier « bug »
19
Premier bilan
ENIAC (1946, Mauchley et Eckert)• Ordinateurs électroniques• Arithmétique décimale• Programmes câblés• Architecture très complexe
20
John Von Neumann
Mathématicien génial ayant participé à l’ENIAC
Proposition de Von Neumann
= Représentation numérique des programmes
+ Arithmétique binaire
+ Architecture en quatre parties
Mémoire (données et programme), UAL, UC, E/S
A la base de (presque) tous les ordinateurs modernes!
21
Pourquoi le binaire? (1/2)
1 chiffre = un état électrique « tout ou rien » (simple, fiable)
Opérations logiques faciles à réaliser électroniquement
ET : série
OU : parallèle
NON : inversion d’état
22
Pourquoi le binaire? (2/2)
Les nombres se représentent facilement en binaire.
Opérations arithmétiques réalisables grâce aux opérations logiques.
Exemple : l’addition (13+6 = 19)
1 1 0 1
+ 0 1 1 0
= 1 0 0 1 1
R
+ A
+ B
= R’ S
S = (A B) R
R’ = A.B + R.(A B)
23
La suite…
1947 Le transistor (Bell labs, Shockley, Brattain et
Bardeen)
1950 L’assembleur remplace la programmation
binaire
1958 Circuit intégré ou « puce » (Robert Noyce)
1964 System/360 d’IBM: création d’une gamme
d’ordinateurs compatibles (de 33000 +/s à 2,5M+/s)
24
Le 1er microprocesseur
1971 Intel intègre sur une seule puce l’« unité
centrale » (unité de contrôle, UAL et registres)
Petit nom : I 4004Caractéristiques : 12mm², 2300 transistors 10µm
16 broches, 108KHz4 bits
Début des micro-ordinateurs
25
Microordinateurs
1973 Grenelle et Truong [Efrei59] créent le premier
micro-ordinateur pour l’INRA: le MICRAL
1975 Création de Microsoft (Paul Allen et Bill
Gates)
1976 Apple I (Steve Jobs et Steve Wozniak)
26
Hégémonie du PC
1981 IBM (en retard!) lance son micro-ordinateur,
baptisé IBM PC (Personal Computer), basé sur le
processeur Intel 8088 4,77MHz, 16 Ko de mémoire
vive, un lecteur 5"1/4… + MS-DOS !
« poids d’IBM » : standard industriel !
1983 Arrivée des « compatibles PC »
1985 IBM perd le contrôle du marché PC!
Actuellement Architecture « Wintel »
27
Evolution des Microprocesseurs
1971 4004 108 kHz 2.300 transistors 10µm
1978 8086 4,77 MHz 29.000 tr 3µm
1982 80286 12 MHz 134.000 tr 1,5µm
1985 80386 16 MHz 275.000 tr 1,5µm
1989 80486 25 MHz 1,2 Mtr 1µm
2002 Pentium 41,7 GHz 42 Mtr 0,18µm
2004 Pentium M 2 GHz 140 Mtr 0,09µm
28
De la puissance des machines
ENIAC Cray 1 Pentium 4
1946 1976 2002 (2GHz)
330 Flops 160 MFlops > 1000 MFlops
? 8 M$ 830 $
174 kW 60 kW 75 W
De plus en plus rapides, de moins en moins coûteuses
29
La loi de Moore
« Le nombre de transistors intégrés sur une puce double tous les 18 mois. » (Gordon Moore, 1965)
• Des processeurs et mémoires de plus en plus puissants, de moins en moins chers
• Jusqu’à quand ?... 2010 ?... 2020 ?• Économiquement : cercle vertueux
MAIS : première loi de Nathan sur les logiciels (et leurs utilisateurs…)
« loi » de Gates… gare aux prédictions!
30
Où est l’informatique maintenant ?
Partout !
Entreprises : comptabilité, gestion des ressources
Personnelle : budget, jeux, bureautique
Applications critiques : transports, nucléaire, spatial…
Et aussi : voitures, électroménager « intelligent », cartes à puces, téléphones portables, PDA...
31
Programmation
32
Ainsi parlait Dijkstra… (1930-2002)
« Alan Turing thought about criteria to settle the question of whether machines can think, a question of which we now know that it is about as relevant as the question of whether submarines can swim. »
« Computer Science is no more about computers than astronomy is about telescopes. »
33
Programmation
Un ordinateur est fait pour être programmé : il faut lui dire ce qu’il doit faire
L’humain programme la séquence des opérations à effectuer, l’ordinateur exécute.
L’exécution est un processus automatique, « facile », mais rapide et fiable
34
Qu’est-ce qu’un processeur sait faire ?
1. Lire et écrire en mémoire (RAM, graphique, E/S)2. +, -, , /, logique binaire...3. Passer à l’instruction suivante4. Aller directement à une autre instruction5. Aller à une autre instruction SI …
bien peu… mais très rapidement et sans erreur
35
Que programmer ?
Programme = résolution d’un problèmePour chaque type de problème on conçoit un
algorithme
Algorithme : méthode détaillée de résolution d’un problème.« Ensemble des règles opératoires nécessaires à l’accomplissement d’une tâche. »
36
Algorithmes : exemples (1/4)
Calcul du maximum de a et b
Si a est plus grand que b alors rendre a
Sinon rendre b
et si a = b ?
37
Algorithmes : exemples (2/4)
Calcul de la racine carrée de x
Exercice : x = 17 (ne garder que 2 décimales)
38
Algorithmes (3/4)
Vous connaissez des algorithmes pour…
1. Maths : +, -, , , résolution d’équations 1er et 2ème degrés…
2. Vie quotidienne…
L’algorithme type : la recette de cuisine (ingrédients, produit, étapes, sous-étapes, savoir-faire)
39
Algorithmes : bases (4/4)
Variable : stocke une valeur à la fois (affectation/lecture)
Séquence : suite d’instructions à exécuter
Boucle : ensemble d’instructions à répéter
Condition : test d’une propriété booléenne, deux suites possibles (« si vrai » et « si faux »)
Sous-programme/fonction : étape séparée, porte un nom, a des paramètres et peut renvoyer des résultats
cf. le cours de programmation en C bientôt !
40
Programmer...
Mettre en œuvre un algorithme (implémentation)
L’algorithme doit être suffisamment détaillé pour être au niveau de la machine
Il doit être écrit comme une suite d’instructions pour le processeur
code binaire !
Non mais ça va pas non !!!!
41
Langage de programmation
Terrain d’entente entre l’ordinateur et le programmeur pour spécifier les tâches à faire
Programmeur : langue natale (+ 1 ou 2…)Ordinateur : langage binaire (« machine »)
Langage : mots-clés, ensemble de règles de syntaxe et de grammaire. Traduit en langage machine
42
Langages de programmation
Assembleur (1950) : « bas-niveau » (une instruction en assembleur = une instruction processeur) mais plus facile à utiliser (mnémoniques). Peu lisible
Une instruction assembleur =une opération (que faire?)une ou deux opérandes (sur quoi?)
Ex : ADD AX, BX (AX + BX, résultat dans AX)
43
Langages impératifs haut niveau
Programmes séquentiels « Von Neumann »
Syntaxe plus abstraite (indépendante de l’UC)
1 instruction = multiples instructions processeur.
Premier : Fortran (Formula Translation), maths
Best of: Pascal, C (le standard)... Cobol encore
z := 1; repeat y := z ; z := 0.5 * ( y + x / y ) ;until ( abs(y - z) < erreur )
44
Compilation & Assemblage
Le processeur ne connaît que le « code machine » (binaire)
Il faut traduire le programme en code machine : compilation(s) & assemblage
A chaque « couche » on gagne en puissance mais on perd en rapidité
Programmehaut-niveau
codeassembleur
code machine
45
Autres paradigmes (1/4)
Résoudre certains problèmes raisonner Se libérer du « modèle d’exécution » Von Neumann
Langages fonctionnels : programme = fonction, compositions de fonction, récursion
Proche du langage mathématique : facilite l’approche de problèmes réputés complexes
Best of: LISP (historique), Caml/Ocaml (le meilleur!)
46
Autres paradigmes (2/4)
Langages logiques : programme = « faits » et règles
Le programme décrit un « univers » (connaissances)On cherche ensuite à prouver quelque chose dans
cet « univers » : basé sur la logique mathématiqueEx : Prolog
Extension importante : contraintes numériques
Utilisation : intelligence artificielle, manipulation de données symboliques complexes
47
Autres paradigmes (3/4)
parent(jean,marie).parent(jean,yann).homme(jean).homme(yann).frere(X,Y):- parent(Z,X), parent(Z,Y), homme(X).
?- frere(A, B).
A = yann, B = marie;A = yann, B = yann.
48
Autres paradigmes (4/4)
Langages de spécification formels Spécification en langage mathématique : pas de phrase! On exprime mathématiquement ce qui doit être garanti On passe de la spécification au programme par une suite
d’opérations complexes et codifiées. Tout est prouvé mathématiquement Très fastidieux et réservés à des experts
Utilisation : applications « critiques » à fort enjeuExemples : méthode B, Coq, PVS...Application récente : Météor (RATP/Matra Transport)
49
Choix du langage
A chaque problème correspond un ou plusieurs langages adaptés.
Un programmeur doit maîtriser plusieurs langages différents !
Critères de choix : connaissance, facilité de développement, rapidité d’exécution, facilité de maintenance
Langages les plus répandus : C, C++, Java… Cobol et Fortran !
50
Vie d’un logiciel
Spécification : qu’est-ce qu’on veut faire ?
Analyse : comment va-t-on le faire
Développement : programmer ce qui est spécifié en se basant sur l’analyse
Test : vérifier (et corriger) ce qui est programmé ( confiance certitude)
Utilisation Maintenance
51
Génie Logiciel
Juste pour avoir une idée de ce qui vous attend!
52
Musée des horreurs…
L’informatique, ce n’est pas si simple que ça!
• Anecdotes de Michael Leuschel (Univ. de Southhampton)
• 20.000 lieues sous les mers!– La « safe torpedo »
53
Description d’unmicro-ordinateur
54
Configuration externe (base)
Ce que l’on voit de l’extérieur…• Un boîtier (abusivement « unité centrale »)• Un clavier• Une souris• Un moniteur• Lecteurs de disquettes, CD-ROM, DVD…• Un ensemble de prises (connecteurs) à
l’arrière
55
Configuration externe (options)
• Imprimante• Scanner• Graveur CD-ROM ou CD-RW• Lecteur ZIP ou DAT (archivage)• Modem• Webcam• Hauts-parleurs
Et plein d’autres choses!
56
Configuration interne
La carte mère• Le processeur (CPU ou unité centrale)• Horloge• RAM (barrettes)• Bus (communication) : ISA, PCI, SCSI, AGP, USB…
Cartes d’extension• Carte vidéo (contrôle de l’écran, sous-traitance)• Carte son• Contrôleur de disque…
57
Architecture générale
• Unité centrale• Mémoire « principale »• Périphériques (mémoires secondaires,
moniteur, clavier, carte son…) et leur contrôleur
• Bus (communications entre les éléments)
(cf. schéma)
58
Unité centrale
• Il s’agit du microprocesseur• Leader : Intel, outsider : AMD• Ventilateur pour le refroidir• + de 5 millions de transistors• Très haute technologie• Travail par cycle, cadencé par une horloge• UAL (calculs), UCT (traitement), registres
59
Carte mère
le microprocesseur et l'horloge
un coprocesseur dédié aux calculs arithmétiques
la mémoire vive
les bus (lesquels ?)
les slots d'extension (fentes) pour accueillir les cartes
60
Le(s) bus (1/3)
• Relient entre eux les éléments de l’ordinateur• 3 parties : données, adresse, commande• Plusieurs types de bus :
– 1981 : ISA, bus 8 bits, 20 bits d’adresse– EISA : 16 bits et + de bits d’adresse! 5
Mo/s– Exigences du multimédia : bus PCI conçu
par Intel (domaine public) : grand succès. 130 Mo/s max
61
Le(s) bus (2/3)
Bus PCI : performant mais coûteuxBus USB (Universal Serial Bus) : pour les
périphériques « peu rapides », conception concertée entre plusieurs industriels (Compaq, IBM, Intel, Microsoft…), faible coût, bus et alimentation électrique intégrés dans le même câble 1,5 Mo/s
Bus AGP : rapides (graphique) 2Go/sA chaque type de périphérique son bus !
62
Le(s) bus (3/3)
Bus PCI : performant mais coûteux
Bus USB (Universal Serial Bus) : pour les périphériques « peu rapides », conception concertée entre plusieurs industriels (Compaq, IBM, Intel, Microsoft…), faible coût, bus et alimentation électrique intégrés dans le même câble 1,5 Mo/s
Bus AGP : rapides (graphique) 2Go/s
A chaque type de périphérique son bus !
IEEE1394 (Firewire): haute performance (< 3200 Mbit/s)
63
Exemple: l’USB
• Apporte l’alimentation électrique (5V, 100mA)• Bus série• Possibilité de chaîner 127 périphériques
(système de « jeton », découpage en ms)
• Branchement à chaud: détection du périphérique, attribution d’un numéro (@), identification
• USB 1, 1.1 (12Mb/s), 2
64
standard résolution couleurs datemonochrome 80 x 25 caractères 1 x
Hercules 720 x 350 pixels 1 xCGA 320 x 200 pixels 4 1981EGA 640 x 350 pixels 16 1985VGA 640 x 480 pixels 16 à 256 1987
8514/A 1024 x 768 pixels 256 1987XGA 1024 x 768 pixels 65536 1990
SVGA 1024 x 768 pixels et + 256/65536/16 M 1990UXGA 1600x1200 16 M
Carte graphique
L’affichage sur l’écran se fait via une carte disposant de sa propre mémoire. Plusieurs normes :
65
Communications
Port série : envoi des octets bit par bit
Port parallèle : envoi octet par octet
66
Mémoires de masse
Disques durs, lecteur CD-ROM, DVD…
Contrôleurs spécialisés : IDE (< 528Mo), EIDE, SCSI-1 (5 Mo/s), Ultra SCSI (40 Mo/s)
Cf. cours sur les mémoires
67
Réseau
• Un ordinateur peut être connecté à d’autres par l’intermédiaire d’un réseau
• Les données transitent d’un ordinateur à l’autre à l’aide d’un protocole (ex: TCP/IP)