118
Chapitre 1 Historique et évolution des ordinateurs

Chapitre 1

Embed Size (px)

DESCRIPTION

Chapitre 1. Historique et évolution des ordinateurs. L'être humain a longtemps cherché à améliorer sa façon de calculer et ce, pour deux raisons : il est trop lent, et il se trompe souvent Dance qui suit, seront relatées les grandes dates liées à l’invention des calculateurs. - PowerPoint PPT Presentation

Citation preview

Page 1: Chapitre 1

Chapitre 1

Historique et évolution des ordinateurs

Page 2: Chapitre 1

L'être humain a longtemps cherché à améliorer sa façon de calculer et ce, pour deux raisons :

il est trop lent, et il se trompe souvent

Dance qui suit, seront relatées les grandes dates liées à l’invention des calculateurs.

Djamal Rebaïne 2

Page 3: Chapitre 1

Djamal Rebaïne 3

Repères historiques

Les premiers registres Boulier: vers 3500 av. J.C en Chine - Abaque: première tablette à calculs en

Mésopotamie

Page 4: Chapitre 1

Djamal Rebaïne 4

Pas d’amélioration jusqu’au 17ème siècle.1614: John Napier (Écosse) découvre les logarithmes: multiplications et la division transformées en une successions d’additions.

Règle à calcul

Page 5: Chapitre 1

Djamal Rebaïne 5

• 1620: mise en œuvre de cette invention au moyen de la règle à calcul.

Les machines à calculer1623: machine de Schickard (Allemagne):

fonctionnement mécanique basé sur le principe de tiges proportionnelles aux log. des nombres impliqués dans ces opérations.

Page 6: Chapitre 1

Djamal Rebaïne 6

• 1643: Pascaline de Pascal (France): fonctionnement mécanique à système de roues à ergot. Additions + soustractions et faisait aussi des reports.

• 1673: amélioration de la Pascaline par Leibniz (Allemagne). Effectue les quatre opérations de base + extraction de racines carrées. Non construite faute de moyens financiers.

Page 7: Chapitre 1

Machine de Schickard

Djamal Rebaïne 7

Page 8: Chapitre 1

Djamal Rebaïne 8

Pascaline

Page 9: Chapitre 1

Djamal Rebaïne 9

Machines à cartes perforées• 1801: industrie de textile (France) Jacquard

et Falcon• 1887: Hollerith (USA) machine à lire des

cartes (CENSUS MACHINE) utilisée dans le recensement aux USA.

Hollerith et sa trieuse électro-mécanique./

Page 10: Chapitre 1

Djamal Rebaïne 10

Ordinateur primitif1830: Charles Babbage – machine à différences- utilise les principes de report de la Pascaline combinés avec les cartes perforées de Jacquard.

Machine à différence de Babbage

Page 11: Chapitre 1

Djamal Rebaïne 11

• 1834: Charles Babbage- machine analytique- système de numérotation décimal; accepte des nombres de 50 chiffres et en résultat, un nombre de 100 chiffres (imprimé, cartes perforées, courbe) - projet non finalisé.

Cette machine réunissait déjà des fonctions automatiques essentielles: mémoire- dispositifs de calcul - fonction de commande et d’entrée-sortie

Page 12: Chapitre 1

Djamal Rebaïne 12

La machine analytique de C. Babbage

Page 13: Chapitre 1

Djamal Rebaïne 13

• 1930: L'Enigma et les Bombes Composée d'un clavier, de 26 lampes pour représenter l'alphabet et généralement de 3 rotors, l‘Enigma était destinée à l'origine à crypter des documents d'affaires.

• 1939 ABC par J. ATANASHOFF et Clifford BERRY. Ce calculateur a été le premier à utiliser le système binaire et était capable de résoudre des équations à 29 variables.

Page 14: Chapitre 1

Djamal Rebaïne 14

1941 Z3 par K. ZUSE. Composé de 2600 relais, d'un lecteur de

bandes et d'une console pour l'opérateur, sa mémoire pouvait contenir 64 nombres de 22 chiffres exprimés en virgule flottante. Il réalisait une multiplication en trois à cinq secondes.

Page 15: Chapitre 1

Djamal Rebaïne 15

1943 ASCC ou Harvard MARK 1 par H. AIKEN. Cette machine, construite en collaboration avec IBM, utilise un principe inspiré par les travaux de C. BABBAGE. Composée de 765 299 éléments, elle pesait 5 tonnes et avait besoin de plusieurs tonnes de glace par jour pour la refroidir. Ses performances et sa fiabilité étaient remarquables mais elle ne pouvait effectuer aucun saut conditionnel.

Page 16: Chapitre 1

Djamal Rebaïne 16

1943 Colossus I Composé de 1 500 lampes et d'un lecteur de bandes capable de lire 5000 caractères à la seconde. Ce calculateur électronique anglais a été conçu pour décoder les messages chiffrés par la machine de Lorentz allemande qui était un téléscripteur doté de rotors (utilisant un principe assez proche de l‘Enigma).

Page 17: Chapitre 1

Djamal Rebaïne 17

Colssus- 1943

Page 18: Chapitre 1

Djamal Rebaïne 18

1946 ENIAC, par J. ECKERT et J. MAUCHLY

(Electronic Numerical Integrator and Computer) Commandé par l'armée des États-Unis en 1943 pour effectuer les calculs de balistique, il remplaçait 200 personnes chargées auparavant de calculer les tables de tir. Il occupait 23 m³, pesait 30 tonnes, coûtait un million de dollars.

