1 introduction à la micro-informatique eric t. kouam erickouam@gmail.com octobre 2005

Post on 04-Apr-2015

103 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

top related