Utilisateur:Facchin1/Brouillon

Redirigé depuis "système informatique". Pour d'autres usages, voir Ordinateur (homonymie) et Système informatique (homonymie). Cet article est une traduction en français de l'article Computer. Il a été traduit en très grande partie par moi-même et contrôlé par d'autres sur Duolingo. Le texte ici est une traduction, il n'a pas été modifié pour refléter les particularités françaises, ce qui est le cas de l'article "ordinateur" présent sur wiki. Je n'ai pas encore repris la mise en page mais je pense le faire de manière conforme à l'anglais. Je n'ai jamais particpé sur wikipedia et ne sait pas trop comment m'y prendre.

Ordinateur  

Ordinateur

modifier

Un ordinateur est un appareil qui peut être commandé pour exécuter automatiquement un ensemble arbitraire d'instructions arithmétiques et logiques. Leur capacité à suivre une séquence d'instructions, appelée programme, rendent les ordinateurs très flexibles et appréciés.   De tels ordinateurs sont utilisés en tant que systèmes de contrôle dans une grande variété d’appareils industriels ou destinés au grand public.   Ceci inclut les appareils simples d'utilisation générale tels que les fours à micro-ondes et les télécommandes, mais de manière plus importante les appareils d'intérêt général comme les ordinateurs personnels et les dispositifs portables.   Internet est utilisé par les ordinateurs, et en interconnecte des millions.  

Depuis les temps les plus anciens, des dispositifs tels que le boulier aident les hommes à effectuer des calculs.   Dès le début de la révolution industrielle, quelques systèmes mécaniques furent construits pour automatiser les tâches fastidieuses, comme les motifs ornementaux pour les métiers à tisser.   Des machines électriques sophistiquées furent spécialisées dans les calculs analogiques au début du XXe siècle.   Les premiers calculateurs électroniques numériques furent développés pendant la Seconde Guerre mondiale.   La vitesse, la puissance et la polyvalence des ordinateurs ont augmentées radicalement et de façon continue depuis lors, au point de rendre possible l'intelligence artificielle dans un futur proche.  

Conventionnellement un ordinateur moderne comprend au moins un élément de traitement, précisément une unité centrale de traitement (UCT) et une certaine forme de mémoire.   Cette unité de traitement exécute des opérations arithmétiques et logiques, et une une unité de séquencement et de contrôle peut changer l'ordre des opérations en réponse aux informations conservées dans la mémoire.   Les appareils périphériques ouvrent l’accès aux informations depuis l'extérieur, et permettent de sauver et de récupérer les résultats des opérations.

Étymologie  

modifier

Le premier usage connu du mot computer (ordinateur) date de 1613 dans un livre appelé "The Yong Mans Gleanings" de l'écrivain anglais Richard Braithwait : "I haue read the truest computer of Times, and the best Arithmetician that euer breathed, and he reduceth thy dayes into a short number." (J'ai rencontré le plus fort des ordinateurs de tous les temps, et le meilleur arithméticien qui ait jamais respiré, et il réduit tes jours à un nombre très petit). Le mot se rapportait à une personne qui effectuait des calculs ou des opérations. Le mot continua à avoir le même sens jusqu'au milieu du XXe siècle.   Dés la fin du XIXe siècle, le mot commence à prendre son sens plus habituel d'une machine qui exécute des calculs.

Histoire

modifier

Article principal : Histoire du matériel informatique

Période pré-vingtième siècle

modifier