Page 19: Chapitre 1

Djamal Rebaïne 19

La machine ENIAC pesait 30 tonnes

Page 20: Chapitre 1

Djamal Rebaïne 20

La machine ENIAC est disposée en U de 6 mètres de largeur par 12 mètres de longueur.

Page 21: Chapitre 1

Djamal Rebaïne 21

1948: IBM SSEC, par Wallace Eckert (Selective Sequence Electronic Calculator) Ce calculateur composé de 20 000 relais et de 12 500 tubes a servi pour le calcul de tables de positions de la lune, mais a surtout été une vitrine technologique (il était d'ailleurs visible par le public) pour IBM.

Page 22: Chapitre 1

Djamal Rebaïne 22

1948: Manchester Mark 1 (ou Ferranti Mark I) Bâtie sur des plans de J. NEUMANN par une équipe anglaise. Ce prototype est le premier à disposer d'une unité de commande interne et à suivre un programme enregistré. C'est sur cette machine de 1300 tubes qu'est utilisée pour la première fois la mémoire à tubes Williams.

Page 23: Chapitre 1

Djamal Rebaïne 23

1949: EDSAC, par Maurice WILKES (Electronic Delay Storage Automatic Computer) Cet ordinateur numérique et électronique est basé sur l'architecture de J. NEUMANN. Composé de 3000 tubes et consommant 30KW, il utilise une mémoire de type "lignes de retard à mercure". Il s'agit d'une machine parfaitement opérationnelle qui a été construite dans un laboratoire de l'Université de Cambridge en Angleterre.

Page 24: Chapitre 1

Djamal Rebaïne 24

1951: Whirlwind Premier ordinateur "temps réel "

1955: Premier calculateur transistorisé: TRADIC

1960: PDP-1 (Programmed Data Processor) C'est le précurseur des "minis". Vendu pour $125 000 (une fraction du coût d'un ordinateur de l'époque) et livré sans logiciels, il était plutôt ciblé pour les scientifiques et les ingénieurs.

Page 25: Chapitre 1

Djamal Rebaïne 25

1959: IBM 1401: Utilisant des transistors et des mémoire à tores de ferrite, fourni avec un générateur d'applications (RPG) destiné à en faciliter l'utilisation, cet ordinateur a marqué une étape dans l'ère de la comptabilité. L'imprimante (1403) associée était d'une rapidité exceptionnelle (600 lignes par minutes !). IBM avait tablé sur un millier de ventes... plus de 12 000 exemplaires seront vendus

Page 26: Chapitre 1

Djamal Rebaïne 26

1964: IBM System/360: Alors que tous ses ordinateurs utilisaient des architectures et logiciels incompatibles entre eux, IBM décida d'investir plusieurs millions de dollars et de développer une gamme entièrement nouvelle : 6 ordinateurs et 44 périphériques, ayant des capacités différentes mais tous compatibles entre eux. La technologie utilisée, loin d'être innovante, était transistors et mémoire à tores.

Page 27: Chapitre 1

Djamal Rebaïne 27

1965: Premier mini-ordinateur diffusé massivement: PDP-8 de DEC

1973: Micral-N de R2E: C'est le premier micro-ordinateur du monde, il a été inventé par A. TRUONG, fondateur de R2E: une petite société française.

Page 28: Chapitre 1

Djamal Rebaïne 28

1973: l'Alto (renommé Xerox Star en 1981) de XEROX Ce prototype, pensé pour devenir le

bureau du futur, est un condensé des idées proposées par les chercheurs réunis par XEROX au Palo-Alto Research Center (PARC). Il est le premier à introduire l'idée de fenêtres et d'icônes que l'on peut gérer grâce à une souris. Principalement, en raison de son coût, cet ordinateur ne connaîtra qu'un succès d'estime.

Page 29: Chapitre 1

Djamal Rebaïne 29

1975: Altair 8800 de ED. ROBERTS (MITS) Il est considéré par les Américains comme

le premier micro-ordinateur du monde, bien que ce soit le Micral-N. Cependant, c'est pour l'Altair que sera le premier BASIC Microsoft.

1976: CRAY I: Créé par Saymour CRAY, c'est le premier ordinateur à architecture vectorielle.

Page 30: Chapitre 1

Djamal Rebaïne 30

1978: DEC VAX 11/780 (Virtual Address eXtension) Premier modèle de "supermini", cet ordinateur 32 bits pouvait exécuter des programmes écrits pour le PDP-11. Il avait aussi suffisamment de ressources pour supporter des applications qui étaient jusqu'ici réservées aux gros mainframes. Il reste aussi célèbre pour son système d'exploitation VMS

Page 31: Chapitre 1

Djamal Rebaïne 31

1982: Cray X-MP Composé de deux Cray I mis en parallèle, il est 3 fois plus puissant que celui-ci.

Page 32: Chapitre 1

Djamal Rebaïne 32

  1981: IBM-PC (Personnal Computer) Cet ordinateur, qui n'apporte aucune idée révolutionnaire, est la réaction du n°1 mondial face à la micro-informatique : Il était fait d'une accumulation de composants standards et de logiciels sous-traités (principalement auprès de Microsoft) dans le but de minimiser le temps nécessaire pour sa mise au point.

Page 33: Chapitre 1

Djamal Rebaïne 33

  1983: Lisa d'APPLE

Steve JOBS, très intéressé par l'Alto reprendra la plupart des idées de celui-ci pour le compte d'APPLE, en particulier la notion d'interface graphique (GUI) et l'utilisation de la souris. Cependant, ce micro-ordinateur ne connaîtra pas non plus de succès commercial.

Page 34: Chapitre 1

Djamal Rebaïne 34

1984: Amiga Utilisant un microprocesseur Motorola 680x0, ce micro-ordinateur reste parmi les leaders pour ce qui est du graphisme et de la musique.

1984: Macintosh d'APPLE. Basé sur le projet LISA, c'est l'ordinateur convivial par excellence: Son utilisation est très simple grâce à la souris et à la qualité de ses graphismes. Il devient au fil des années, et des différentes versions, l'autre grand standard (avec le PC d'IBM) du monde de la micro-informatique.

Page 35: Chapitre 1

Djamal Rebaïne 35

1985: Cray II : Miniaturisé, il est 10 fois plus puissant que son prédécesseur, le Cray I.

1986: The Connection Machine Premier ordinateur "massivement parallèle" composé de 16 000 processeurs.

1994: Paragon d'Intel. Coûtant 20 Millions de dollars, occupant un volume de 48m3, il est composé de 2000 processeurs et de 64 Giga-octets de mémoire. Il peut effectuer

Page 36: Chapitre 1

Djamal Rebaïne 36

150 milliards d'opérations en virgule flottante par seconde

1994: PowerMac d'APPLE

Basé sur le microprocesseur POWER-PC réalisé par Motorola en collaboration avec IBM, il était présenté comme le successeur commun du PC et du MAC. Cependant, malgré de très bonnes performances, il tarde à s'imposer.

Page 37: Chapitre 1

Djamal Rebaïne 37

1998: iMac d'APPLE L'iMac était l'ordinateur d'Apple pour le nouveau millénaire. Il a également marqué le retour d'Apple (et de MacOS) au devant de la scène. C'est l'ordinateur le plus original depuis le premier Mac de 1984: Design très particulier, écran et unité centrale intégrés dans un seul boîtier, ports USB et pas de

lecteur de disquette interne.

Page 38: Chapitre 1

Djamal Rebaïne 38

Ordinateur et changements technologiques

• Première génération: Tubes électroniques (lampes à vide)

• Deuxième génération: transistors

• Troisième génération: circuits intégrés

• Quatrième génération: microprocesseurs.

• Cinquième génération: intelligence artificielle.

Page 39: Chapitre 1

Djamal Rebaïne 39

Première génération1949-1957

• Ordinateur à cartes perforées et à bandes magnétiques

• Programmation physique en langage machine

• Appareils immenses, lourds, énergie élevée

• Utilisation de tubes à vide et à mémoires à tambour magnétique

• Prix élevé / capacité et performance.

Page 40: Chapitre 1

Djamal Rebaïne 40

Deuxième génération1958 - 1964

• Utilisation de transistors et des mémoires à ferrite.

• Utilisation de mémoires de masse pour le stockage périphérique.

• Temps d’accès moyen (de l’ordre de la micro-seconde).

• Fonctionnement séquentiel des systèmes de programmation (langages évolués).

Page 41: Chapitre 1

Djamal Rebaïne 41

Troisième génération1965-1971

• Miniaturisation des composants (circuits intégrés)

• Apparition des systèmes d’exploitation• Concepts de temps partagés• Machines polyvalentes et de capacité variée• Appareils modulaires et extensibles• Multitraitement (plusieurs programmes à la

fois)• Télétraitement (accès par téléphone)

Page 42: Chapitre 1

Djamal Rebaïne 42

Quatrième génération1971-1982

• Miniaturisation extrêmes des composants

• Apparition des microprocesseurs

• Diversification des champs d’application

• Apparition de la micro-informatique

• L’aspect logiciel prend le pas sur l’aspect matériel

Page 43: Chapitre 1

Djamal Rebaïne 43

Cinquième génération

• Miniaturisation des composants poussée à l’extrême

• Vitesse proche de celle de la lumière.• Nouvelle architecture physique• Possibilité de choix d’ordre des vecteurs

séquentiels à traiter• Vitesse de traitement augmentée jusqu’au

gigalips (Logical Inference: de 100 à 1000 instructions)

Page 44: Chapitre 1

Djamal Rebaïne 44

• Processeurs en parallèle

• Nouvelles structures et représentations des données.

• Ajout du traitement de l’aspect sémantique à celui de l’aspect syntaxique de l’information

• Ordinateurs à photons

Page 45: Chapitre 1

Djamal Rebaïne 45

Alternatives à cette classification

1- architectures et conception (PC compatibles vs. Apple)

2- super-ordinateurs: SIMD vs. MIMD

3- RISC vs. CISC

4- taille: super, gros, mini, station ou micro ordinateurs

5- …, etc.

Page 46: Chapitre 1

Une petite virée vers le parallélisme

Une machine parallèle est essentiellement une machine qui possède un ensemble de processeurs qui coopèrent et communiquent ensemble.

Djamal Rebaïne 46

Page 47: Chapitre 1

Djamal Rebaïne 47

On distingue classiquement quatre types principaux de parallélisme: SISD, SIMD, MISD et MIMD. De nos jours cette classification peut paraître un peu artificielle car le moindre micro-processeur courant inclut lui-même plusieurs formes de micro-parallélisme. Elle permet néanmoins d'expliquer les bases de l'architectures des ordinateurs séquentiels et parallèles.

Page 48: Chapitre 1

Djamal Rebaïne 48

Machine SISDUne machine SISD (Single Instruction Single Data) est ce que l'on appelle d'habitude une machine de Von Neuman. Une seule instruction est exécutée et une seule donnée (simple, non-structurée) est traitée à tout instant.

Page 49: Chapitre 1

Djamal Rebaïne 49

s'exécute sur une machine séquentielle en faisant les additions

A[1]+A[2], A[2]+A[3], etc., A[99]+A[100]

à la suite les unes des autres

Par exemple, le code suivant, int A[100]; for (i=1;100>i;i++) A[i]=A[i]+A[i+1

Page 50: Chapitre 1

Djamal Rebaïne 50

Machines MISD

.

                                                         

.

Page 51: Chapitre 1

Djamal Rebaïne 51

Plusieurs processeurs, chacun avec sa propre unité de contrôle, se partagent une mémoire commune.

Il y a N flots d'instructions (algorithmes / programmes) et un flot de données. Chaque processeur effectue une opération différente, au même moment sur la même donnée.

Il n'existe aucune machine construite sur ce modèle. C'est un modèle théorique sans intérêt

Page 52: Chapitre 1

Djamal Rebaïne 52

Machines SIMD

Page 53: Chapitre 1

Djamal Rebaïne 53

N processeurs identiques opèrent sous contrôle d'un flot d'instructions unique généré par une unité centrale unique (pour faciliter la compréhension, on peut supposer que tous les processeurs exécutent le même programme). Il y a N flots de données, un par processeur, et des données différentes peuvent ainsi être utilisées dans chaque processeur. Fonctionnellement, on peut avoir les deux schémas précédents (mémoire partagée ou distribuée) :

Page 54: Chapitre 1

Djamal Rebaïne 54

• En fait il n'existe pas de machine SIMD à mémoire commune. Il s'agit toujours de processeurs très élémentaires en très grand nombre (typiquement plusieurs centaines).

• Les processeurs opèrent de façon synchrone et une horloge globale est utilisée pour effectuer les opérations en mode «lockstep», c’est-à-dire à chaque tick de l'horloge globale,tous les processeurs exécutent la même instruction, chacun sur une donnée différente.

• Les machines SIMD sont particulièrement utiles pour traiter les problèmes à structure régulière où la même instruction s'applique à des sous-ensembles de données.

Page 55: Chapitre 1

Djamal Rebaïne 55

EXEMPLE Addition de deux matrices A + B = C.Soient deux matrices A et B d'ordre 2, et 4 processeurs.

A11 + B11 = C11 ... A12 + B12 = C12 A21 + B21 = C21 ... A22 + B22 = C22

La même instruction est envoyée aux 4 processeurs (ajouter les 2 nombres) et tous les processeurs exécutent cette instruction simultanément.

Page 56: Chapitre 1

Djamal Rebaïne 56

• Un pas de temps suffit contre quatre sur une machine séquentielle. Une instruction peut être simple (eg addition de 2 nombres) ou complexe (eg fusion de 2 listes). De la même façon les données peuvent être simples (un nombre) ou complexes (plusieurs nombres). Il peut parfois être nécessaire de limiter l'exécution de l'instruction a un sous ensemble des processeurs i.e. seulement certaines données ont besoin d'être traitées par cette instruction. • Cette information peut être codée par un flag sur chaque processeur qui indique si :1. le processeur est actif (exécute l'instruction) 2. le processeur est inactif (attend la prochaine instruction

Page 57: Chapitre 1

Djamal Rebaïne 57

Machines MIMDC'est la classe la plus générale et la plus puissante de toute cette classification.Il y a N processeurs, N flots d'instructions et N flots de données. Et on peut aussi avoir fonctionnellement les deux schemas suivants (mémoire partagée ou distribuée.

Page 58: Chapitre 1

Djamal Rebaïne 58

• Chaque processeur exécute un flot d'instructions généré par sa propre unité de contrôle• Chaque processeur opère de façon asynchrone en effectuant des opérations différentes sur des données différentes au même instant. • La communication de données ou de résultats entre les processeurs peut se faire à travers une mémoire commune ou un réseau d’interconnexion.

Page 59: Chapitre 1

Djamal Rebaïne 59

Page 60: Chapitre 1

CISC vs. RISC

Djamal Rebaïne 60

Les processeurs généraux actuels se répartissent en deux grandes catégories appelées : • CISC : Complex Instruction Set Computer , et • RISC : Reduced Instruction Set Computer.

Les processeurs de ces deux catégories se distinguent par la conception de leurs jeux d'instructions. • Les processeurs CISC possèdent un jeu étendu d'instructions complexes. Chacune de ces instructions peut effectuer plusieurs opérations élémentaires comme charger une valeur en mémoire, faire une opération arithmétique et ranger le résultat en mémoire.

Page 61: Chapitre 1

Djamal Rebaïne 61

• Les processeurs RISC possèdent un jeu d'instructions réduit où chaque instruction effectue une seule opération élémentaire. • Le jeu d'instructions d'un processeur RISC est plus uniforme. Toutes les instructions sont codées sur la même taille et toutes s'exécutent dans le même temps (un cycle d'horloge en général).

Page 62: Chapitre 1

Djamal Rebaïne 62

La répartition des principaux processeurs dans les deux catégories est la suivante.

CISC RISC

S/360 (IBM)VAX (DEC)68xx, 680x0 (Motorola)

x86, Pentium (Intel)

Alpha (DEC)PowerPC

(Motorola)MIPS

PA-RISC (Hewlett-Packard)SPARC

Page 63: Chapitre 1

Raisons ?

• Dans les premiers temps de l'informatique, les ordinateurs étaient programmés en langage machine ou en assembleur. Pour faciliter la programmation, les concepteurs de micro-processeurs dotèrent ceux-ci d'instructions de plus en plus complexes permettant aux programmeurs de coder de manière plus concise et plus efficace les programmes.

Djamal Rebaïne 63

Page 64: Chapitre 1

• Lorsque les premiers langages de haut niveau remplacèrent l'assembleur, cette tendance s'accentua. Les concepteurs de micro-processeurs s'efforcèrent de combler le fossé entre le langage machine et les langages de haut niveau. Des instructions proches des constructions typiques des langages de haut niveau furent ajoutées aux micro-processeurs. L'idée était de faciliter la compilation des langages de haut niveau au détriment de la complexité des micro-processeurs.

Djamal Rebaïne 64

Page 65: Chapitre 1

• Pour réduire le nombre d'instructions nécessaires à un programme, il faut que chaque instruction fasse plusieurs opérations élémentaires. La lenteur relative de la mémoire pousse aussi à avoir des instructions complexes. Il n'y a alors moins de codes d'instructions à lire en mémoire et le programme en est accéléré.

• Comme la densité d'intégration des transistors était aible, les micro-processeurs possédaient très peu de registres internes.

Djamal Rebaïne 65

Page 66: Chapitre 1

• De plus, un grand nombre de registres auraient nécessité plus de bits pour coder les instructions. Pour compenser cette lacune en registres, certaines instructions étaient capables, par exemple, de charger deux valeurs en mémoire, de faire la somme et de ranger le résultat en mémoire. Il y avait de nombreux modes d'adressage et tous les modes d'adressages étaient possibles à toutes les instructions.

Djamal Rebaïne 66

Page 67: Chapitre 1

• La complexification des jeux d'instructions a pour effet de compliquer notablement la phase de décodage des instructions. On constate que sur certains micro-processeurs à jeu d'instructions complexes, la moitié des transistors sur la puce de silicium est consacrée au décodage des instructions et au contrôle de l'exécution de celles-ci.

Djamal Rebaïne 67

Page 68: Chapitre 1

• Lorsque le jeu d'instructions est complexe, la plupart des compilateurs n'utilisent pas tout le jeu d'instructions. Il se contentent souvent d'un nombre réduit d'instructions. Le résultat est que les instructions les plus puissantes sont très rarement utilisées.

Djamal Rebaïne 68

Page 69: Chapitre 1

• On arrive alors au paradoxe suivant. Les instructions complexes qui ne sont pratiquement pas utilisées ralentissent les instructions simples qui sont utilisées la plupart du temps.

• Des études statistiques ont montré les faits suivants.

- 80 % des programmes n'utilisent que 20 % du jeu d'instructions.

Djamal Rebaïne 69

Page 70: Chapitre 1

- Les instructions les plus utilisées sont : – les instructions de chargement et de rangement,– les appels de sous-routines.

- Les appels de fonctions sont très gourmands en temps : sauvegarde et restitution du contexte et passage des paramètres et de la valeur de retour.

- 80 % des variables locales sont des entiers.

- 90 % des structures complexes sont des variables globales.

Djamal Rebaïne 70

Page 71: Chapitre 1

- La profondeur maximale d'appels imbriqués et en moyenne de 8. Une profondeur plus importante ne se rencontre que dans 1 % des cas.

• L'apparition de l'architecture RISC : volonté de favoriser les instructions simples qui constituent la grande partie des programmes: supprimer les instructions complexes et les modes d'adressage élaborés afin d'augmenter la fréquence d'horloge et d'augmenter la vitesse d'exécution de toutes les instructions.

Djamal Rebaïne 71

Page 72: Chapitre 1

• La philosophie essentielle des processeurs RISC est d'avoir un nombre important de registres. Des instructions de chargement et de rangement avec quelques modes d'adressage sont les seules à faire les échanges avec la mémoire. Toutes les autres instructions travaillent uniquement avec les registres.

Djamal Rebaïne 72

Page 73: Chapitre 1

• L'apparition des micro-processeurs RISC est en partie due à l'augmentation de la mémoire disponible sur les ordinateurs. Celle-ci n'est plus une limitation à la taille des programmes. Un autre facteur est le fossé entre la vitesse des processeurs et celle de la mémoire. Les processeurs ont une fréquence d'horloge élevée par rapport à la vitesse de la mémoire. Chaque accès à la mémoire les pénalise.

Djamal Rebaïne 73

Page 74: Chapitre 1

• Ceci accentue le rôle d'un nombre important de registres qui évitent les accès à la mémoire. La lenteur de la mémoire est en partie compensée par la présence de cache fait de mémoires rapides. Ceux-ci sont très efficaces pour lire les instructions des programmes puisque ces accès à la mémoire se font à des cases mémoire contiguës.

Djamal Rebaïne 74

Page 75: Chapitre 1

Évolution de la programmation

Djamal Rebaïne 75

On distingue 4 générations de langages de programmation plus au moins deux nouvelles tendances..1 Langages machine.2 Langages symboliques.3 Langages indépendants du matériel, comme Basic, C, Cobol, Algol...4 Langages conçus pour décrire le problème, comme Simula.5  Les langages à programmation logique prétendant représenter la cinquième génération, mais leur utilisation est marginale.  La cinquième génération pourrait être celle des langages Internet, donc fonctionnant sur toute machine et compilés en code intermédiaire (dit virtuel).6 Les langages "Markup" inspirés de XML sont la dernière tendance, ils intègrent le code et les données sous une forme extensible.

Page 76: Chapitre 1

Djamal Rebaïne 76

• Ada Byron (1816-1852): première programmatrice pour la machine de Babbage

• Adèle Goldstine: programme pour ENIAC en 1946.

• Les premiers programmes en Langage machine (0 et 1)

• Langage symboliques: assembleurs

Les grands dates

Page 77: Chapitre 1

Djamal Rebaïne 77

• Fortran (Formula Translator) vers 1950 par J. Backus.

• Apparurent aussi des langages spécialisés comme le GPSS (simulation) et APT (commande de machines à outils)

• Vers la fin de 1950:

- Algol: notion de blocs

Page 78: Chapitre 1

Djamal Rebaïne 78

• Cobol: applications de gestion.• PL/1: dans le but de traiter plusieurs genres

d’applications (universels), apparurent ensuite les langages Pascal, Modula, C, C++, JAVA, ...

• La micro-informatique a répandu le Basic• Langages fonctionnels (Lisp): utilisé dans

le traitement des expressions symboliques• Langages Logiques (Prolog): intelligence

artificielle; pouvoir d’inférence• Langages interrogatifs (bases de donnée)

tels SQL

Page 79: Chapitre 1

Djamal Rebaïne 79

• D’autres types de langages sont apparus, tels ceux de description: le langage HTML (Hyper Text Markup Language: permet de décrire un document dans le but de le visionner dans un navigateur internet).

• Il existe aussi des langages permettant de piloter d’autres éléments tels les langages de script dans UNIX.

Page 80: Chapitre 1

Djamal Rebaïne 80

Structure des ordinateursJohn Von Neumann est à l'origine (1946)

d'un modèle de machine universelle (non spécialisée) qui caractérise les machines possédant les éléments suivants :

• une mémoire contenant programme (instructions) et données,

• une unité arithmétique et logique (UAL ou ALU en anglais),

• une unité de commande (UC).

Page 81: Chapitre 1

Djamal Rebaïne 81

• une unité permettant l'échange d'information avec les périphériques : l'unité d'entrée/sortie (E/S ou I/O),

( clavier, lecteur de cartes perforées, ruban, ...

écran, imprimante, cartes perforées, ....)

Page 82: Chapitre 1

Von Neumann met de l'avant cinq principes

1. Comme la machine est d'abord un ordinateur, elle aura le plus souvent à effectuer les opérations arithmétiques élémentaires. Elle devra donc contenir des organes spécialisés seulement pour ces opérations, i.e. l'addition, la soustraction, la multiplication et la division.

Djamal Rebaïne 82

Page 83: Chapitre 1

Djamal Rebaïne 83

2. Le contrôle logique de la machine (l'ordonnancement correct de ses opérations) peut être mieux effectué par un organe de contrôle central.

3. Une machine qui a à effectuer des séquences longues et compliquées d'opérations doit avoir une capacité de mémoire considérable.

Page 84: Chapitre 1

Djamal Rebaïne 84

4. La machine doit avoir des organes pour transférer l'information du médium d'enregistrement externe de la machine vers la partie arithmétique centrale et la partie de contrôle centrale et la mémoire. Ces organes constituent son organe d'entrée.

5. La machine doit avoir des organes pour transférer l'information de la partie arithmétique centrale et la partie de contrôle centrale et la mémoire vers le médium d'enregistrement externe. Ces organes constituent son organe de sortie.

Page 85: Chapitre 1

Djamal Rebaïne 85

Caractéristiques de la machine de Von Neumann

• Machine contrôlée par programme• Programme enregistré en mémoire• Instruction du programme codée sous forme

binaire• Le programme peut modifier ses

instructions• Exécution des instructions en séquence• Existence d’instructions de rupture de

séquence.

Page 86: Chapitre 1

Djamal Rebaïne 86

Schéma de la machine de Von Neuman

UAL = unité arithmétique et logique

Page 87: Chapitre 1

Djamal Rebaïne 87

Ces dispositifs permettent la mise en oeuvre des fonctions de base d'un ordinateur : le stockage de données, le traitement des données, le mouvement des données et le contrôle. Le fonctionnement schématique en est le suivant :

Unité de Commande 1. extrait une instruction de la mémoire, 2. analyse l'instruction, 3. recherche dans la mémoire les données concernées par

l'instruction, 4. déclenche l'opération adéquate sur l‘UAL ou l'E/S,

Page 88: Chapitre 1

Djamal Rebaïne 88

5. range au besoin le résultat dans la mémoire.

! La majorité des machines actuelles s'appuient sur le modèle Von Neumann

Page 89: Chapitre 1

Djamal Rebaïne 89

Quelques mots sur la mémoire• Carte perforée à 80 colonnes (IBM)

Ce système qui deviendra un standard est la généralisation de la carte perforée qui est à l'origine de la compagnie.

• Mémoires à tubes Williams Développée par F. C. Williams, ce type de

mémoire utilise les charges résiduelles laissées sur l'écran d'un tube cathodique après qu'il ait été frappé par le faisceau d'électron.

Page 90: Chapitre 1

Djamal Rebaïne 90

Bande magnétique Mémoires vives à tores de ferrite Pendant une petite vingtaine d'année, ce

principe de mémoire sera le plus utilisé avant d'être remplacé par la mémoire à semi-conducteurs.

Tambour magnétique Disque magnétique

Aussi appelé disque dur, ce type de support deviendra incontournable lorsqu'il prendra sa forme actuelle en 1974: Le disque Winchester.

Page 91: Chapitre 1

Djamal Rebaïne 91

• Mémoires à semi-conducteurs

• Disques souples

• Mémoire magnétique à bulles (Intel) Mise au point par Intel Magnetics , c'est une technologie qui offrait une très grande fiabilité même dans des conditions de fonctionnement extrêmes.

• Disque Opto-Numérique (aussi appelé Compact Disc ou Disque Optique Compact)Disque de plastique de 12 cm de diamètre et 1,2 mm d'épaisseur lu par un faisceau laser

Page 92: Chapitre 1

Djamal Rebaïne 92

où l'on peut stocker environ 75 minutes de musique. Son succès, outre son format, vient de l'exceptionnelle qualité de reproduction sonore, de sa faible fragilité ainsi que de son inusabilité pas de contact).

Page 93: Chapitre 1

Djamal Rebaïne 93

• CD-ROM (Sony et Philips) (Compact Disc Read Only Memory) - Cédérom en françaisVersion informatique du CD permettant de stocker à la fois du texte, des images, des sons... Sa capacité était exceptionnelle pour l'époque: 680 Mo.

• R.N.I.S (Réseau Numérique à Intégration de Services) - Baptisé Numéris par France Télécom

Page 94: Chapitre 1

Djamal Rebaïne 94

Réseau publique (comme le Réseau Téléphonique Commuté) où toutes les données (voix, images, données informatiques...) circulent en numérique  

• DVD-ROM (Sony et Philips): Successeur annoncé du CD-ROM dont il reprend exactement le format physique. Sa capacité est par contre multipliée par 12 et passe à environ 8,5 Go.

Page 95: Chapitre 1

• Les Clés USB

Il s'agit simplement d'une puce mémoire avec un connecteur USB. L'ensemble à la taille d'une clé (et peut d'ailleurs se mettre en porte-clé) ce qui a donné son nom. Les capacités actuelles dépassent celles d'un CD-ROM avec l'avantage d'être réinscriptible à volonté.

Page 96: Chapitre 1

Que nous réserve l'avenir ?

• La technologie électronique actuelle semble obéir à la loi de Moore (Gordon Moore, de Intel) : le nombre de transistors qu'on peut placer sur une puce augmente par quatre à tous les trois ans parce que la taille des traits dans les circuits intégrés diminue de 10% chaque année.

Djamal Rebaïne 96

Page 97: Chapitre 1

Djamal Rebaïne 97

Ceci s'est également avéré vrai pour la mémoire centrale. Si on extrapole, comme dans la figure suivante, on atteindra 1 milliard de transistors sur une puce vers 2011! La taille des traits en 1997 est de 0,25 µm. Elle devrait être de 6 µm à cette date. Pour les microprocesseurs, grâce à d'autres améliorations telles que l'addition de nouveaux circuits, l'amélioration en vitesse a été de quatre à cinq à tous les trois ans.

Page 98: Chapitre 1

Djamal Rebaïne 98

Figure 1.17 Loi de Moore. Nombre de transistors par puce (en milliers)

Page 99: Chapitre 1

Djamal Rebaïne 99

Une loi similaire s'applique également à l'espace disque dont la capacité de stockage quadruple à tous les trois ans et la vitesse augmente de 1,4 à tous les dix ans :  

Page 100: Chapitre 1

Djamal Rebaïne 100

Capacité de stockage d'un PC en Mo.

Page 101: Chapitre 1

Djamal Rebaïne 101

Densité des disques durs en gigabits/po2

Page 102: Chapitre 1

Djamal Rebaïne 102

Quelques mots sur les systèmes d’exploitation

Définition Un système d'exploitation (SE; en anglais: OS

= operating system) est un ensemble de programmes permettant de gérer les éléments fondamentaux de l'ordinateur:

le matériel - les logiciels - la mémoire - les données – les réseaux.

 

Page 103: Chapitre 1

Djamal Rebaïne 103

Fonctions d’un système d’exploitation

• Gestion de la mémoire

• Gestion des systèmes de fichiers

• Gestion des processus

• Mécanismes de synchronisation

• Gestion des périphériques

• Gestion du réseau

• Gestion de la sécurité.

Page 104: Chapitre 1

Djamal Rebaïne 104

Un exempleSoit la commande suivante: emacs monfichier.txt Juste après avoir tapé le <Return> fatidique, le

système d'exploitation est mis à contribution. A savoir qu'il doit ;

1) aller chercher sur le disque dur un fichier qui s'appelle emacs et qui doit être impérativement un fichier d'instruction à exécuter (fichier exécutable ou "binaire").

2) aller chercher sur le disque dur un fichier qui s'appelle monfichier.txt et rattacher ledit fichier à l'exécutable emacs en tant que fichier de données.

Page 105: Chapitre 1

Djamal Rebaïne 105

3) trouver une place en mémoire RAM pour y placer tout ou partie de emacs de telle manière qu'il soit effectivement exécutable et une place en RAM pour y placer tout ou partie du fichier monfichier.txt. Trouver une place en RAM pour y mettre une zone de communication avec emacs. Le SE et emacs doivent communiquer entre eux afin de s'informer (entre autres choses) du bon déroulement des opérations.

Page 106: Chapitre 1

Djamal Rebaïne 106

4) Si les fichiers emacs et monfichier.txt sont trop gros pour la place disponible en RAM , le SE se charge de ne mettre en mémoire vive que la partie des fichiers effectivement utile à l'instant t pour le processeur. Dès qu'une autre partie du fichier devient utile la partie précédente est effacée de la RAM, et la zone "utile" est recopiée à sa place. Cette technique s'appelle le "swapping".

Page 107: Chapitre 1

Djamal Rebaïne 107

Il existe actuellement plus de 193 systèmes d’exploitation dans 27 langues

Quelques  exemples• UNIX• VMS• MS-DOS • Win 9X = désigne les Windows 95-98-Me,

héritiers de MS-DOS et Win 3.1. Il n'a aura plus de nouvelles versions. Cette gamme est remplacée par Win XP home.

Page 108: Chapitre 1

Djamal Rebaïne 108

• Windows NT est le système d’exploitation Microsoft conçu pour se passer de MS-DOS, tout en gardant une grande compatibilité avec les logiciels écrits pour MS-DOS, Win 3 et plus tard Win 9X (= Win 4.0).

• Windows 2000 est le nom commercial de Win NT 5.0, et Win XP celui de NT 5.1

• Pour ceux qui confondent : Win 2000, n'est pas le successeur technique de Win 98 :

• Win 98 a besoin de MS-DOS pour démarrer.• Win NT-2000-XP l'émule dans une machine

virtuelle. •  

Page 109: Chapitre 1

Djamal Rebaïne 109

• les périphériques d'entrée-sortie (par exemple les cartes d'extension) varient d'un modèle d'ordinateur à un autre. Il faut donc un système qui puisse unifier l'écriture des instructions gérant le matériel. Ainsi, lorsqu'un programme désire afficher des informations à l'écran, il n'a pas besoin d'envoyer des informations spécifiques à la carte graphique (il faudrait que chaque programme prenne en compte la programmation de chaque carte...), il envoie les informations au système d'exploitation, qui se charge de les transmettre au périphérique concerné...

