Transcript Historique
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. Djamal Rebaïne 2 Repères historiques Les premiers registres Boulier: vers 3500 av. J.C en Chine - Abaque: première tablette à calculs en Mésopotamie Djamal Rebaïne 3 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 Djamal Rebaïne 4 • 1620: mise en œuvre de cette invention au moyen de la règle à calcul. Les machines à calculer 1623: machine de Schickard (Allemagne): fonctionnement mécanique basé sur le principe de tiges proportionnelles aux log. des nombres impliqués dans ces opérations. Djamal Rebaïne 5 • 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. Djamal Rebaïne 6 Machine de Schickard Djamal Rebaïne 7 Pascaline Djamal Rebaïne 8 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. / Djamal Rebaïne 9 Ordinateur primitif 1830: 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 Djamal Rebaïne 10 • 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émoiredispositifs de calcul - fonction de commande et d’entrée-sortie Djamal Rebaïne 11 La machine analytique de C. Babbage Djamal Rebaïne 12 • 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. Djamal Rebaïne 13 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. Djamal Rebaïne 14 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. Djamal Rebaïne 15 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). Djamal Rebaïne 16 Colssus- 1943 Djamal Rebaïne 17 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. Djamal Rebaïne 18 La machine ENIAC pesait 30 tonnes Djamal Rebaïne 19 La machine ENIAC est disposée en U de 6 mètres de largeur par 12 mètres de longueur. Djamal Rebaïne 20 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. Djamal Rebaïne 21 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. Djamal Rebaïne 22 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. Djamal Rebaïne 23 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. Djamal Rebaïne 24 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 Djamal Rebaïne 25 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. Djamal Rebaïne 26 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. Djamal Rebaïne 27 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. Djamal Rebaïne 28 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. Djamal Rebaïne 29 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 Djamal Rebaïne 30 1982: Cray X-MP Composé de deux Cray I mis en parallèle, il est 3 fois plus puissant que celui-ci. Djamal Rebaïne 31 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 microinformatique : 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. Djamal Rebaïne 32 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. Djamal Rebaïne 33 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. Djamal Rebaïne 34 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 Djamal Rebaïne 35 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. Djamal Rebaïne 36 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. Djamal Rebaïne 37 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. Djamal Rebaïne 38 Première génération 1949-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. Djamal Rebaïne 39 Deuxième génération 1958 - 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). Djamal Rebaïne 40 Troisième génération 1965-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) Djamal Rebaïne 41 Quatrième génération 1971-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 Djamal Rebaïne 42 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) Djamal Rebaïne 43 • 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 Djamal Rebaïne 44 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. Djamal Rebaïne 45 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 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 microprocesseur 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. Djamal Rebaïne 47 Machine SISD Une 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. Djamal Rebaïne 48 Par exemple, le code suivant, int A[100]; for (i=1;100>i;i++) A[i]=A[i]+A[i+1 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 Djamal Rebaïne 49 Machines MISD . . Djamal Rebaïne 50 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 Djamal Rebaïne 51 Machines SIMD Djamal Rebaïne 52 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) : Djamal Rebaïne 53 • 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. Djamal Rebaïne 54 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. Djamal Rebaïne 55 • 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 Djamal Rebaïne 56 Machines MIMD C'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. Djamal Rebaïne 57 • 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. Djamal Rebaïne 58 Djamal Rebaïne 59 CISC vs. RISC 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. Djamal Rebaïne 60 • 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). Djamal Rebaïne 61 La répartition des principaux processeurs dans les deux catégories est la suivante. CISC RISC Alpha (DEC) S/360 (IBM) PowerPC VAX (DEC) (Motorola) 68xx, 680x0 MIPS (Motorola) PA-RISC (Hewlettx86, Pentium (Intel) Packard) SPARC Djamal Rebaïne 62 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 • 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 microprocesseurs. Djamal Rebaïne 64 • 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 • 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 • 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 • 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 • 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 - 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 - 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 • 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 • 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 • 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 Évolution de la programmation 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. Djamal Rebaïne 75 Les grands dates • 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 Djamal Rebaïne 76 • 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 Djamal Rebaïne 77 • 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 Djamal Rebaïne 78 • 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. Djamal Rebaïne 79 Structure des ordinateurs John 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). Djamal Rebaïne 80 • 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, ....) Djamal Rebaïne 81 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 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. Djamal Rebaïne 83 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. Djamal Rebaïne 84 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. Djamal Rebaïne 85 Schéma de la machine de Von Neuman UAL = unité arithmétique et logique Djamal Rebaïne 86 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, Djamal Rebaïne 87 5. range au besoin le résultat dans la mémoire. ! La majorité des machines actuelles s'appuient sur le modèle Von Neumann Djamal Rebaïne 88 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. Djamal Rebaïne 89 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. Djamal Rebaïne 90 • 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 Djamal Rebaïne 91 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). Djamal Rebaïne 92 • CD-ROM (Sony et Philips) (Compact Disc Read Only Memory) - Cédérom en français Version 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 Djamal Rebaïne 93 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. Djamal Rebaïne 94 • 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é. 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 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. Djamal Rebaïne 97 Figure 1.17 Loi de Moore. Nombre de transistors par puce (en milliers) Djamal Rebaïne 98 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 : Djamal Rebaïne 99 Capacité de stockage d'un PC en Mo. Djamal Rebaïne 100 Densité des disques durs en gigabits/po2 Djamal Rebaïne 101 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. Djamal Rebaïne 102 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é. Djamal Rebaïne 103 Un exemple Soit 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. Djamal Rebaïne 104 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. Djamal Rebaïne 105 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". Djamal Rebaïne 106 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. Djamal Rebaïne 107 • 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. • Djamal Rebaïne 108 • 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é... Djamal Rebaïne 109 • 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... Djamal Rebaïne 110 • 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. Djamal Rebaïne 111 • 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 multiutilisateurs qui permettent à plusieurs utilisateurs d'utiliser simultanément sur une même machine des applications similaires. Djamal Rebaïne 112 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 Djamal Rebaïne 113 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. Djamal Rebaïne 114 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 multitâ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 Djamal Rebaïne 115 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, MICROSYSTEMS, décembre 1983 Djamal Rebaïne 116 • Machines pensantes, DIMENSIONS SYSTEMS, 1984-1985. • Les calculateurs analogiques, MICROSYSTEMS, 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. Djamal Rebaïne 117 • 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/histoirelangages.php Djamal Rebaïne 118