Image ( L'os Ishango )

Des dispositifs destinés à faciliter les calculs sont utilisés depuis des milliers d'années, ils utilisent la plupart du temps une correspondance biunivoque avec les doigts. Le tout premier dispositif de calcul fut probablement le Bâton de Comptage. Par la suite, on utilise des aides à la tenue des comptes sur l'ensemble du Croissant Fertile parmi lesquels les calculs (boules d'argile, pierres, cônes...) qui représentaient les quantités d'articles, probablement du bétail ou du grain, scellés dans des récipients d'argile non-cuite. L'utilisation de tiges de comptage en est un exemple.  

Image (La Suanpan chinoise (算盘) (le nombre représenté sur ce boulier est 6 302 715 408)) 

Le boulier fut d'abord utilisé pour des tâches arithmétiques.   Le boulier romain a été développé à partir de systèmes utilisés à Babylone dès 2400 avant JC.   Depuis lors, beaucoup d'autres formes de planches ou tableaux de calculs ont été inventées.   En Europe, au Moyen Age, dans les maisons de "comptage", un tissu à damier était placé sur une table, et on y déplaçait des objets selon certaines règles, pour aider au calcul des sommes d'argent.  

Image (L'ancien mécanisme de conception grecque d'Anticythère, datant de 150 à 100 av. JC, est le plus ancien calculateur analogique du monde.)  

Le mécanisme d'Anticythère est considéré comme le tout premier "ordinateur" mécanique, selon Derek J. de Solla Price.   Il fut conçu pour calculer les positions des astres.   Il fut découvert en 1901, dans les ruines d'Anticythère au large de l'ile grecque d'Anticythère, entre Cythère et la Crête et a été daté comme étant d'environ 100 ans avant JC.   Des systèmes d'un niveau de complexité comparable à celui d'Anticythère ne réapparurent qu'un millier d'années plus tard.    

De nombreuses aides mécaniques au calcul et aux mesures furent construites pour la navigation et l'astronomie.   Le planisphère était une carte des étoiles inventée par Abū Rayhān al-Bīrūnī au début du XIe siècle.   L'astrolabe a été inventé dans le monde hellénistique soit dans le 1er ou le IIe siècle av. J.-C. et est souvent attribué à Hipparque.   Combinaison du planisphère et de dioptra, l'astrolabe était effectivement un ordinateur analogique capable d'étudier plusieurs types de problèmes en astronomie sphérique.   Un astrolabe équipé d'un calculateur de calendrier mécanique et d'engrenages a été inventé par Abi Bakr d'Ispahan, en Perse en 1235.   Abū Rayhān al-Bīrūnī a inventé le premier astrolabe à calendrier luni-solaire équipé d'une mécanique à engrenages, une des toutes premières machines câblées pour le traitement de la connaissance avec un train d'engrenages et des roues dentées, vers 1000 ap. JC.    

Le compas de proportion, un instrument de calcul utilisé pour résoudre les problèmes de proportion, pour la trigonométrie, la multiplication et la division, et pour diverses fonctions, telles que les carrés et les racines cubiques, a été développé à la fin du XVIe siècle et a trouvé application dans l'artillerie, l'arpentage et la navigation.   Le planimètre était un instrument manuel pour calculer la surface d'une figure fermée en repassant dessus à l'aide d'une liaison mécanique.  

Image (Une règle à calcul) 

La règle de calcul a été inventée autour de 1620 à 1630, peu de temps après la publication de la notion de logarithme. C'est comparable à un ordinateur manuel pour effectuer des multiplications et divisions.  Au fur et à mesure que la règle à calcul s'est développée, de nouvelles échelles ont apportées les fonctions inverses, les carrés et les racines carrées, les cubes et les racines cubiques, de même que les fonctions transcendantales telles que les logarithmes et les exponentielles, la trigonométrie circulaire et hyperbolique et d'autres fonctions. L'aviation est l'un des quelques secteurs qui utilisent encore largement la règle à calcul, tout spécialement pour résoudre les problèmes temps-distance dans les avions légers. Pour gagner de la place et en faciliter la lecture, ce sont en fait des dispositifs de forme ronde plutôt que la classique forme linéaire de la règle à calcul.   Un exemple très connu est le E6B.    

Dans les années 1970, Pierre Jacquet-Droz, un horloger suisse, a construit une poupée mécanique (un automate) qui pouvait écrire à l'aide d'une plume d'oie. En changeant le nombre et l'ordre des rouages internes, des lettres différentes, et donc des messages différents pouvaient être obtenus. En effet, elle pouvait être "programmée" pour lire des instructions. La poupée est exposée, aux côtés de deux autres machines complexes, au Musée d'Art et d'Histoire de Neuchâtel, en Suisse, et est encore opérationnelle.   La machine pour la prévision des marées inventée par Sir William Thomson en 1872 était de grande utilité pour la navigation dans les eaux peu profondes. Elle utilisait un système de poulies et de câbles pour prédire automatiquement les niveaux des marées sur une période de temps en un lieu précis.    

L'analyseur différentiel, un calculateur mécanique conçu pour résoudre les équations différentielles par intégration, utilisait des mécanismes à base de disques et de roues pour réaliser l’intégration.   En 1876, Lord Kelvin avait déjà discuté de la possibilité de construire de tels calculateurs, mais ses desseins ont été contrecarrés par le faible couple de sortie des intégrateurs à boules et disques.   Dans un analyseur différentiel, la sortie d'un intégrateur pilote l'entrée de l'intégrateur suivant ou de la sortie graphique. L'amplificateur de couple a été l'avancée technologique qui a permis à ces machines de fonctionner.   Dès les années 1920, Vannevar Bush et d'autres développèrent des analyseurs différentiels mécaniques.  

Premier dispositif informatique  

modifier

Image (Une partie du moteur de différence de Babbage.) 

Charles Babbage, un ingénieur en mécanique et un polymathe, est à l'origine du concept d'ordinateur programmable. Considéré comme le "père de l'ordinateur", il a conceptualisé et inventé le premier ordinateur mécanique au début du 19ème siècle. Après avoir travaillé à sa machine révolutionnaire à différences, conçue pour aider dans les calculs de navigation, en 1833 il réalise qu' une conception beaucoup plus générale, une machine analytique, était possible. L'entrée des programmes et des données était faite dans la machine via des cartes perforées, une méthode utilisée à l'époque pour commander les métiers à tisser mécaniques tels que le métier à tisser Jacquard. Pour les données sortantes, la machine avait une imprimante, un traceur de courbes et une cloche. La machine était aussi capable, si besoin, de perforer des nombres sur des cartes dans le but d’être lus plus tard. La machine comportait une unité arithmétique logique, le contrôle du séquencement des instructions sous forme de branchement conditionnel et de boucles, et une mémoire intégrée, faisant d'elle la première machine conçue comme un ordinateur à usage général qui pourrait être qualifié en termes modernes de Turing-complet.      

La machine était en avance d'un siècle sur son temps. Toutes les pièces de sa machine devaient être faites à la main — c'était un problème majeur pour un dispositif composé de milliers de pièces. Finalement, le projet fut abandonné avec la décision du gouvernement Britannique d’arrêter le financement. L'échec de Babbage à finaliser la machine analytique peut être principalement attribué aux difficultés non seulement politiques et financières, mais aussi à son désir de développer un ordinateur de plus en plus sophistiqué et de progresser plus rapidement pour que personne ne puisse suivre. Néanmoins, son fils, Henry Babbage, acheva une version simplifiée de l'unité de calcul de la machine analytique (the mill) en 1888. Il fit une démonstration réussie de son usage pour le calcul de tables en 1906.    

Ordinateurs analogiques

modifier

Image (Dessin de la troisième machine de prévision des marées de Sir William Thomson, 1879-81)

Pendant la première moitié du XXe siècle, beaucoup de besoins en calcul scientifique furent satisfaits par des calculateurs analogiques de plus en plus sophistiqués, qui utilisaient un modèle mécanique ou électrique du problème, comme base pour les calculs.   Cependant, ceux-ci n'étaient pas programmables et n'avaient pas la polyvalence et la précision des ordinateurs numériques modernes.   Le premier calculateur moderne fut une machine à prévoir les marées, inventée en 1872 par Sir William Thomson.  L'analyseur différentiel, un calculateur mécanique conçu pour résoudre les équations différentielles par intégration et utilisant des mécanismes roues-disques, fut conceptualisé en 1876 par James Thomson, le frère du plus célèbre Lord Kelvin.    

L'art des calculateurs mécaniques a atteint son zénith avec l'analyseur différentiel, construit par H. L. Hazen et Vannevar Hush au MIT à partir de 1927. Il fut créé à l'aide des intégrateurs mécaniques de James Thomson et des amplificateurs de couples inventés par H. W. Nieman.   Une douzaine de ces appareils furent construits avant que leur obsolescence devienne flagrante.    

Dès les années 50, le succès des ordinateurs électroniques numériques avait sonné la fin de la plupart des machines à calculer analogiques, mais des calculateurs analogiques restent utilisés dans des domaines d'applications très spécialisées tels que l'éducation (des systèmes de contrôle) et l'aviation (règle à calcul).  

Ordinateurs numériques

modifier

Électromécanique

modifier

En 1938, la marine américaine avait développé un ordinateur analogique électromécanique assez petit pour être utilisé à bord d'un sous-marin. C'était le Torpedo Data Computer, qui utilisait la trigonométrie pour calculer la trajectoire d'une torpille sur une cible mobile. Pendant la Seconde Guerre mondiale des dispositifs similaires ont été développés dans d'autres pays.  

Image (Réplique du Z3 de Zuse, le premier ordinateur numérique (électromécanique) totalement automatique.)  

Les premiers ordinateurs numériques étaient électromécaniques ; des interrupteurs électriques pilotaient des relais mécaniques pour effectuer le calcul.   Ces appareils avaient une faible vitesse de fonctionnement et ont finalement été remplacés par des ordinateurs tout-électriques beaucoup plus rapides qui, à l'origine, utilisaient des tubes à vide.   Le Z2, créé par l'ingénieur allemand Konrad Zuse en 1939, a été l'un des premiers exemples d'ordinateur à relais électromécaniques.   En 1941, Zuse fait suivre sa première machine du Z3, le premier calculateur fonctionnel au monde à être numérique, électromécanique, programmable et totalement automatisé. Le Z3 était construit avec des relais, utilisait des mots de 22 bits de long, et fonctionnait avec une horloge de 5 à 10Hz. Le code programme était fourni sur un film perforé tandis que les données pouvaient être stockées dans 64 mots de mémoire ou bien entrées au clavier. Il était très similaire aux machines modernes sur certains aspects, et novateur dans de nombreux domaines tels que les nombres à virgule flottante. Plutôt que d'utiliser le système décimal (comme le fit Charles Babbage dans une conception antérieure), plus difficile à mettre en œuvre, l'adoption d'un système binaire a permis aux machines de Zuse, d'être plus faciles à produire et potentiellement plus fiables, étant donné les technologies disponibles à l'époque. Le Z3 était d'un modèle Turing-complet.  

Tubes à vide et circuits électroniques digitaux

modifier

Des éléments de circuit purement électroniques remplacèrent leurs équivalents mécaniques et électromécaniques, dans le même temps, le calcul numérique remplaça le calcul analogique. L'ingénieur Tommy Flowers, travaillant au centre de recherche du Post Office à Londres dans les années 1930, commença à explorer la possibilité d'utiliser l'électronique pour les échanges téléphoniques.   L'équipement expérimental qu'il construisit en 1934 devint opérationnel 5 ans plus tard, convertissant ainsi une portion du réseau d'échanges téléphoniques en un système électronique de traitement de données, utilisant des milliers de tubes à vide.   Aux États-Unis, John Vincent Atanasoff et Clifford E. Berry de l'Iowa State University développèrent et testèrent l'Atanasoff-Berry Computer (ABC) en 1942, le premier "ordinateur numérique électronique automatique".   Cette conception était également entièrement électronique et utilisait près de 300 tubes à vide, avec des condensateurs montés sur un tambour rotatif en guise de mémoire.  

Image (Colossus fut le premier dispositif électronique programmable de calcul numérique, et fut utilisé pour casser les chiffrements allemands pendant la Seconde Guerre mondiale.)  

Pendant la Seconde Guerre mondiale, les Britanniques obtinrent un certain nombre de succès dans le décryptage de communications militaires allemandes.   Le chiffrement de la machine de cryptage allemande, Enigma, fut cassé la première fois à l'aide de machines électromécaniques.   Pour craquer le cryptage plus sophistiqué de la machine allemande SZ40/42 de Lorenz, utilisée pour les communications à haut-niveau de l'armée, Max Newman et ses collègues confièrent à Flowers la mission de construire le Colossus. Il mit onze mois à partir du début février 1943 à concevoir et construire le premier Colossus.   Après un premier test fonctionnel en décembre 1943, Colossus fut transporté par par mer au Bletchley Park où il fut livré le 18 juin 1944, et attaqua son premier message le 5 février.   Colossus a été le premier ordinateur électronique numérique programmable au monde. Il utilisait un très grand nombre de lampes (tubes à vide).   Il disposait d'une entrée par ruban perforé et pouvait être configuré pour effectuer une grande variété opérations booléennes sur ses données, mais ce n'était une machine Turing-complet.   Neuf Mark II Colossi ont été construits (le Mark I a été converti en Mark II faisant ainsi dix machines au total). Colossus Mark I contenait 1500 lampes thermoïonique (tubes), mais Mark II avec ses 2400 lampes, était à la fois cinq fois plus rapide et aussi plus simple à utiliser que Mark I, ce qui accélérait grandement le processus du décodage.  

Image (L'ENIAC a été le premier dispositif Turing-complet, il effectuait des calculs balistiques de trajectoire pour l'armée des États-Unis.)  

L'ENIAC (Electronic Numerical Integrator and Computer ou 'ordinateur et intégrateur électronique numérique'), fut le premier ordinateur construit aux États-Unis.   Bien que l'ENIAC était similaire au Colossus, il était plus rapide et plus souple à utiliser. Comme pour le Colossus, un programme sur l'ENIAC était défini par la configuration de ses câbles de brassage et de ses commutateurs, très loin des machines électroniques avec programmes rangés en mémoire qui viendront plus tard. Une fois un programme écrit, il fallait l'installer mécaniquement dans la machine, rebrancher les connecteurs et réinitialiser les commutateurs.   Il mariait la rapidité de l'électronique avec la possibilité d'être programmé pour de nombreux problèmes complexes.   Il pouvait ajouter ou soustraire 5000 fois par seconde, un millier de fois plus vite que n'importe quelle autre machine.   Il avait aussi des modules pour multiplier, diviser, et effectuer des racines carrées.   La mémoire rapide était limitée à vingt mots (environ 80 octets).   Construit sous la direction de John Mauchly et J. Presper Eckert à l'université de Pennsylvannie, le développement de l'ENIAC s'est étendu de 1943 jusqu'à sa mise en exploitation à la fin de 1945.   La machine était énorme, pesait 30 tonnes, utilisait 200 kilowatts d'énergie électrique, contenait plus de 18 000 tubes à vide, 1 500 relais, et des centaines de milliers de résistances, condensateurs et inductances.  

Ordinateurs modernes

modifier

Concept d'ordinateur moderne

modifier

Le principe de l'ordinateur moderne a été proposé par Alan Turing dans son texte fondateur de 1936, "Sur les nombres calculables".   Turing proposait un dispositif simple qu'il appelait "Machine à calculer universelle" et qui fut plus tard appelée "machine universelle de Turing".   Il prouva qu'une telle machine était capable de calculer n'importe quoi de calculable en exécutant des instructions (programme) stockées sur une bande, et permettant ainsi à la machine d'être programmable.   Le concept fondamental du modèle de Turing et le stockage de programme, où toute instruction à exécuter est rangée dans une mémoire.    

Von Neumann admettait que l-on devait le concept central de l’ordinateur moderne à ce document.   Les machines de Turing sont, à ce jour, un sujet principal d'étude en théorie de l'information.   Excepté pour la taille nécessairement limitée de leur mémoire, les ordinateurs modernes sont dit être Tuting-complet, c'est à dire qu'ils ont une capacité d'exécution d'algorithme équivalente à une machine universelle de Turing.    

Image (Une vue de la Machine expérimentale à petite-échelle, le premier calculateur à programme enregistré.)  

Programmes enregistrés

modifier

Les premiers calculateurs avaient des programmes préétablis.   Changer leur fonctionnement exigeait la réécriture et le recâblage de la machine.   Avec la proposition d'un ordinateur à programme enregistré, cela a changé.   Un ordinateur à programme enregistré inclus dans sa conception un jeu d'instructions, et peut stocker dans sa mémoire un ensemble d'instructions (un programme) qui présente le calcul à faire en détail.   Le cadre théorique du calculateur à programme enregistré fut défini par Alan Turing dans son document de 1935.   En 1945, Turing rejoignait le Laboratoire national de physique et commença à travailler au développement de l'ordinateur numérique électronique à programme enregistré.   Son rapport de 1945, Calculateur électronique proposé, a été la première spécification d'un tel dispositif.   John von Neumann de l'université de Pennsylvanie a également diffusé sa première ébauche d'un rapport sur l'EDVAC en 1945.  

Image (Ferranti Mark 1, vers 1951)  

La Machine expérimentale à petite-échelle (SSEM Small-scale Experimental machine), surnommée Baby (Bébé), a été le premier calculateur à programme enregistré au monde.   Il a été construit à l'université Victoria de Manchester par Frederic C. Williams, Tom Kilburn et Geoff Tootill, et exécuta son premier programme le 21 juin 1948.   Il a été conçu pour tester le tube Williams, le premier dispositif de stockage numérique à accès aléatoire.   Bien que l'ordinateur fut considéré comme petit et primitif par rapport aux standards de l'époque, il fut la première machine fonctionnelle à contenir tous les éléments essentiels d'un ordinateur électronique moderne.   Dès que la SSEM eut démontré la vraisemblance de sa conception, un projet fut lancé à l'université, celui de développer un ordinateur plus utilisable, le Manchester Mark 1.   Le Mark 1 à son tour devint le prototype du Ferranti Mark 1, le premier ordinateur à usage général disponible dans le commerce.   Construit par Ferranti, il fut livré à l'université de Manchester en février 1951.   Au moins sept de ces dernières machines furent livrées entre 1953 et 1957, l'une d'elles aux laboratoires de Shell à Amsterdam.   En octobre 1947, les directeurs de la compagnie de restauration anglaise J. Lyons & Company décidèrent de prendre un rôle actif dans le développement du commerce des ordinateurs.   L'ordinateur LEO I devint opérationnel en avril 1951 et exécuta le premier programme informatique de gestion d'entreprise au monde.  

Transistors

modifier

Image (Une jonction bipolaire de transistor)  

Le transistor bipolaire fut inventé en 1947.   Depuis 1955 les transistors ont remplacé les tubes à vide dans la conception des ordinateurs, donnant ainsi naissance aux ordinateurs de "deuxième génération".   Comparés aux tubes à vide, les transistors ont de nombreux avantages : ils sont plus petits, demandent moins de puissance que les tubes à vide, et donc dissipent moins de chaleur.   Les jonctions de silicium des transistors étaient beaucoup plus fiables que les tubes à vide, et avaient une durée de fonctionnement très longue, voire illimitée.   Les ordinateurs transistorisés pouvaient contenir des dizaines de milliers de circuit logiques binaires dans un espace relativement compacte.    

À l'université de Manchester, une équipe travaillant sous la direction de Tom Kilburn a conçu et construit une machine utilisant les transistors nouvellement développés en lieu et place des lampes.   Leur premier ordinateur transistorisé et le premier dans le monde, fut opérationnel avant la fin de 1953, et une seconde version fut achevée en avril 1955.   Toutefois, la machine utilisait encore des lampes pour générer son horloge cyclique de 125 Khz, ainsi que dans le circuit de lecture- écriture sur la mémoire à tambour magnétique, donc il n'était pas le premier ordinateur totalement transistorisé.   Ce honneur revient au Harwell CADET de 1955, construit par la division électronique de Atomic Energy Research Establishment (Établissement de recherche en énergie atomique), à Harwell.  

Circuits intégrés

modifier

La grande avancée suivante, en matière de puissance de calcul, est survenue avec l'apparition du circuit intégré.   On doit la première idée de circuit intégré à un scientifique, Geoffrey W.A. Dummer, qui travaillait sur les radars au Royal Radar Establishment (Établissement royal d'étude des radars) du ministère de la défense.   Dummer présenta la première description publique d'un circuit intégré au symposium Sur le progrès de la qualité des composants électroniques qui s'est tenu à Washington, D.C. le 7 mai 1952.    

Les premiers vrais circuits intégrés (CI) furent inventés par Jack Kilby de Texas Instrument et Robert Noyce de Fairchild Semiconductor.   Kilby consigna ses premières idées sur le circuit intégré en juillet 1958, en effectuant avec succès la démonstration du premier exemplaire fonctionnel le 12 septembre 1958.   Dans son dossier de dépôt de brevet du 6 février 1959, Kilby décrivait son nouveau dispositif comme "un boîtier de matériau semi-conducteur ... dans lequel tous les composants du circuit électronique sont totalement intégrés".   Noyce vint aussi avec sa propre idée de circuit intégré mais six mois plus tard que Kilby.   Sa puce résolvait de nombreux problèmes pratiques que celle de Kilby n'avait pas résolus.   Produite par Fairchild Semiconductor, elle était faite en silicium, alors que celle de Kilby était faite en Germanium.  

Ce nouveau changement annonçait une explosion de l'usage commercial et personnel des ordinateurs et nous amena à l'invention du micro-processeur.   Alors que le sujet de savoir exactement quel dispositif fut le premier micro-processeur fait encore débat, en partie à cause du manque d'une définition exacte du terme "micro-processeur", il est toutefois largement reconnu que le premier micro-processeur mono-puce fut l'Intel 4004, conçu et réalisé par Ted Hoff, Frederico Faggin, et Stanley Mazor chez INTEL.  

Les ordinateurs portables deviennent prépondérants

modifier

Avec la miniaturisation continue des systèmes informatiques, et les avancées dans la longévité des batteries, les ordinateurs portables gagnèrent en popularité dans les années 2000.   Les mêmes progrès qui ont poussé à l'expansion des ordinateurs portables permirent aux fabricants d'intégrer les systèmes informatiques dans les téléphones portables.   Ces prétendus smartphones (téléphones intelligents) et tablettes supportent une variété de systèmes opérationnels et sont devenus les appareils informatiques les plus répandus du marché. Les fabricants déclarent avoir livrer environ 237 millions d'appareils au 2e trimestre 2013.  

Programmes

modifier

La caractéristique déterminante des ordinateurs modernes qui les distinguent de toutes les autres machines est qu'ils peuvent être programmés.   C'est à dire que certaines instructions (le programme) peuvent être données à l'ordinateur, et il les exécutent.   Les ordinateurs modernes qui s'appuient sur l’architecture Von Neumann ont souvent un code machine qui se présente sous la forme d'un langage de programmation impératif.   En d'autres termes, un programme d'ordinateur peut n'être constitué que de quelques instructions ou bien aller jusqu'à plusieurs millions d'instructions, tels que, par exemple, les programmes de traitement de texte et les navigateurs Internet.   Un ordinateur moderne typique peut exécuter des milliards d'instructions par seconde (gigaflops) et ne commettent pratiquement aucune erreur et ce sur plusieurs années de fonctionnement.   Les gros programmes informatiques, ou gros logiciels, sont formés de plusieurs millions d'instructions et peuvent demander des années à des équipes de programmeurs pour leur écriture, et, compte tenu de la complexité de la tâche, contiennent très certainement des erreurs.  

Architecture des programmes en mémoire.

modifier

Articles principaux : Les programmes informatiques et la programmation  

Image (Réplique de la Machine expérimentale à petite échelle (SSEM), le premier ordinateur avec programme mémorisé, au Musée des sciences et de l'industrie de Manchester, en Angleterre)  

Ce chapitre concerne la plupart des ordinateurs s'appuyant sur une mémoire RAM (mémoire à accès aléatoire) ordinaire.  Dans la plupart des cas, les instructions pour ordinateurs sont simples : ajouter un nombre avec un autre, déplacer une donnée d'un endroit vers un autre, envoyer un message à un appareil externe (appelé périphérique), etc.  Ces instructions sont lues dans la mémoire de l'ordinateur et sont, en général, exécutées dans l'ordre où elles ont été données.   Cependant, il y a habituellement des instructions spécialisées qui disent à l'ordinateur de sauter, en avant ou en arrière, vers un autre endroit du programme et de continuer l'exécution à partir de là. Ces instructions sont appelées "jumps" (saut) ou branchements.   De plus, les instructions de saut peuvent être rendues conditionnelles de manière à ce que différentes séquences d'instructions puissent être exécutées selon le résultat de calculs préalables ou bien d'évènements externes.  Beaucoup d'ordinateurs supportent directement les sous-programmes en fournissant un type de saut particulier qui se souvient de l'endroit où il est parti, pour pouvoir retourner à l'instruction qui suit cette instruction de saut.  

L'exécution d'un programme pourrait être comparée à la lecture d'un livre. Alors qu'une personne lira normalement tous les mots et lignes en séquence, elle peut à certain moment retourner en arrière dans le texte ou bien sauter des chapitres qui ne l'intéresse pas.   De manière similaire, un ordinateur peut quelquefois retourner en arrière et ré-exécuter les instructions de certaines parties du programme encore et encore jusqu'à ce qu'une condition soit satisfaite.   Ceci est appelé le contrôle de séquence à l'intérieur du programme et c'est ce qui permet à l'ordinateur de réaliser des tâches de manière répétée sans intervention humaine.  

Comparativement, une personne qui utilise un calculateur de poche peut réaliser une opération arithmétique de base telle que l'ajout de deux nombres avec juste quelques pressions de touches. Mais ajouter tous les nombres de 1 à 100 nécessiterait des milliers de pressions de touches et beaucoup de temps, avec la quasi-certitude de commettre une erreur.   D'un autre côté, un ordinateur peut être programmé pour le faire avec juste quelques instructions simples. L'exemple suivant est écrit dans le langage d'assemblage MIPS :    

Début:  

addi $ 8, $ 0, 0 # initialiser la somme à 0  

addi 9 $, 0 $, 1 # mettre le premier nombre à ajouter = 1  

boucle:  

slti 10 $, 9 $, 1000 # tester si le nombre est inférieur à 1000  

beq $ 10, $ 0, fini # si nombre impair est supérieur à n alors sortie  

add 8 $, 8 $, 9 $ # met à jour la somme  

addi 9 $, 9 $, 1 # obtenir le nombre suivant  

j boucle # répéter le processus d'addition  

fini:  

add 2 $, 8 $, $ 0 # mettre la somme dans le registre de sortie    

Une fois que l'on dit à l'ordinateur d'exécuter le programme, il va réaliser l'addition de manière répétitive sans intervention humaine supplémentaire.   Il ne commettra jamais la moindre erreur et un PC moderne est capable de terminer cette tâche en une fraction de seconde.  

Code machine

modifier

Dans la plupart des ordinateurs, les diverses instructions sont stockées en tant que code machine avec un nombre unique pour chaque instruction (son code opération ou codop pour faire court).   La commande pour ajouter deux nombres ensembles aura un codop ; la commande pour les multiplier aura un codop différent, et ainsi de suite.   Les ordinateurs les plus simples sont capables d'exécuter une poignée d'instructions différentes; les plus complexes ont plus centaines d'instructions parmi lesquelles il faut choisir, chacune avec un code numérique unique.   Puisque la mémoire de l'ordinateur peut stocker des nombres, elle peut aussi aussi stocker les codes des instructions.   Ceci mène au fait important que des programmes entiers (qui ne sont que des listes d'instructions) peuvent se présenter comme une liste de nombres et être manipulés dans l'ordinateur de la même façon que le sont les données numériques.   Le concept fondamental de ranger les programmes dans la mémoire de l'ordinateur aux côtés des données qu'ils utilisent est le point essentiel de l'architecture à programmes enregistrés de Von Neumann [citation requise].   Dans certains cas, un ordinateur peut stocker une partie ou la totalité de son programme dans une mémoire qui est maintenue séparée des données sur lesquelles il agit.   C'est ce qui est appelé l'architecture Harvard, qui doit son nom à l'ordinateur Harvard Mark 1.   Les ordinateurs Von Neumann modernes révèlent dans leur conception certains traits de l'architecture Harvard, tels que dans les caches de l'unité centrale de traitement.    

Alors qu'il est possible d'écrire des programmes informatiques sous la forme d'une longue liste de nombres (langage machine) et cette technique était utilisée avec une grande partie des premiers ordinateurs, le faire dans la pratique est extrêmement fastidieux et est une grande source d'erreur, tout particulièrement pour les programmes complexes. Au lieu de cela, chaque instruction de base peut se voir attribuer un nom indicatif de sa fonction et aisé à se souvenir — un mnémonique tel que ADD (ajouter), SUB (soustraire), MULT (multiplier) ou JUMP (sauter). Ces mnémoniques sont collectivement connus sous le nom de langage d'assemblage. La conversion des programmes écrits en langage d'assemblage en quelque chose que l'ordinateur peut vraiment comprendre (le langage machine) est habituellement réalisée par un programme informatique appelé un assembleur.  

Image (Une carte perforée des années 1970 contenant une ligne d'un programme FORTRAN.   La carte indique : "Z(1) = Y + W(1)" et est marqué "PROJ039" à des fins d'identification.)  

Langage de programmation

modifier

Article principal : Langage de programmation    

Les langages de programmation fournissent différentes manières pour spécifier un programme à destination des ordinateurs.   Contrairement aux langages naturels, les langages de programmation sont conçus pour éviter toute ambiguïté et pour être concis.   Ces langages sont uniquement écrits et sont souvent difficiles à lire à haute voix.   Ils sont généralement soit traduits en langage machine par un compilateur ou un assembleur avant d'être exécutés, soit directement traduits au moment de l'exécution par un interpréteur.   Quelques fois, les programmes sont exécutés de manière hybride à l'aide des deux techniques.    

Langages bas-niveaux

modifier

Article principal : langage de programmation de bas niveau  

Les langages machines et les langages d'assemblage (collectivement connus sous les termes langages de programmation de bas niveau) tendent à être exclusifs à un type particulier d'ordinateur.   Par exemple, un ordinateur à architecture ARM (tel que l'on peut trouver dans un assistant personnel numérique, PDA, ou dans un jeu vidéo électronique portable) ne peut pas comprendre le langage machine d'un Pentium d'Intel ou de l'Athlon 64 d'AMD qui peuvent se trouver au sein d'un ordinateur personnel de type PC.  

Langages de haut niveau / langages de troisième génération

modifier

Article principal : Langage de programmation de haut niveau    

Bien que considérablement plus aisé que le langage machine, écrire de longs programmes en langage d'assemblage est souvent difficile et même source d'erreur.   C'est pourquoi, la plupart les programmes utilisés sont écrit dans des langages de haut niveau, plus abstraits, qui sont capables d'exprimer les besoins du programmeur plus commodément (et ainsi aident à réduire les erreurs de programmation).   Les langages de haut niveau sont habituellement traduits ("compilés") en langage machine (ou quelquefois en langage d'assemblage et ensuite en langage machine) en utilisant un autre programme pour ordinateur appelé un compilateur.   Les langages de haut niveau sont moins liés au fonctionnement de l'ordinateur-cible que le langage d'assemblage, mais plus liés au langage et à la structure du(es) problème(s) à résoudre par le programme final.   Il est ainsi souvent possible d'utiliser divers compilateurs pour traduire le même programme écrit en langage de haut niveau dans les langages machine de nombreux types d'ordinateurs différents.   C'est une partie des moyens avec lesquels des logiciels tels que les jeux vidéos peuvent être rendus disponibles pour des architectures différentes d'ordinateurs tels que les ordinateurs personnels ou les diverses consoles de jeux vidéos.    

Langages de quatrième génération

modifier

Ces langages de programmation de quatrième génération (dits 4G) sont moins procéduraux que les langages de troisième génération (dits 3G).   L'avantage d'un langage 4G est qu'il fournit des façons d'obtenir des informations sans requérir l'aide d'un programmeur.   Un exemple de 4GL est SQL.    

Conception de programme

modifier

La conception des petits programmes est relativement simple, elle nécessite l'analyse du problème, la collecte des données, et, en utilisant les construction disponibles au sein des langages, en concevant et en utilisant des procédures et des algorithmes pré-établis, de fournir les données aux périphériques de sortie ainsi que la solution au problème lorsque c'est recherché.   Au fur et à mesure que les problèmes deviennent plus gros et plus complexes, des éléments caractéristiques tels que des sous-programmes, des modules, des documentation formelles, et de nouveaux concepts tels que la programmation orientée-objet sont rencontrés.   Les gros logiciels nécessitent des milliers de lignes de code et peuvent requérir des méthodes de programmation formelles.   La tâche de développer des grands systèmes logiciels représente un défi intellectuel considérable.   Produire du logiciel avec un niveau de fiabilité raisonnablement élevé dans un temps et un budget prédéterminés a toujours été difficile ; la discipline académique et professionnelle du développement logiciel se concentre tout spécialement sur ce défi.  

Article principal : Bogue logiciel  

La première bogue informatique réelle, un papillon trouvé piégé sur un relais de l'ordinateur Harvard Mark II/   Les erreurs dans les programmes sont appelés des "bogues"./   Ils peuvent être bénins et ne pas affecter l'utilité du programme, ou bien n'avoir que des effets légers.   Mais dans certains cas, ils peuvent arrêter complètement le programme ou même le système entier, ils ne répondent alors plus aux sollicitations d'une souris ou d'un clavier, ne fonctionnent pas du tout, ou "se plantent".   Sinon les bogues bénins peuvent parfois être exploités par des gens mal intentionnés et peu scrupuleux qui écrivent un code particulier destiné à tirer avantage du bogue pour provoquer une rupture dans le bon fonctionnement de l'ordinateur.   Les bogues ne sont généralement pas la faute de l'ordinateur.   Puisque les ordinateurs n'exécutent que les instructions qu'on leur a données, les bogues sont presque toujours le résultat d'une erreur du programmeur ou bien d'une négligence commise lors de la conception du programme.   L’amiral Grace Hopper, un informaticien américain, développeur du premier compilateur, est reconnu comme étant le premier à avoir utiliser le terme "bogue" (en anglais bug=coléoptère) en informatique après qu'un coléoptère mort ait été trouvé faisant un court-circuit dans un relais de l'ordinateur Harvard Mark II en septembre 1947.  

Composants

modifier

Articles principaux : Unité centrale de traitement et microprocesseur  

Video (Vidéo montrant les composants standards d'un ordinateur "modélisé" )  

Un ordinateur d'usage général a quatre constituants principaux : l'Unité Arithmétique et Logique (UAL), l'unité de contrôle, la mémoire, et les périphériques d'entrée et de sortie (appelés collectivement les entrées/sorties).   Ces éléments sont interconnectés par des bus, lesquels sont souvent réalisés à l'aide d'ensembles de fils conducteurs. À l'intérieur de ces modules on trouve des milliers et jusqu'à des billions de petits circuits électriques qui peuvent être activés ou désactivés par des commutateurs électroniques.   Chaque circuit représente un bit (de l'anglais binary digit, chiffre binaire) d'information de telle manière que quand le circuit est "on", il représente un "1", et quand il est "off" il représente un "0" (en logique de représentation positive).   Les circuits sont reliés avec des portes logiques de manière qu'un ou plusieurs circuits puissent contrôler l'état d'un ou plusieurs autres circuits.  

Unité de contrôle

modifier

Articles principaux : conception de l'UCT (Unité centrale de traitement) et de l'unité de contrôle  

Image (Diagramme montrant comment une instruction de l'architecture MIPS est décodé par le système de contrôle. )   

L'unité de contrôle (souvent dénommée système de contrôle ou contrôleur central) gèrent les divers constituants de l'ordinateur ; elle lit et interprète (décode) les instructions des programmes, les transforment en signaux de contrôle qui activent les autres modules de l'ordinateur.   Les systèmes de contrôle des ordinateurs avancés peuvent changer l'ordre de quelques instructions pour améliorer les performances.    

Un composant essentiel commun à toutes les unités centrales de traitement (CPU en anglais) est le compteur ordinal, une cellule mémoire spéciale (un registre) qui conserve l'adresse de l'endroit en mémoire à partir duquel la prochaine instruction sera lue.    

Le fonctionnement du système de contrôle est comme suit – à noter que ceci est une description simplifiée, et que certaines de ces étapes peuvent être exécutées en parallèle ou dans un ordre différent selon le type de processeur :    

  1. Lire le code de l'instruction suivante à partir de la cellule indiquée par le compteur ordinal.    
  2. Transformer le code numérique de l'instruction en un ensemble de commandes ou signaux pour chacun des autres constituants.    
  3. Incrémenter le compteur ordinal pour qu'il point sur l'instruction suivante.    
  4. Lire n'importe quelle donnée que l'instruction requiert dans les cellules de mémoire (ou peut-être d'un périphérique d'entrée).   L'adresse à laquelle la donnée requise sera lue est habituellement rangée dans le code de l'instruction.    
  5. Fournir les données nécessaires à une unité arithmétique et logique (UAL) ou à un registre.    
  6. Si l'instruction requiert une UAL ou un module matériel spécialisé pour s'exécuter, donner l'ordre au matériel de réaliser l'opération requise.    
  7. Écrire le résultat venant en retour de l'UAL à une adresse mémoire, ou dans un registre, ou éventuellement un périphérique de sortie.    
  8. Retour à l'étape 1.    

Puisque le compteur ordinal n'est (conceptuellement) qu'un simple ensemble de cellules mémoire (un registre), il peut être modifié par des calculs effectués dans l'UAL   Ajouter 100 au compteur ordinal fait que l'instruction suivante sera lue à partir d'une adresse mémoire située 100 emplacements plus loin dans le programme.   Les instructions qui modifient le compteur ordinal sont souvent appelées des sauts (jumps en anglais), ils permettent de faire des boucles (des instructions qui sont réitérées par l'ordinateur), et également des instructions conditionnelles (les deux sont des exemples de contrôle du déroulement du programme).    

La séquence d'opérations que l'unité de contrôle exécute pour traiter une instruction est en elle-même comme un petit programme informatique, et effectivement, dans certaines conceptions d'unités centrales complexes, il y a un autre ordinateur, toutefois plus petit, appelé micro-machine, qui exécute un micro-programme qui permet à tous ces évènements d'arriver.    

Unité centrale de traitement (UCT)  

modifier

L'unité de contrôle, l'UAL, et les registres sont collectivement connus sous le nom d'unité centrale de traitement, ou processeur.   Les toutes premières unités centrales étaient composées de plusieurs éléments séparés, mais depuis le milieu des années 1970, les processeurs ont été construits en un seul circuit intégré appelé un micro-processeur.    

Unité Arithmétique et Logique (UAL)

modifier

Article principal : Unité Arithmétique et Logique  

L'UAL est capable d'effectuer deux classes d'opérations : arithmétique et logique.   Le jeu d'instructions arithmétiques qu'une UAL supporte peut être limité à l'addition et à la soustraction, ou peut inclure la multiplication, la division, les fonctions trigonométriques telles que les sinus, cosinus, etc... et les racines carrées. Certaines ne peuvent opérer que sur des nombres entiers tandis que d'autres utilisent la virgule flottante pour représenter les nombres réels, toutefois avec une précision limitée. Cependant, tout ordinateur capable de n'exécuter que des instructions simples peut être programmer pour décomposer les opérations plus complexes en étapes simples qu'il peut exécuter.   Par conséquent, n'importe quel ordinateur peut être programmé pour exécuter n'importe quelle opération arithmétique – bien que cela prendra plus de temps si l'UAL ne supporte pas l'opération en mode natif. Une UAL peut également comparer des nombres et donner en retour une valeur booléenne (vrai ou faux) selon que l'un est égal à, ou plus grand ou plus petit que l'autre ("est-ce que 64 est plus grand que 65 ?"). Les opérations logiques mettent en œuvre la logique booléenne : ET, OU, XOR et NON. Celles-ci peuvent être utiles pour créer des instructions conditionnelles complexes et le traitement de la logique booléenne.    

Les ordinateurs superscalaires peuvent contenir plusieurs UALs, leur permettant d'exécuter plusieurs instructions simultanément. Les processeurs graphiques et les ordinateurs avec SIMD (Single Instruction Multiple Data = instruction simple-données multiples) et MIMD (Multiple Instruction Multiple Data = instructions multiples-données multiples) contiennent souvent des UALs qui peuvent exécuter des instructions sur des vecteurs et des matrices.    

Mémoire

modifier

Article principal : Stockage des données informatiques  

Image (La mémoire à tores magnétiques est la mémoire ordinateur de choix dans les années 1960, jusqu'à ce qu'elle soit remplacée par la mémoire à semi-conducteur.)  

Une mémoire d'ordinateur peut être vue comme une suite de cellules dans lesquelles des nombres peuvent être rangés ou lus.   Chaque cellule a une "adresse" numérique et peut contenir un seul nombre.   L’ordinateur peut recevoir l'instruction de "mettre le nombre 123 dans la cellule numérotée 1357" ou "ajouter le nombre qui se trouve dans la cellule 1357 au nombre situé dans la cellule 2468 et mettre le résultat dans la cellule 1595".   L'information rangée dans la mémoire peut représenter pratiquement tout ce que l'on veut.   Des lettres, des nombres, même des codes d'instructions peuvent y être placés avec la même facilité.   Puisque le processeur ne différencie pas les types d'information, c'est la responsabilité du logiciel de donner une signification à ce que la mémoire ne voit que comme une suite de nombres.    

Dans presque tous les ordinateurs modernes, chaque cellule mémoire est conçue pour stocker les nombres binaires en groupes de huit bits (appelé un octet, ou byte en anglais).   Chaque octet est capable de représenter 256 nombres différents (28 = 256) ; soit de 0 à 255, soit de -128 à +127.   Pour ranger les grands nombres, plusieurs octets consécutifs peuvent être utilisés (habituellement, deux, quatre ou huit).   Quand on a besoin de nombres négatifs, on les représente généralement en notation complément à deux.   D'autres possibilités existent, mais on ne les voit pas en dehors d'applications spécialisées ou de contextes historiques particuliers.   Un ordinateur peut ranger en mémoire tout type d'information à condition qu'elle soit représentable numériquement.   Les ordinateurs modernes ont des milliards, voire des billions d'octets de mémoire.    

L'unité centrale contient un ensemble de cellules de mémoire particulières appelées registres qui peuvent être lues et écrites beaucoup plus rapidement que la mémoire principale.   Il y a en général entre deux et jusqu'à une centaine de registres selon le type de processeur.   Les registres sont utilisés pour les données les plus utilisées afin d'éviter d'avoir à accéder à la mémoire principale à chaque fois.   Comme les données sont manipulées continuellement, réduire les accès à la mémoire principale, qui est souvent lente par rapport à l'UAL et aux unités de contrôle, accroit grandement la vitesse de l'ordinateur.    

La mémoire principale de l'ordinateur se décline en deux variétés principales :    

  • Mémoire vive ou RAM (Random-Access-Memory)    
  • Mémoire morte ou ROM (Read-Only-Memory)    

La mémoire vive peut être lue et écrite à tout moment par l'unité centrale, mais la mémoire dite morte est préchargée avec des données et du logiciel qui ne changent pas, et donc le processeur se contente de les lire.   La mémoire morte est habituellement utilisée pour stocker les instructions exécutées au moment du démarrage de l'ordinateur.   En général, le contenu de la mémoire vive est effacé quand l'alimentation de l'ordinateur est coupée, mais la mémoire morte conserve ses données indéfiniment.   Dans un ordinateur personnel (PC), la mémoire morte (ROM) contient un programme spécial appelé BIOS qui orchestre le chargement du système d'exploitation de l'ordinateur dans la mémoire vive à partir du disque dur chaque fois que l'ordinateur est allumé ou redémarré.   Dans les ordinateurs embarqués, qui souvent n'ont pas de disques durs, tout le logiciel requis peut être stocké en mémoire morte. le logiciel placé en mémoire morte est souvent appelé micro-logiciel (en anglais firmware = matière ferme), puisqu'il est plus proche du matériel (en anglais hardware = matière dure) que du logiciel (en anglais software = matière tendre).   La mémoire flash brouille la distinction entre mémoire morte et mémoire vive, car elle conserve ses données quand elle est coupée mais on peut aussi la réécrire.   Elle est habituellement beaucoup plus lente que les mémoires mortes et vives classiques, en conséquence son utilisation est restreinte aux applications où la haute performance n'est pas essentielle.   Dans les ordinateurs plus sophistiqués, on peut trouver une ou plusieurs mémoires cache qui sont plus lentes que les registres mais plus rapide que la mémoire principale.   Généralement, les ordinateurs avec ce type de cache sont conçus pour déplacer les données nécessaires de manière automatique dans le cache, souvent sans le moindre besoin d'une intervention de la part du programmeur    

Entrées/sorties (I/O)  

modifier

Article principal : Entrées/sorties  

Les disques durs sont des dispositifs de stockage courants utilisés par les ordinateurs./   Les entrées/sorties sont le moyen par lequel un ordinateur échange des informations avec le monde extérieur.   Les appareils qui fournissent des entrées et des sorties à l'ordinateur sont appelés des périphériques.   Sur un ordinateur personnel classique, parmi les périphériques on trouve, en entrée le clavier et la souris, et en sortie l'écran et l'imprimante.   Les disques durs, les disquettes et les disques optiques numériques sont utilisés à la fois en entrée et en sortie.   Les communications réseaux sont une autre forme d'entrées/sorties.   Les périphériques sont souvent eux-mêmes des ordinateurs complexes, avec leur propre processeur et leur mémoire.   Une unité de traitement graphique peut contenir cinquante tout petits processeurs, voire plus, lesquels exécutent les calculs nécessaires pour afficher des graphiques en 3D.   [citation nécessaire] Les ordinateurs modernes contiennent de nombreux processeurs de taille plus réduite qui assistent le processeur principal dans l'exécution des entrées/sorties.    

Fonctionnement multi-tâche  

modifier

Article principal : Traitement multitâches    

Alors qu'un ordinateur peut être considéré comme n'exécutant qu'un seul gigantesque programme stocké dans sa mémoire principale, dans certains systèmes, il faut faire croire que plusieurs programmes s'exécutent en même temps.   Ceci est réalisé en mode multi-tâches, c'est-à-dire que l'ordinateur passe rapidement de l'exécution d'un à celle d'un autre, et ce tour à tour.   Un moyen par lequel on fait cela est un signal spécial appelé une interruption, elle peut périodiquement faire que l'ordinateur suspende l'exécution des instructions là où il en était et lui faire faire quelque chose d'autre à la place./   En se souvenant d'où il en était avant l’interruption, l'ordinateur peut y retourner plus tard.   Si plusieurs programmes s'exécutent "en même temps",   le générateur d'interruptions peut produire des centaines d'interruptions par seconde, entrainant une commutation de programme à chaque fois.   Puisque les ordinateurs modernes exécutent les instructions à une vitesse d'un ordre de grandeur bien supérieur à celui de la perception humaine, on peut avoir l'impression que plusieurs programmes s'exécutent en même temps même si un seul peut être exécuter à un instant donné.   Cette méthode de multi-tâche est quelquefois appelée "temps partagé" parce que chaque programme se voit attribuer, à son tour, une tranche de temps.    

Avant l'ère des ordinateurs à prix abordable, l'utilisation principale du mode multi-tâches était de permettre à plusieurs personnes de partager le même ordinateur.   Apparemment, le multi-tâches ferait que l'ordinateur qui commute entre plusieurs programmes serait plus lent, en proportion directe avec le nombre de programmes qu'il exécute, mais la plupart des programmes passent beaucoup de temps à attendre les entrées/sorties lentes avant de pouvoir terminer leur tâches.   Si un programme est en train que l'utilisateur clique sur la souris ou enfonce une touche du clavier, il ne prend pas de "tranche de temps" tant que l'évènement qu'il attend n'est pas arrivé.   Ceci libère du temps pour exécuter les autres programmes de telle manière que de nombreux programmes peuvent être exécutés simultanément sans baisse sensible des performances.    

Multi-Processing  

modifier

Article principal : Mode multi-processeurs  

Image (Cray a conçu de nombreux superordinateurs qui utilisaient beaucoup le traitement en multiprocesseur.)  

Certains ordinateurs sont conçus pour distribuer le travail à plusieurs processeurs en configuration multi-traitement, une technique autrefois réservée aux machines grosses et puissantes telles que les super-ordinateurs, les ordinateurs centraux et les serveurs.   Les ordinateurs personnels ou portables multi-processeurs et multi-cœurs (plusieurs processeurs dans un même circuit intégré) sont maintenant largement disponibles, et sont, par conséquence, de plus en plus utilisés dans les marchés d'entrée de gamme.   Les super-ordinateurs, en particulier, disposent souvent d'architectures qui diffèrent sensiblement de l'architecture classique à programmes mémorisés ainsi que des ordinateurs à usage général.   Ils alignent souvent des milliers de processeurs, des interconnections adaptées aux hautes performances, et du matériel de calculs spécialisés.   De telles conceptions tendent à n'être utiles que pour des tâches spécialisées en raison de l'ampleur de l'organisation des programmes qui est requise pour exploiter, en même temps et efficacement, la plupart des ressources disponibles.   Les super-ordinateurs trouvent généralement leur utilisation dans la simulation à grande échelle, le rendu graphique, les applications de cryptographie, mais également dans les tâches dites "honteusement parallèles".    

Fonctionnement en réseau et Internet

modifier

Article principal : Réseaux informatiques et Internet  

Image (Visualisation d'une portion du routage sur Internet)    

Les ordinateurs sont utilisés pour synchroniser l'information entre différents endroits depuis la fin des années 50.   Le système SAGE de l'armée américaine fut le premier exemple à grande échelle d'un tel système, lequel conduisit à bon nombre de systèmes à usage spécialisés commercialisés tels que Sabre.   Dans les années 70, des ingénieurs informaticiens des institutions de recherche à travers tous les États-Unis commencèrent à interconnecter leurs ordinateurs en utilisant la technologie des télécommunications.   L'effort a été financé par l'ARPA (maintenant DARPA), et le réseau qui en a résulté fut appelé ARPANET.   Les technologies qui ont rendu l'Arpanet possible se propagèrent et évoluèrent.    

Avec le temps, le réseau s'étendit au delà des institutions académiques et militaires et devint connu sous le nom d'Internet.   L'apparition des réseaux a nécessité une redéfinition de la nature d'un ordinateur et de ses frontières.   Les systèmes opérationnels et les applications informatiques furent modifiées pour percevoir la définition et l'accès aux ressources des autres ordinateurs sur le réseau, telles que les périphériques, l'information stockée, et tout ce genre de choses, comme des extensions des ressources d'un ordinateur individuel.   Initialement ces fonctionnalités furent disponibles surtout dans les milieux de la haute-technologie, mais dans les années 90 la généralisation d'applications comme l’e-mail et Internet, combinée avec la démocratisation de l'ordinateur a fait que les réseaux sont devenus presque omniprésents.   En fait, le nombre d'ordinateurs interconnectés est en croissance phénoménale.   Une très grande proportion des ordinateurs personnels se connectent régulièrement à Internet pour communiquer et recevoir de l'information.   La communication réseau "sans fils" (en anglais "wireless") s'appuyant souvent sur les réseaux des téléphones mobiles a fait que les intercommunications deviennent de plus en plus répandues y compris dans l'informatique mobile.    

Paradigmes des architectures d'ordinateur  

modifier

Il y a de nombreux types d'architectures d'ordinateurs :    

L'ordinateur quantique contre l'ordinateur chimique    

  • Le processeur scalaire contre le processeur vectoriel    
  • Les ordinateurs à accès mémoire non-uniforme (en anglais NUMA pour Non-Uniform Memory Access)    
  • La machine à registres contre la machine à pile LIFO    
  • L'architecture de Harvard contre celle de Von Neumann    
  • L'architecture cellulaire    

De toutes ces machines abstraites, c'est l'ordinateur quantique qui est le plus prometteur pour révolutionner l'informatique.   Les portes logiques sont une abstraction courante qui peut s'appliquer à la plupart des exemples numériques ou analogiques énoncés ci-dessus.   La capacité de stocker et d'exécuter des listes d'instructions appelées programmes rendent les ordinateurs extrêmement polyvalents, les distinguant ainsi des calculateurs.   La thèse Church-Turing est une déclaration mathématique de cette polyvalence : tout ordinateur présentant une aptitude minimale (= être Turing-complet) est, par principe, capable d'accomplir les mêmes tâches que tout autre ordinateur.   Par conséquent, n'importe quel type d'ordinateur (portable, super-ordinateur, automate cellulaire etc.) peut réaliser les mêmes tâches informatiques, à condition qu'il dispose de suffisamment de temps et de capacité mémoire.  

Idées fausses  

modifier

Article principal : Ordinateur humain et ordinateur de type Harvard  

Des femmes ayant la fonction d'ordinateurs dans la "salle d'ordinateurs" de la station pour les vols à haute vitesse de la NACA   Un ordinateur n'a pas besoin d'être électronique, ni d'avoir un processeur, ou de mémoire vive, ou même de disque dur.   Alors que l'usage répandu du mot "ordinateur" est synonyme de ordinateur électronique personnel, la définition moderne d' "ordinateur" est littéralement : "Un dispositif qui calcule, notamment une machine électronique (généralement) programmable qui exécute des opérations mathématiques et logiques à haute vitesse et qui assemble, range, met en corrélation, ou encore traite de l'information".   Tout dispositif qui traite de l'information remplit les conditions peut être appelé un ordinateur, surtout si le traitement est utile.   [citation nécessaire]  

Informatique non-conventionnelle  

modifier

Article principal : Informatique non-conventionnelle    

Historiquement, les ordinateurs furent tout d'abord mécaniques puis évoluèrent avec les lampes et enfin les transistors.   Cependant, conceptuellement des systèmes informatiques aussi polyvalent qu'un ordinateur personnel peuvent être construit à partir d'à peu près tout ce que l'on veut.   Par exemple, un ordinateur peut être construit avec des boules de billard (ordinateur boule de billard) ; un exemple souvent cité.   [citation nécessaire] De façon plus réaliste, les ordinateurs modernes sont construits avec des transistors réalisés sur des semi-conducteurs par photolithographie.    

Futur  

modifier

Il y a une recherche très active autour de la fabrication d'ordinateurs à partir de technologies très prometteuses.   La plupart des ordinateurs sont universels, ils sont capables de calculer n'importe quelle fonction calculable et ne sont limités que par leur capacité mémoire et leur vitesse opérationnelle.   Toutefois, des conceptions différentes d'ordinateurs peuvent aboutir à des performances différentes pour certains problèmes ; par exemple les ordinateurs quantiques peuvent potentiellement casser certains algorithmes de cryptage (par factorisation quantique) très rapidement.    

Thèmes à venir 

modifier
  • Glossaire informatique    

Intelligence artificielle  

modifier

Un ordinateur résoudra des problèmes exactement comme il a été programmé, sans tenir compte de l'efficacité, des solutions alternatives, des raccourcis possibles, ou même des erreurs de code.   Les programmes informatiques qui apprennent et s'adaptent font partie du domaine émergent de l'intelligence artificielle et d'apprentissage de la machine.    

Matériel  

modifier

Articles principaux : Matériel informatique et matériel pour ordinateur personnel    

Le terme matériel recouvre toutes les parties qui se trouvent être des objets tangibles.   Circuits, écrans, alimentations, câbles, claviers, imprimantes et souris sont du matériel.    

Histoire des matériels informatiques  

modifier

Article Principal: L'histoire des matériels informatiques    

Première génération

(mécanique/électromécanique)  

Calculateurs Le calculateur de Pascal, l'arithmomètre, le moteur de différence, les machines analytiques de Quevedo
Appareils programmables Le métier à tisser de Jacquard, le moteur analytique, l'IBM ASCC / Harvard Mark I, le Harvard Mark II, l'IBM SSEC, les Z1, Z2 et Z3
Deuxième génération (tubes à vide ou lampes) Calculateurs L'ordinateur Atanasoff-Berry, l'IBM 604, l'UNIVAC 60, l'UNIVAC 120
Appareils programmables Le Colossus, l'ENIAC, la Machine expérimentale à petite échelle de Manchester, l'EDSAC, le Manchester Mark 1, le Ferranti Pegasus, le Ferranti Mercury, le CSIRAC, l'EDVAC, l'UNIVAC I, l'IBM 701, le 702, et le 650, le Z22
Troisième génération (transistors discrets et

circuits SSI, MSI et LSI, respectivement intégrés à petite, moyenne et grande échelle)

Ordinateurs centraux Les IBM 7090, 7080, le System/360, et les "BUNCH"
Miniordinateur Le HP 2116A, l'IBM System/32, le System/36, le LINC, le PDP-8 et le PDP-11
Quatrième génération (circuits VLSI intégrés à très grande échelle) Miniordinateur Le VAX et l'IBM System i
Micro-ordinateur 4-bits L'Intel 4004 et le 4040
Micro-ordinateur 8 bits L'Intel 8008 et le 8080, le Motorola 6800, le 6809, le MOS Technology 6502, le Zilog 80
Micro-ordinateur 16 bits L'Intel 8088, le Zilog Z800, les WDC 65816/65802
Micro-ordinateur 32 bits L'Intel 80386, le Pentium, le Motorola 68000, l'ARM
Micro-ordinateur 64 bits Les Alpha, les MIPS, les PA-RISC, les PowerPC, les SPARC, les X86-64, l'ARMv8-A
Ordinateur intégré L'Intel 8048 et le 8051
Ordinateur personnel L'ordinateur de bureau, l'ordinateur domestique, l'ordinateur portable, l'assistant personnel (en anglais PDA), l'ordinateur portatif, la tablette, l'ordinateur corporel tel que l'ordinateur bracelet
Théorique et expérimental Ordinateur quantique, chimique,

informatique basée sur l'ADN,

ordinateur optique, ordinateur Spintronics

Autres thèmes matériels

modifier
Périphérique (entrées/sorties) Entrée La souris, le clavier, la manette de jeu, le scanneur d'images, la caméra Web, la tablette graphique, le microphone
Sortie L'écran ou moniteur, l'imprimante, le haut-parleur
Entrée et sortie Le lecteur de disquettes, le disque dur, le disque optique numérique, le téléscripteur
Les bus informatiques externes Courte distance RS-232, SCSI, PCI, USB
Longue distance (informatique réseau) Ethernet, les interconnexions ATM, FDDI (fibre optique)

Logiciel

modifier

Article principal : Logiciel  

Le logiciel se réfère aux parties de l'ordinateur qui n'ont pas de forme matérielle, telles que les programmes, les données, les protocoles, etc.   Lorsque le logiciel est stocké dans un matériel difficilement modifiable (tel que le BIOS d'un ordinateur personnel compatible PC), il est parfois appelé "micrologiciel".  

Système d'exploitation / Logiciel système UNIX et BSD UNIX System V, IBM AIX, HP-UX, Solaris (SunOS), IRIX, Liste des systèmes d'exploitation s'appuyant sur BSD
GNU/Linux Liste des distributions Linux, comparaison des distributions Linux
Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows Me, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10
DOS 86-DOS (QDOS), IBM PC DOS, MS-DOS, DR-DOS, FreeDOS
Mac OS Mac OS classique, Mac OS X
Systèmes intégrés et temps réel Liste des systèmes d'exploitation intégré
Systèmes expérimentaux Amoeba, Oberon/Bluebottle, Plan 9 de Bell Laboratories
Bibliothèque Multimédia DirectX, OpenGL, OpenAL, Vulkan (API)
Bibliothèque de programmation La bibliothèque standard langage C, la bibliothèque de modèles standard C++
Données Protocole TCP/IP, Kermit, FTP, HTTP, SMTP
Formats de fichier HTML, XML, JPEG, MPEG, PNG
Interface utilisateur Interface utilisateur graphique (WIMP) Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua
Interface utilisateur en mode texte Interface ligne de commande, interface utilisateur pour le texte
Logiciel d'application Suite de logiciels pour le bureau Traitement de texte, logiciel de mise en page, logiciel de présentation, système de gestion de base de données, gestion des tâches et du te temps, tableur, logiciel de comptabilité
Accès Internet Navigateur, gestionnaire d'e-mail, les logiciels pour les serveurs Web, les agents de transfert de courrier, les messageries instantanées
Conception et fabrication Conception assistée par ordinateur (CAO), Fabrication assistée par ordinateur (FAO), gestion d'usine, la robotique, la fabrication, la gestion de l'approvisionnement
Graphique L'éditeur d'image matricielle, l'éditeur graphique vectoriel, les logiciels de modélisation 3D, l'éditeur d'animations, les logiciels graphiques 3D, l'édition vidéo, le traitement d'image
Audio L'éditeur d'audio numérique, la restitution audio, le mélange audio, la synthèse audio, la musique informatique
Écriture logicielle Le compilateur, l'assembleur, l'interpréteur, le débogueur, l'éditeur de texte, l'atelier logiciel intégré, l'analyseur de performance, le contrôle des évolutions, la gestion de configuration
Éducation Le logiciel ludo-éducatif, les jeux éducatifs, les jeux dits sérieux, les simulateurs de vol
Jeux Les jeux de stratégie, d'arcade, les puzzles, les simulations, les jeux de tirs à vue, les plateformes, les jeux en ligne massivement multi-joueur, les fictions interactives
Divers L'intelligence artificielle, les logiciels antivirus, les scanneurs de logiciels nuisibles, les gestionnaires d'installations et de désinstallations des logiciels, les systèmes de gestion de fichiers

Langages  

modifier

Il y a des milliers de langages de programmation différents – certains sont destinés à un usage général, d'autres ne sont utiles que pour des applications hautement spécialisées.    

Langages de programmation  

modifier
Liste des langages de programmation Chronologie des langages, liste des langages par catégorie, liste des langages par génération, liste des langages, langages ne s'appuyant pas sur l'anglais
Langages d'assemblage couramment utilisés ARM, MIPS, x86
Langages de programmation de haut niveau couramment utilisés Ada, BASIC, C, C++, C#, COBOL, Fortran, PL/1, REXX, Java, Lisp, Pascal, Object Pascal
Langages de script couramment utilisés Bourne script, JavaScript, Python, Ruby, PHP, Perl  

 

Micro-logiciel

modifier

Le micro-logiciel est une technologie qui est à la jonction du matériel et du logiciel, telle que la puce BIOS à l'intérieur d'un ordinateur. Ce composant matériel est logé sur la carte-mère et contient le BIOS (logiciel) de démarrage.    

Types  

modifier

Les ordinateurs sont habituellement classés selon leur utilisation    

Selon leur utilisation  

modifier
  • L'ordinateur analogique    
  • L'ordinateur numérique    
  • L'ordinateur hybride    

Selon leur taille  

modifier
  • Smartphone  
  • Micro-ordinateur  
  • Ordinateur personnel    
  • Ordinateur portable  
  • Mini-ordinateur    
  • Ordinateur central    
  • Super-ordinateur    

Dispositifs d'entrée  

modifier

Lorsque des données brutes sont envoyées à l'ordinateur par le biais des dispositifs d'entrée, les données sont traitées et envoyées aux dispositifs de sortie.   Les dispositifs d'entrée peuvent être opérés manuellement ou automatiquement.   Le traitement lui-même est principalement contrôlé par le processeur.   Voici quelques exemples de dispositifs d'entrée opérés manuellement :  

  • Clavier configurable    
  • Trackball ou boule de pointage  
  • Manette  de jeu  
  • Appareil photo numérique  
  • Microphone    
  • Écran tactile    
  • Caméra vidéo numérique    
  • Scanner    
  • Tablette graphique    
  • Clavier d'ordinateur    
  • Souris    

Dispositifs de sortie  

modifier

Les moyens par lesquels l'ordinateur communique avec l’extérieur sont appelés dispositifs de sortie.   Ci-dessous quelques exemples de dispositifs de sortie :    

  • Moniteur ou écran  
  • Imprimante    
  • Projecteur    
  • Carte son    
  • Haut parleur    
  • Carte vidéo    

Professions et organisations  

modifier

L'utilisation des ordinateurs s'étant démocratisée, il existe un nombre croissant de métiers concernant l'informatique.    

Professions liées à l'informatique

modifier
Liées au matériel Ingénierie électrique, ingénierie électronique, ingénierie informatique, ingénierie des télécommunications, ingénierie optique, ingénierie des nano-technologies
Liées au logiciel Informatique, ingénierie informatique, publication assistée par ordinateur, interface homme-machine, technologie de l'information, systèmes informatiques, sciences numériques, ingénierie logicielle, industrie du jeux vidéo, conception de site Web  

La nécessité pour les ordinateurs de bien travailler ensemble et d'être capable d'échanger des informations a engendré un besoin, au niveau de nombreuses organisations de normalisation, de clubs et d'associations, de nature à la fois formelle et informelle.

Organisations  

modifier
Groupes de standardisation ANSI, IEC, IEEE, IETF, ISO, W3C
Associations professionnelles ACM, AIS, IET, IFIP, BCS
Associations pour les logiciels gratuits, libres et/ou ouverts Free Software Foundation, Mozilla Foundation, Apache Software Foundation

 

Liens externes  

modifier
  • Warhol & The Computer    
  • Wikiversity présente un quiz sur cet article    
Autorité de contrôle LCCN: sh85029552   _ GND: 4070083-5   _ BNF: cb119401913 (données)   _ NDL: 00561435
Électronique numérique
Composants Logique combinatoire, Circuit intégré, Porte logique, Logique séquentielle
Théorie Signal numérique, Algèbre booléenne, Synthèse logique, Logique en informatique, Architecture des ordinateurs, Signal numérique (traitement du signal), Traitement du signal numérique, Minimisation du circuit
Conception Synthèse logique, Register Transfer Level (RTL), Contrôle par équivalence formelle, Logique synchrone, Logique asynchrone, Automate d'états finis
Applications   Matériel informatique, Audio numérique, Photographie numérique, Vidéo numérique, Littérature électronique, Télécommunications
Problèmes de conception Métastabilité, Impulsion transitoire