Page 110: Chapitre 1

Djamal Rebaïne 110

• La communication avec le système d'exploitation s'établit par l'intermédiaire d'un langage de commandes et un interpréteur de commandes. Cela permet à l'utilisateur de piloter les périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques...

Page 111: Chapitre 1

Djamal Rebaïne 111

• Le systèmes multi-tâches Les système d'exploitation multi-tâches permettent de partager le temps du processeur pour plusieurs programmes, ainsi ceux-ci sembleront s'exécuter simultanément.

• Pour réaliser ce processus, les applications sont découpées en séquence d'instructions appelées tâches ou processus. Ces tâches seront tour à tour actives, en attente, suspendues ou détruites, suivant la priorité qui leur est associée.

Page 112: Chapitre 1

Djamal Rebaïne 112

• Un système est dit préemptif lorsqu'il possède un Ordonnanceur (aussi appelé planificateur ou scheduler), qui répartit, selon des critères de priorité le temps machine entre les différentes tâches qui en font la demande.

• Le système est dit à temps partagé lorsqu'un quota de temps est alloué à chaque processus par l'ordonnanceur. Cela est notamment le cas des systèmes multi-utilisateurs qui permettent à plusieurs utilisateurs d'utiliser simultanément sur une même machine des applications similaires.

Page 113: Chapitre 1

Djamal Rebaïne 113

Le système est alors dit "système transactionnel". Dans ce cas, le système alloue à chaque utilisateur une tranche de temps (quantum de temps).

• Systèmes multi-processeurs Ces systèmes sont nécessairement multi-tâches puisqu'on leur demande d'une part de pouvoir exécuter simultanément plusieurs applications, mais surtout d'organiser leur exécution sur les différents processeurs (qui peuvent être identiques ou non). Ces systèmes peuvent être soit architecturés autour d'un processeur central qui coordonne les autres

Page 114: Chapitre 1

Djamal Rebaïne 114

processeurs, soit avec des processeurs indépendants qui possèdent chacun leur système d'exploitation, ce qui leur vaut de communiquer entre eux par l'intermédiaire de protocoles.

Page 115: Chapitre 1

Djamal Rebaïne 115

Types de systèmes d'exploitation deux types de systèmes d'exploitation: les

systèmes 16 bits et les systèmes 32 bits. - DOS codage sur 16 bits mono-utilisateur - Windows 3.1 codage sur 16/32 bits multi-

tâche préemptif - Windows 95/98/Me 32 bits multi-tâches

préemptif - Windows NT/2000 32 bits  multi-tâches

préemptif- Unix 32 bits multi-tâches préemptif- VMS 32 bits muli-tâches préemptif

Page 116: Chapitre 1

Djamal Rebaïne 116

Pour en savoir plus• Moreau, René (1982): ainsi naquit l’informatique,

les hommes, les matériels à l’origine des concepts de l’informatique d’aujourd’hui, deuxième édition, Dunod.

• Randell, Brian (1982): the origin of digital computers: selected papers; Springer Verlag

• Les ordinateurs de cinquième génération; MICRO-SYSTEMS, février 1983.

• Des photons dans l’ordinateurs, MICRO-SYSTEMS, décembre 1983

Page 117: Chapitre 1

Djamal Rebaïne 117

• Machines pensantes, DIMENSIONS SYSTEMS, 1984-1985.

• Les calculateurs analogiques, MICRO-SYSTEMS, juillet-août 1986.

• Pour la science: spécial informatique du futur. No. 122, décembre 1987.

• Pour la science: L’informatique des années 90, No. Spécial 72.

• Pour la science: communication, ordinateurs et réseaux, numéro spécial, 1991.

Page 118: Chapitre 1

Djamal Rebaïne 118

• R. Keyes: L’avenir du transistor; pour la science, août 1993.

Adresses de site utiles

• www.histoire-informatique.org/grandes_dates

• http://www.scriptol.fr/programmation/histoire-langages.php