Tout commence par l’insatiable besoin humain de compter. D’abord sur les doigts, puis on sophistique des machines de plus en plus performantes. Le secret résulte d’une succession d’impulsions électriques sur un code binaire (1 et 0). Cette technologie s’immisce d’ailleurs partout dans notre quotidien : écoles, hôpitaux, conquête de l’Espace…
Bref historique des grandes dates
- III° siècle : le boulier, système de boules mobiles qui accélère les calculs, fait le tour du monde grâce à son efficacité.
- 1617 : John Neper simplifie le système des logarithmes en créant des tables, les Bâtons de Neper qui résolvent la multiplication par l’addition de
nombres de segments adjacents. - 1620 : William Oughtred reprend les tables de Neper et les concrétise en règle à calcul.
- 1642 : le célèbre Blaise Pascal laisse son nom et sa renommée à la machine de Pascal ou Pascaline qui calcule grâce à la rotation de rouages.
- 1673 : le calculateur de Leibniz permet des multiplications et des divisions plus rapides.
- 1804 : l’automatisation s’étend au métier à tisser, Jacquard utilise pour la première fois des cartes perforées pour commander une machine.
- 1822 : on entend parler de machine à traiter et à imprimer des tables scientifiques, la Machine à différences de Charles Babbage est conçue.
- 1834 : le même système est simplifié et la Machine analytique fait son apparition, elle est destinée au traitement de nombreuses tâches à partir d’une
séquence d’instructions. - 1890 : on retrouve encore les mêmes caractéristiques dans le calculateur de Hollerith qui traite des statistiques à l’aide de cartes perforées.
- 1924 : la Tabulating Machine Company de Hollerith devient l’International Business Machines Corporation ou plus communément appelé IBM.
L’industrie qui concrétise la « machine tous usages » est en marche, l’apparition des ordinateurs est proche.
L’ère du microprocesseur
L’ère du microprocesseur est celle du numérique, au contraire de l’analogique qui répond à un flot continu de données.Le XXème siècle connaît donc la miniaturisation des systèmes de calculs dans une grande partie de l’équipement quotidien : montres numériques, appareils photos, thermomètres numériques, tensiomètres électroniques, vélos d’appartement, balances électroniques, automobile, détecteurs de fumée, de chaleur, à infrarouge. Le microprocesseur de ses appareils est piloté par des programmes spécifiques limités aux seules fonctions de l’objet.L’ordinateur, lui, ne connaît pas de limite, ou presque. Le microprocesseur d’un ordinateur est capable d’adapter son travail aux instructions fournies par l’utilisateur. Chaque tâche est soigneusement définie par ce que l’on appelle des programmes ou des logiciels qui s’achètent dans le commerce, ce qui permet de traiter des informations diverses et variées telles que des jeux, des traitements de données en texte ou en calcul…
L’ordinateur est donc un outil polyvalent, facile à utiliser, « même par un enfant », dit-on.
La puissance du binaire
La numération binaire est un code d’impulsions positives ou négatives, équivalent électrique de 0 et de 1. Ce système code toutes les données dans un ordinateur, ce dernier se résume à une circulation d’informations exprimée en 0 et en 1. C’est un processus électronique standardisé qui permet aux ordinateurs du monde entier de se transmettre des informations sans avoir à en faire une traduction, c’est un langage électronique. Il est appelé ASCII ou American Standard Code for Information Interchange aux Etats-Unis ou encore norme ISO, International Organization for Standardization. Il est composé de 8 caractères appelés des bits.
Ce code à deux symboles n’est pas tout jeune. Certaines tribus africaines communiquent en notes aiguës ou graves avec leurs tam-tams. Tout comme le morse est composé d’un trait et d’un point.
Le système décimal basé tout simplement sur les dix doigts de la main humaine se voit substitué par la simplicité de la numération binaire. Aucune discipline n’y échappe : logique, philosophie, mathématiques, technique.
Le code binaire est apparu pour la première fois dans l’essai d’un jeune étudiant, Leibniz, qui parlait alors de langage universel mais il ne le mit pas à profit. Dans la même ligne de pensée, en 1854, un mathématicien britannique, George Boole, conçoit un système de logique symbolique appelé algèbre booléenne, formule originale du système de numération binaire de nos ordinateurs numériques électroniques actuels.
Les trois opérations de base de l’algèbre booléenne sont appelées ET, OU et NON : vrai ou faux, oui ou non, ouvert ou fermé, zéro ou un. Introduite par Peirce en 1867 dans les cours de logique et de philosophie des universités américaines, elle permet à un autre jeune étudiant, Shannon, de se démarquer et de la mettre en pratique. Pour cela, il modifie une machine à calculer, les rouages et les pignons d’un analyseur différentiel créé par un de ses professeurs et les remplace par des circuits électriques. Le bit ainsi défini est la plus petite unité d’informations en code binaire utilisée par les ordinateurs ordinaires. 4 bits forment un demi octet ou quartet et 8 bits forment un octet.
Reste le besoin évident d’une machine aux dimensions raisonnables. Trois chercheurs s’attèlent séparément à l’élaboration d’un prototype.
Atanasoff, professeur de physique dans l’Etat de l’Iowa établit la conception possible d’un calculateur qu’il concrétise en 1939.
Stibitz, chercheur mathématicien dans une compagnie de téléphonie, fait un jour de 1937 la comparaison des circuits électromécaniques du téléphone avec l’algèbre booléenne et matérialise cette logique en un « calculateur à nombres complexes » en janvier 1940.
Konrad Zuse, ingénieur berlinois, ignorant tout des thèses de Babbage et de Boole décide de créer un calculateur sur le mode binaire pour faciliter les nombreux calculs interminables dont il a besoin pour son travail. Il en fabrique un de deux mètres carrés avec clavier et tableau d’affichage en 1936, le Z1, qu’il améliore, le Z2, jusqu’en 1939.
La deuxième guerre mondiale donne un tournant nouveau au rôle du système binaire et les différentes inventions existantes feront l’objet de progrès majeurs.
0 et 1 : des règles simples
Le langage de toutes les machines est depuis 1950 passé au système binaire. Ce dernier renforce l’efficacité des circuits et les rend moins coûteux. Cette capacité à traiter des informations diverses permet à un ordinateur d’étudier les sons par exemple et de les reproduire fidèlement. Dans ce cas, on dit que l’ordinateur « numérise » les données c’est-à-dire qu’il les traduit en chiffres binaires puis il les convertit en analogique pour que nous puissions les comprendre.
Du décimal au binaire et en sens inverse
Dans la numération binaire, comme en décimal, la valeur d’un chiffre est déterminée par son rang par rapport aux autres chiffres d’un nombre considéré. En décimal, en 1 vaut par lui-même 1, mais placé à la gauche de deux zéros, il détermine 100. Cette règle simple est utilisée en arithmétique ; ainsi, pour additionner ou soustraire des nombres, faut-il commencer par les aligner soigneusement en colonnes.
En numération décimale, chaque rang à la gauche de la virgule indique une puissance de 10. En binaire, ou base 2, chaque position à gauche signifie une puissance de deux : 2° est égal à un, 2¹ à deux, 2² à quatre, et ainsi de suite. Comme illustré ci-dessous, pour trouver l’équivalent décimal d’un nombre binaire, il suffit de noter quel rang occupent les 1 binaires et d’additionner leurs valeurs. La conversion est illustrée ci-dessous.
Comment lire les nombres binaires. Le système ne comprenant que deux symboles, chaque rang indique une incrémentation par puissance de deux, ce qui donne rapidement des nombres multi chiffres. En ajoutant la valeur de chaque colonne composée d’un 1, on obtient l’équivalent décimal. Ainsi, 101 binaire donne 5.
Conversion du décimal en binaire. Pour convertir un nombre décimal en binaire, il faut en soustraire d’abord la plus grande puissance possible puis les plus grandes puissances suivantes, posant des 1 chaque fois que la soustraction est possible, sinon des 0. Pour 43 décimal, on obtient 32, aucun 16, un 8, aucun 4, un 2 et un 1, ce qui donne 101011.
Les deux groupes de nombres constituent des équivalents décimaux et binaires. Les sommes sont trouvées en additionnant les colonnes et en reportant les retenues sur le rang immédiatement à gauche. Dans la première colonne décimale, 9 plus 9 égale 18, avec un 8 posé et un 1 de retenue. Dans la première colonne binaire, 1 plus 1 égale 10 (un-zéro, pas dix) avec le 0 posé et le 1 de retenue. La colonne binaire suivante devient alors 1 plus 1, ou 10 (un-zéro) ajouté à la retenue, soit un total de 11, le 1 de droite étant posé et l’autre restant en retenue.
Les Fonctions Logiques
Tous les ordinateurs modernes emploient le système de logique établi par George Boole. Les milliers d’interrupteurs électroniques microscopiques d’une puce d’ordinateur sont arrangés en « portes » qui donnent des résultats logiques, c’est-à-dire prévisibles. Les portes logiques fondamentales, ET, OU et NON, sont illustrées ci-dessous. Toute autre porte utilisée en informatique dérive de ces trois-là.
Reliées de diverses façons, les portes logiques permettent à l’ordinateur d’accomplir son travail avec les impulsions codées de son langage binaire. Chaque porte logique accepte des entrées sous forme de tensions basses ou hautes ; la tension représente n’importe quel concept binaire ; oui-non, un-zéro, vrai-faux. Une porte ET, par exemple, transmet l’équivalent d’un 1 binaire seulement si toutes les entrées valent 1, s’il s’agit d’un VRAI logique.
Les règles qui régissent les portes logiques leur permettent de réguler le mouvement des données et des instructions à l’intérieur de l’ordinateur. Par exemple, certaines données passeront d’un emplacement à un autre seulement si une porte ET reçoit des signaux VRAI de toutes les lignes d’entrée qui y sont reliées.
Les portes illustrées ci-dessus représentent des ET, conçues selon la convention symbolique des circuits électroniques. Bien qu’ici chaque porte ET ne reçoive que deux entrées, dans la réalité elle peut en recevoir davantage. Comme toutes les portes logiques cependant, elle n’engendre qu’une seule sortie. La règle d’une porte ET est qu’elle délivre l’équivalent d’un 1 binaire, ou VRAI logique, seulement si toutes les entrées sont VRAI. Les trois portes supérieures ci-dessus produisent un 0, ou FAUX, car aucune ne reçoit deux 1 en entrée ; seulement la dernière peut donner 1.
A l’image des portes ET, les portes OU peuvent accepter plus de deux entrées, mais avec une sortie unique. Cependant, les portes OU sont moins spécifiques que les portes ET. Comme nous pouvons le voir ici, une porte OU délivre un 1 binaire, ou VRAI logique, si l’une des entrées est VRAI. Une porte OU délivre l’équivalent d’un 0 binaire, ou FAUX, seulement si toutes les entrées répondent FAUX.
Les triangles à l’extrémité arrondie sont des portes NON, ou inverseurs. A la différence d’une porte ET ou OU, une porte NON n’accepte qu’une entrée, qui est alors inversée, 0 devenant 1 et réciproquement. Les portes NON sont souvent associées à des portes ET et OU pour former des portes ET-NON et OU-NON. Ces circuits hybrides traitent les entrées en suivant les règles ET/OU, puis inversent automatiquement la sortie.
Le lien entre les portes logiques
Les portes ET, OU et NON sont combinées de diverses façons pour former des circuits électroniques appelés demi-additionneurs (image 1) et additionneurs complets (image 2), qui permettent d’accomplir des additions binaires. Avec quelques modifications, on peut également soustraire, multiplier et diviser.
Le plus simple des deux circuits, le demi-additionneur, peut additionner deux chiffres binaires et engendrer un résultat avec retenue. Mais il ne peut prendre en compte un troisième chiffre, résultat d’une addition précédente. On l’utilise donc seulement en début d’une chaîne d’addition logique où la colonne des 1 ne peut comporter de retenue. En revanche, un additionneur complet peut traiter deux chiffres binaires et une retenue, et peut donc être utilisé à n’importe quel endroit de la chaîne.
Il n’existe pas une seule combinaison possible d’éléments logiques pour constituer un additionneur. Les différentes portes peuvent être placées de plusieurs façons. (Une porte OU suffit aux trois quarts de ce que fait un demi-additionneur, puisqu’elle engendre un 0 quand les deux entrées sont des 0, et un 1 quand l’une des entrées est un 1. Malheureusement, une porte OU engendre seulement un 1 quand les deux entrées sont des 1, plutôt que 0 avec 1 de retenue.) Pour toutes les applications mathématiques et logiques, il suffit que le circuit délivre un 1 ou un 0, ce qu’illustrent d’une façon claire et simple les diagrammes ci-dessous. Les liaisons de haute tension, ou 1 binaire, sont en rouge ; celle de basse tension, ou 0 binaire, sont en noir. Les intersections, où le courant d’une entrée est dirigé vers deux ou plusieurs portes différents, sont marquées d’un point.
Des additionneurs en cascade
A l’image des portes logiques qui se combinent pour donner des additionneurs, ceux-ci peuvent être reliés pour former ce qu’on appelle des additionneurs en cascade : un système comptant un additionneur pour chaque paire de bits du problème considéré. Dans l’exemple ci-dessous, deux nombres à quatre bits sont additionnés par une cascade de quatre additionneurs. Le premier est un demi-additionneur pour les bits de poids faible qui peut engendrer, mais jamais recevoir, un chiffre de retenue. Tous les autres sont des additionneurs complets.
L’addition de nombres binaires ou décimaux équivalents donne un même résultat, y compris les retenues. 7 équivaut à 0111 binaire et 6 à 0110 ; aussi la somme de 7 plus, soit 13, est-elle égale à la somme de 0111 plus 0110, soit 1101 binaire.
Dans cette cascade, chacun des quatre additionneurs reçoit des entrées différentes. Au sommet, le demi-additionneur ajoute 1 à 0 et donne 1, sans retenue. Le premier additionneur complet additionne deux 1 et on obtient 0 avec 1 de retenue. Le suivant ajoute à cette retenue deux 1 et donne 1 avec 1 de retenue. Le dernier combine deux 0 et une retenue pour donner 1. Le résultat : 1101, ou 13. A chaque fois qu’une retenue apparaît, elle est transmise à l’additionneur suivant.
La musique numérique
Comme tous les sons, la musique est faite d’ondes d’air comprimé qui provoquent des vibrations du tympan de l’oreille ou de la membrane d’un microphone. Dans ce dernier cas, la membrane mobile module un courant électrique qui crée un signal analogique du son. Autrement dit, la membrane engendre des courants dont les fluctuations de tension correspondent aux fluctuations de pression des ondes sonores. Les appareils d’enregistrement conventionnels stockent la configuration d’ondes sur bande magnétique ou sous la forme d’un sillon sur un disque. Mais durant l’enregistrement, les variations de l’alimentation électrique ou de la température peuvent affecter la configuration des ondes, altérant alors sensiblement la précision de la reproduction.
Avec l’avènement de l’enregistrement dit numérique, la simplicité du binaire est utilisée pour donner une fidélité quasi parfaite. Grâce à un procédé baptisé échantillonnage et quantification, un enregistreur numérique transforme la sortie d’un microphone en impulsions électriques codées. Des milliers de fois par seconde, un circuit de l’enregistreur gèle, ou échantillonne, la tension engendrée par le microphone ; un autre circuit mesure cet échantillon et lui attribue une valeur décimale qui est alors convertie en binaire. La reproduction d’une configuration d’ondes n’est plus alors qu’une simple question de conversion des nombres binaires en tensions précises qui commandent des haut-parleurs.
Sur un disque numérique, les données (le son) sont représentées par des cercles concentriques de trous et d’espaces. Le rayon laser de la platine numérique lit les trous comme les 0 et les espaces réfléchissants comme des 1. Les circuits électroniques reconvertissent alors ce flot de chiffres en musique.
La guerre, facteur de progrès
Fin 1941, la société IBM mettait son activité au service du gouvernement américain s’impliquant dans le conflit mondial, mobilisation générale oblige. Déjà une compagnie multimillionnaire grâce à des milliers de « machines de traitement de l’information », son dirigeant, Thomas Watson apporta ainsi une simplification non négligeable du travail administratif. Il prit sous son aile un jeune mathématicien d’Harward, Howard Aiken, qui s’appliqua à concrétiser la machine analytique envisagée par Babbage mais basée sur le système décimal. En 1943, appelé le Mark 1, cette machine de 15 mètres de long et de 2,40 mètres de haut comptait pas moins de 800 kilomètres de câbles. Elle servit pendant un an aux traitements balistiques pour l’armée puis mit au point des tables mathématiques et différents autres projets pour l’université d’Harward. Mais d’autres machines allaient reléguer au second plan le Mark 1 avant même qu’il ne soit conçu.
Konrad Zuse, en 1941, planchait sur un appareil plus petit donc moins onéreux à construire, une machine programmable basée sur le système binaire et baptisée le Z3. Elle fut utilisée pour résoudre les problèmes techniques de l’aéronautique et des missiles. Mais le gouvernement allemand n’entendait pas de cette oreille les recherches scientifiques de calculateur révolutionnaire à tubes à vides envisagé par Zuse, persuadé de gagner la guerre avant même la fin de sa construction. Pourtant ce dernier proposait, entre autres, un calculateur ultra rapide pour déchiffrer le code secret britannique.
Cependant, de leur côté, les Britanniques élaboraient le projet Ultra, aidés des services secrets polonais, de décoder le télescripteur électromécanique, Enigma, utilisé par les Allemands. L’équipe, renforcée par un petit génie, Alan Turing, mit finalement au point des machines plus ambitieuses et notamment le Colossus en 1943 dont les relais électromécaniques étaient remplacés par des tubes à vides (même technique que Zuse sans le savoir). Les messages interceptés étaient introduits dans le Colossus et lus par un lecteur photoélectrique à la vitesse incroyable de 5000 caractères par seconde. Cette machine était pourtant limitée au seul déchiffrage des codes secrets.
Aux Etats-Unis, le laboratoire de recherche balistique travaillait à la préparation de tables de tir, indispensables au travail de réglage des canonniers. En retard sur ses programmes, il fit appel à l’analyseur différentiel de l’école Moore. John Mauchly, physicien et Presper Eckert, technicien, proposèrent une meilleure solution : un calculateur électronique à tubes à vides, inspiré par les travaux d’Atanasoff. Soutenus financièrement par l’armée, ils mirent au point l’ENIAC (Electronic Numerical Integrator and Computer) fin 1945. Avec ses 5,40 mètres de haut et ses 24 mètres de long, cette machine pouvait traiter un million de cartes perforées IBM. A peine reconnue, ses concepteurs en imaginèrent une autre plus perfectionnée, l’EDVAC (Electronic Discrete Variable Computer). Munie de programmes et de données internes à sa mémoire, cette machine accélérait les traitements. Beaucoup de controverses au sujet de la reconnaissance des brevets de l’ENIAC firent fureur après l’arrivée de John von Neumann* dans l’équipe. Mathématicien, il écrivit un mémoire de 101 pages sur les fonctionnalités de la machine, en fit la publicité et en retira les lauriers. Mauchly et Eckert, outrés des agissements de Neumann soutenu par la communauté scientifique, quittèrent l’école Moore et s’installèrent à leur compte en 1946.
*Dans une communication, publiée en 1945, John von Neumann décrit les cinq composantes clefs de ce qui allait devenir « l’architecture Neumann » de l’ordinateur moderne. Pour être efficace et polyvalent, écrit-il, un calculateur doit posséder une unité arithmétique et logique (UAL), une unité centrale de commande pour orchestrer les traitements, une mémoire, une unité d’entrée et une unité de sortie. Il fait également remarquer qu’un tel système doit avoir recours à la numération binaire, fonctionner électroniquement plutôt que mécaniquement, enfin, accomplir ses tâches une à une. Devenus des évidences aujourd’hui parce qu’ils ont été largement appliqués depuis Neumann, ces principes guideront la conception des premiers gros ordinateurs ainsi que celle des machines plus petites des années suivantes.
Vers le règne de la concurrence
En 1949, Mauchly et Eckert reviennent faire une conférence sur les calculateurs électroniques à l’école Moore et un scientifique britannique, Maurice Wilkes remarque avec intérêt leur système de programme stocké dans la machine EDVAC. De retour à Cambridge, il rassemble le reste de l’équipe de l’école Moore et construit le premier calculateur à programme stocké, l’EDSAC (Electronic Delay Storage Automatic Calculator). Tout est alors prêt pour la prolifération de calculateurs toujours plus rapides, avec la possibilité de recharger des programmes instantanément et de traiter non plus seulement des codes secrets ou des calculs de balistiques mais des informations de toutes sortes.Que deviennent alors les principaux acteurs de cette ère informatique ?
- Konrad Zuse perd ses machines lors d’un bombardement allié sur Berlin sauf le Z4. Il se réfugie avec sa machine dans les Alpes bavaroises puis en 1949, commercialise les successeurs du Z4 et prospère.
- Alan Turing participe à la conception d’un calculateur puissant, l’ACE (Automatic Computing Engine) opérationnel en mai 1950.
- John von Neumann travaille à l’Institut of Advanced Studies à la conception nouvelle d’une machine, le MANIAC (Mathematical Analyser, Numerator, Integrator and Computer) destiné à résoudre les problèmes nés du développement de la bombe à hydrogène. Il devient membre du Commissariat à l’énergie atomique et du conseil de l’armée de l’Air en 1957.
- John Mauchly et Presper Eckert créent leur société à Philadelphie et mettent au point un ordinateur universel à usage commercial, l’UNIVAC (UNIVersal Automatic Computer) mais en 1950, ils font faillite et revendent leur firme à Remington Rand, fabricant de rasoirs électriques et de tabulatrices à cartes perforées.
- Howard Aiken développe à Harward les deuxième, troisième et quatrième génération du Mark 1.
- Thomas Watson, furieux du manque de reconnaissance de Aiken quant à l’implication d’IBM dans le projet Mark 1, fait fabriquer par ses chercheurs une machine plus rapide qui propulse IBM dans le monde informatique. A sa mort en 1956, IBM connaît déjà un franc succès commercial. IBM devient alors synonyme d’ordinateur à tel point que la plupart des gens pensent qu’il en est l’inventeur
Les prodiges de la miniaturisation
Les complexes cellules de mémoire
Ces trois photographies prises à l’aide d’un microscope montrent la surface, en plan toujours plus rapproché, d’une puce de mémoire vive dont la taille réelle est figurée par le rectangle rouge placé dans le coin inférieur gauche, ci-dessous. Connue également sous le nom de puce MEV ou RAM (MEmoire Vive ou Random Access Memory), elle offre un stockage temporaire pour les données ; à l’interruption de l’alimentation électrique, les données contenues dans la MEV disparaissent.
Cette puce MEV, illustrée ici, contient plus de 600 000 transistors et autres composants, offrant une capacité de 256 kilobits, soit 262 144 bits d’information. Chaque bit est stocké dans une cellule de mémoire individuelle, constituée de deux composants électroniques : un condensateur, qui emmagasine les données sous la forme d’une charge électrique (représentant alors le 1 binaire), ou l’absence de charge (le 0 binaire), et un transistor qui s’ouvre pour laisser passer l’information ou pour permettre à un nouveau bit d’entrer dans la cellule vide.
L’ensemble des 262 144 cellules de mémoire est divisé en quatre parties égales. A l’intérieur de chaque quadrant rectangulaire, les cellules sont disposées en colonnes et rangées. Cet agencement donne à chaque cellule ses coordonnées propres. Le travail de localisation des coordonnées est assuré par deux bandes de circuits décodeurs qui traversent la puce horizontalement et verticalement. A la demande du processeur central de l’ordinateur pour trouver l’adresse d’un octet donné (soit huit bits d’information), les décodeurs horizontaux localisent les colonnes idoines, et les décodeurs verticaux les rangées correspondantes. L’intégralité de cette opération nécessite moins d’une microseconde.
Une puce et la pointe d’un crayon sont agrandies ici 14 fois. Le pavé rouge révèle les dimensions réelles de la puce : 6 mm x 12 mm.
Sur cette vue du coeur de la puce, les cellules mémoire, pourtant agrandies 70 fois, semblent de minuscules grains.
Les circuits principaux des décodeurs, grossis 300 fois. Les couleurs proviennent de l’éclairage ; en fait, la puce est gris métal.
Tout un ordinateur sur une puce
Bien qu’il existe de nombreuses sortes de puces pour ordinateur (cf. encadré), les fonctions de chacune peuvent être combinées pour créer un ordinateur complet sur une seule plaque. La puce ci-dessous est une version récente de la TMS 1000 développée par Texas Instruments entre 1971 et 1974. Elle fut la première à rassembler les pièces essentielles d’un véritable ordinateur miniaturisé. De faible coût (six dollars en 1975), elle a permis l’essor de la microélectronique dans l’automobile, l’électroménager et le téléphone.
Le modèle présenté ici fut conçu pour être utilisé dans des calculettes de poche. Un examen de la couche supérieure révèle des fonctions que l’on retrouve, à l’exception de deux d’entre elles, bien particulières, sur toutes les puces. La mémoire morte (MEM ou ROM) (1) contient 1024 bits d’instructions stockées définitivement pour exploiter le calculateur. La mémoire vive (MEV ou RAM) (2) stocke 256 bits de données, uniquement nécessaires pendant la durée du traitement. Le décodeur de commande (3) décompose les instructions stockées en MEM en étapes détaillées pour exploitation par l’unité arithmétique et logique (UAL) (4), chargée des calculs numériques ; l’UAL, associée au décodeur de commande constitue le processeur central ou microprocesseur. Le circuit horloge (5) relie la puce à un cristal à quartz externe dont les vibrations coordonnent les opérations de la puce afin de synchroniser l’ensemble du traitement. La section entrée/sortie (6) dirige la transmission avec des périphériques extérieurs à l’ordinateur lui-même, comme le clavier ou l’affichage à cristaux liquides.
Un ordinateur sur une puce, agrandie ci-dessus, apparaît à gauche en taille réelle. Son cache de protection en plastique a été légèrement soulevé pour laisser apparaître la puce proprement dite et les connexions métalliques qui introduisent et récupèrent les signaux en entrée et sortie. Ces connexions sont elles-mêmes reliées à deux rangées de quatorze broches qui émergent du boîtier et s’insèrent dans la plaque de circuit de l’ordinateur que contrôle la puce.
La division du travail
Un ordinateur familial typique comprend au moins une demi-douzaine de puces différentes :
- Une puce horloge régit les impulsions régulières d’une tranche de cristal à quartz stimulée électriquement et fournit de nouvelles impulsions afin de synchroniser entre elles les autres éléments de l’ordinateur.
- Les puces d’interface traduisent les signaux d’entrée, comme la pression des doigts de l’utilisateur sur le clavier, en langage binaire.
- La puce microprocesseur, le centre nerveux de l’ordinateur, obéit aux instructions des programmes stockés dans les puces de mémoire, détermine les décisions logiques ou effectue les calculs arithmétiques. Ce travail est accompli essentiellement par l’unité arithmétique et logique de la puce ; or le microprocesseur contient aussi des circuits de commande qui organisent son travail, ainsi que des registres capables de retenir temporairement les données.
- Les puces MEM (de mémoire morte) contiennent des instructions ineffaçables à l’usage du microprocesseur. Les programmes sont implantés en usine, une fois pour toutes, dans la puce. Ils ne peuvent donc être lus que par le microprocesseur, sans jamais subir de modifications.
- Les puces PROM (mémoire morte programmable) offrent diverses solutions pour mettre à jour ou pour modifier les instructions, qui seraient demeurées inaltérables si elles avaient été stockées en MEM. Si certaines PROM peuvent être modifiées par rayons ultraviolets, d’autres le sont à l’aide de signaux électriques.
- Les puces MEV (de mémoire vive) stockent momentanément les données en traitement. Ces données peuvent aussi bien être modifiées que lues ; de nouvelles données incorporées dans les cellules MEV effacent automatiquement les précédentes.
La conception des circuits
La conception d’une puce exige patience et habileté, et ne peut être réalisée sans l’assistance d’un ordinateur. La puce étant fabriquée couche après couche, ses circuits doivent être conçus de façon identique, niveau par niveau. En règle générale, les concepteurs esquissent un projet maître pour chaque couche à l’aide d’un ordinateur qui stocke une configuration de circuits standard et propose plusieurs façons de les relier. La puce terminée ne dépassera pas six millimètres carrés. Partant de là, les dessins doivent être réalisés à une échelle de dix pour mille puis réduits photographiquement aux dimensions requises. La configuration réduite de chaque couche est reproduite sur une plaque de verre pour créer un photomasque. Le masque, qui agit comme le négatif d’une photo, permet à la lumière d’imprimer la configuration sur la puce. La configuration définit les endroits qui doivent être recouverts chimiquement, dopés avec des impuretés ou parcourus par des connecteurs métalliques.
Pour permettre la production en masse des puces, la configuration de chaque couche est répétée plusieurs centaines de fois à la surface d’une même plaque de verre. Concevoir une puce simple, comme celle qui serait créée par les quatre masques illustrés ci-dessous, ne nécessite seulement qu’une petite équipe de techniciens pendant quelques semaines. En revanche, une conception complexe peut demander plus d’une année de travail à des dizaines de spécialistes.
Du lingot aux plaquettes
Une fabrique de puces ressemble plus à un hôpital qu’à une usine. La fabrication est effectuée dans des « chambres stériles » où même l’air est filtré de ses moindres particules pathogènes à l’aide de machines spéciales. Les travailleurs portent des blouses et des bonnets. Le maquillage est interdit. De même, les crayons sont bannis pour éviter les particules de graphite.
Une telle obsession de propreté est indispensable à la prévention de toute contamination parasite ; un simple grain de poussière, à n’importe quelle étape de sa fabrication, peut entraîner la destruction totale de la puce. Même le matériau brut doit être pur. A partir de sable ordinaire, le silicium est raffiné, puis fondu et coulé en lingots (image 1), d’une pureté à 99,99999999 pour cent. Les plaquettes de lingot sont cuites afin de stériliser leurs surfaces (image 2). La seule contamination autorisée est celle des impuretés incluses dans le silicium pour lui permettre de transmettre un courant.
L’âge d’or d’une industrie
La technologie des ordinateurs a évolué très rapidement de 1975 à 1981. Avec l’apparition de la puce et la miniaturisation des composants, le calculateur énorme des années 1940 diminue de volume et de prix. L’idée d’un ordinateur individuel germe en 1975, tous les mordus d’informatique s’essaient à la création d’un ordinateur personnel. Apple Computer dépasse le milliard de chiffre d’affaires en cinq ans d’existence tandis que IBM clôt le débat avec son PC en 1981.
Les mini-ordinateurs voient le jour dans les années 60 mais frustrent encore les passionnés par son encombrement, équivalent à une armoire, et son prix à six chiffres. On parle alors de micro-ordinateurs pour satisfaire les attentes. Ce sera la combinaison du travail de chercheurs expérimentaux avec celui de la presse qui accélèrera l’effervescence de posséder un ordinateur chez soi. Les progrès techniques des microprocesseurs jouent aussi un rôle important dans la fiabilité de ces machines.
En 1969, Edward Roberts, jeune officier de l’armée de l’Air fasciné par les gadgets électroniques, s’associe avec trois camarades pour créer une entreprise, MITS, Micro Instrumentation and Telemetry Systems et rencontre le succès escompté en 1971 avec une calculatrice électronique en kit, composée de trois plaques de circuits intégrés, un clavier et un affichage numérique par lampes électroluminescentes. Grâce à ce produit, Roberts se met à vendre des calculatrices assemblées dès 1973 mais la concurrence ne se fait pas attendre et il commence à développer une machine plus puissante : un petit ordinateur numérique à prix abordable. Le micro-ordinateur construit autour du nouveau microprocesseur Intel 8080 est baptisé Altair. Soutenu par la presse, le Popular Electronics, les commandes du micro ordinateur affluent pour MITS. Cette réussite entraîne la naissance de nombreuses entreprises et la conception de produits parallèles. Le modèle vendu en kit permet l’abondance de techniciens en herbe qui y rajoutent des programmes personnels. Deux étudiants programmeurs, Paul Allen et Bill Gates, s’associent en 1975 pour écrire une version de langage informatique populaire appelé Basic (Beginner’s All-Purpose Symbolic Instruction Code) pour l’Altair, rendant son langage plus facile à maîtriser. Par la suite, Allen et Gates connaissent la réussite comme fondateurs de Microsoft. Deux autres étudiants créent un périphérique permettant à l’Altair d’afficher des graphismes en couleur sur un écran de télévision. Mais la société MITS n’est pas préparée à cette soudaine réussite et Roberts doit vendre sa firme. Cependant, grâce à lui, l’industrie de la micro-informatique est née.
Cependant, seules quelques entreprises tirent leur épingle du jeu. IMSAI Manufacturing est le premier fabricant d’ordinateurs individuels à vouloir étendre le marché, le caractère « équipement de bureau » prévaut sur le caractère ludique. Mais cette commercialisation tous azimuts nuit à son image et IMSAI fait faillite en 1979.
Tandy Radio Shack et Commodore International prirent le relais, bientôt talonnés par une jeune société, Apple Computer. Commodore lance le PET (Personal Electronic Transactor) courant 1977. La société investit dans une entreprise, MOS Technology, qui développe une puce appelée 6502. Tandy Radio Shack, déjà chaîne de magasins spécialisée dans le matériel électronique recrute Steven Leininger en 1976, ancien employé d’un fabricant de puces dans la Silicon Valley, pour concevoir un modèle concurrent à l’Altair. La société ne souhaitant pas vendre d’ordinateur en kit, Leininger conçoit l’architecture interne de la machine et la majeure partie du logiciel intégré. Le Model 1 est né. En 1978, Tandy devance Commodore sur le marché des ordinateurs individuels. C’est sans compter sur Apple, fondé en 1976 par deux étudiants, Wozniak et Jobs, qui présente à son tour son Apple I la même année. L’ancien dirigeant d’Intel, Markkula, s’associe comme partenaire financier à Apple et aide à la venue de l’Apple II en 1977 : boîtier de plastique lisse, six kilos, l’ordinateur peut générer des graphiques en couleur avec un minimum de composants. Les ventes s’élèvent à 2,7 millions de dollars.
Les années suivantes voient la disparition des pionniers, MITS et IMSAI au profit de la croissance d’Apple qui entre en bourse en 1980. Cependant, en 1981, IBM arrive sur le marché avec son IBM PC et la notoriété publique de la société lui confère sérieux et longévité.
Vue d’ensemble du système
La carte système comprend une unité centrale de traitement, ou UCT, microprocesseur gérant les activités de l’ordinateur. Chaque instruction doit être examinée par l’UCT avant d’être traitée. L’autre élément clé de cette carte système est une horloge à quartz coordonnant les réponses des circuits de l’ordinateur. Quand la machine est mise sous tension, le courant électrique entraîne la déformation d’un éclat de cristal de quartz, découpé avec précision, qui vibre avec régularité parfois des millions de fois par seconde. A chaque vibration, le cristal émet une impulsion de courant. Ces impulsions, combinées à d’autres signaux, contrôlent le déroulement d’une action et la synchronisation des circuits.
La carte système inclut également des connecteurs pour brancher les périphériques d’entrée et de sortie, et des microprocesseurs pour deux types de mémoire interne : la mémoire morte ou MEM, et la mémoire vive ou MEV. (La MEV est également connue sous le nom de RAM, Random Access Memory, mémoire à accès aléatoire, un terme impropre mais d’usage courant ; comme ROM, Read Only Memory, mémoire à lecture seule, pour MEM.) La MEM contient des instructions non modifiables. La MEV est utilisée pour stocker programmes et données uniquement quand l’ordinateur est sous tension.
Chaque puce de mémoire conserve ses informations sous la forme de nombres binaires, ou bits, codés en tant que charges électriques. Les charges sont stockées en des emplacements particuliers, appelés adresses. Chaque adresse revêt également la forme de nombres binaires. Les instructions sortent de l’UCT sous forme d’une série d’impulsions électriques codées pour trouver une adresse particulière ; l’information trouvée retourne à l’UCT pour traitement. Les codes d’adresses voyagent sur des fils parallèles appelés « bus d’adresses » ; les informations retournent à l’UCT sur des fils du bus de données. Le décodeur d’adresses et les sélecteurs, ou interrupteurs DIP (réglés pour conserver en permanence certaines adresses) aident à conduire les impulsions électriques à destination.
Le programme d’amorçage
Quand l’ordinateur est mis sous tension, l’électricité passe dans l’intégralité du système et une séquence d’événements prédéterminés s’amorce. L’horloge à quartz commence à envoyer des signaux dans le réseau du système, à raison de plusieurs millions d’impulsions par seconde. Chaque événement est régulé avec précision par ce flot rapide d’impulsions, qui sont indépendantes des autres signaux de commande de l’ordinateur. Au premier cycle de l’horloge, un signal de remise à zéro vide automatiquement tous les circuits internes de stockage temporaire de l’UCT, les registres, de toute charge qui aurait été engendrée par des surtensions ou par des restes de la précédente mise sous tension de l’ordinateur. En effaçant un registre particulier appelé registre d’instructions, le signal remet à zéro son compteur.
La machine est dès lors prête à procéder à ce que l’on appelle l’amorçage (ou boot). A la prochaine impulsion d’horloge, le registre d’instructions sera chargé avec une adresse qui a été préparée pour le système par les constructeurs de l’ordinateur ; cette adresse est habituellement déterminée par les sélecteurs, interrupteurs DIP.
Cette adresse, une suite de tensions hautes et basses exprimée ici par les chiffres binaires 11110010, identifie l’emplacement en MEM d’un programme d’amorçage. Le programme d’amorçage varie d’une machine à l’autre. Parfois, il oblige l’ordinateur à vérifier la présence d’une source externe de mémoire, comme un lecteur de disquettes, et à suivre les instructions qu’il y trouvera. Dans le système illustré ici, l’ordinateur vérifie diverses parties internes du système.
L’UCT traite le programme d’amorçage en milliers de brèves étapes très complexes ; dans ce cas, chaque étape consiste en un octet (huit chiffres binaires). Un octet peut représenté une adresse, une instruction ou les données trouvées à une adresse donnée (un chiffre, une lettre de l’alphabet notamment). Chaque octet circule sous forme d’une séquence de tensions hautes et basses dans le bus d’adresses, représenté par une bande jaune, ou dans le bus de données, représenté par une bande bleue.
Des millions de vérifications
Les étapes détaillées ci-dessus représentent le genre d’opérations discrètes qui doivent indéfiniment être répétées pour amener des instructions stockées jusqu’à l’UCT. Chacune de ces opérations se déroule en l’espace de trente nanosecondes environ (une nanoseconde équivaut à un milliardième de seconde). Ce qui apparaît ci-dessous est une vue plus vaste du programme d’amorçage en cours de fonctionnement.
La routine illustrée ici montre l’ordinateur vérifiant la MEV, mémoire vive, pour s’assurer que les puces sont en état de marche. Ce processus est divisé en millions d’événements séparés et, en fonction de la quantité de mémoire de l’ordinateur, peut prendre jusqu’à plusieurs secondes. Vérifier la MEV est une procédure complexe pour deux raisons. Premièrement, la puce de MEV contient le plus souvent 64K d’informations. En abrégé, K signifie 1024 bits, ce qui implique qu’une seule puce peut stocker 65 536 bits. Deuxièmement, ces minuscules puces à haute densité stockent les informations électroniques d’une façon plutôt différente de celles stockées en MEM. Comme nous avons vu précédemment, l’unité d’information huit bits que l’UCT lit en MEM est stockée sur une unique puce MEM. En MEV, les huit bits qui forment une unité de données sont stockées sur huit puces différentes en une séquence prédéterminée. Cette méthode permet au concepteur du système de tirer le meilleur parti de l’espace de stockage et du câblage de la carte système.
Pour s’assurer que toutes les puces de MEV fonctionnent, l’UCT envoie un bloc test de données dans le bus d’adresses à une adresse déterminée.
Le décodeur d’adresses stimule chacune des huit puces avant d’y stocker les bits d’informations. Puis l’UCT demande à lire les données qu’elle vient de stocker. Le décodeur stimule les huit puces pour que chacune transfère son bit de données dans le bus de données jusqu’à l’UCT.
Celle-ci vérifie que cet octet correspond au bit envoyé : la similitude doit être rigoureuse. Pour tester intégralement une puce, l’UCT doit conduire ce test 65 536 fois. Bien entendu, dans ce processus, sept autres puces MEV devront également être testées. Si l’UCT rencontre des erreurs, elle peut déceler que certaines parties de la MEV sont défectueuses et ne doivent donc pas être utilisées.
Après avoir examiné son bloc de puces de mémoire, le système de l’ordinateur effectue une vérification similaire de ses connecteurs d’entrée/sortie. L’UCT envoie alors une suite de signaux répétitifs aux connecteurs situés sur le panneau arrière de la carte système. Les connecteurs pour le moniteur, l’imprimante et les autres périphériques sont testés à leur tour.
Les quelques dernières instructions dans le programme d’amorçage de l’ordinateur indiquent à l’UCT de rechercher, dans une puce MEM spéciale, l’instruction suivante. Cette puce contient un langage résident, le plus souvent le BASIC, ou un programme d’application résident, un traitement de texte par exemple. Quelques secondes après la mise sous tension, le contrôle de l’ordinateur passe à ce programme ou à ce langage. Un message apparaît sur l’écran pour indiquer que l’ordinateur est prêt. Le message diffère d’une machine à l’autre mais il se veut toujours accueillant, ici, le mot BONJOUR apparaît au-dessus du curseur clignotant.
Domestiquer l’ordinateur
A partir de 1985, tout le quotidien est régi par des ordinateurs. Bases de données électroniques, alimentation en électricité d’un complexe, d’une station de métro, systèmes de communication, téléphonie, impression des journaux, radars, systèmes de diagnostic sophistiqué en médecine, lave-vaisselle, machines à coudre… Moins de quarante ans de progrès technique. Les ordinateurs sont maintenant gérés par des systèmes d’exploitation. Un système d’exploitation est l’ensemble complexe de programmes qui dirige l’ensemble des ressources de la machine, circuits logiques, mémoire, imprimante, clavier, écran. Il fournit en permanence les instructions nécessaires au bon fonctionnement de toute traitement informatique. Sans système d’exploitation, les premiers ordinateurs étaient si difficiles à programmer que leur utilisation pratique en était limitée. Le développement des systèmes d’exploitation a permis l’informatisation de la société et la fantastique panne informatique qui ébranla la société contemporaine lui a fait réaliser à quel point elle était devenue dépendante des ordinateurs.
Évolution du système d’exploitation :
- 1950 : avènement de langages de programmation appelés programmes assembleurs pour améliorer la productivité des ordinateurs.
- 1951 : Remington Rand lance son UNIVAC.
- 1953 : IBM lance une série d’ordinateurs, 650, 701 et 702. Les deux sociétés se partagent le marché sur lequel chacune d’entre elles démontre rapidement la rentabilité de leurs machines. Mais le système de programmation reste insatisfaisant et les nombreux tests effectués par différents programmeurs ne sont pas concluants en terme de rapidité d’exécution. Grâce à la persévérance d’un dynamique sous-lieutenant, Bob Patrick, un programme appelé Speedcode voit le jour, plus ou moins efficace.
- 1954 : Bob Patrick rentre au centre de recherches de General Motors et à partir de ce premier essai, il rédige le premier descriptif connu du système d’exploitation. Il consiste à remplacer le système de cartes perforées et d’imprimantes par un système de bandes magnétiques. Bob Patrick rajoute la possibilité de mettre plusieurs plannings de traitement des tâches sur une seule bande magnétique pour exécuter les opérations les unes après les autres sans interruption.
- 1955 : Bob Patrick présente son projet à une association d’utilisateurs d’IBM, le SHARE, et collabore avec l’un d’entre eux, Owen Mock, ingénieur à la North American Aviation, à l’écriture de tâches à orchestrer entre l’IBM 704, dernière version du 701 et les périphériques.
- 1956 : naît le premier système d’exploitation en trois phases ou système d’Entrée/Sortie GM-NAA (appelé aussi traitement par lots) : entrée, exécution, sortie sous le contrôle d’un ensemble de commandes de supervision appelé moniteur. Le programme est distribué sur plus de vingt sites équipés de IBM 704 en plus de la General Motors et de la North American Aviation. Un comité du SHARE est alors constitué pour développer un système plus performant, le SOS (Share Operating System).
- 1957 : IBM annonce la sortie prochaine de son 709 équipé du nouveau système SOS puis lance son équipe de concepteurs sur le FORTRAN, nouveau langage de programmation destiné à la communauté scientifique.
- 1960 : le marché des ordinateurs est en pleine expansion. D’autres sociétés rejoignent IBM, toujours leader, et Remington Rand : Burroughs, National Cash Register, Honeywell, RCA, Control Data Corporation et General Electrics. Les ordinateurs sont maintenant tous équipés d’un transistor à la place du tube à vide. Fiabilité et gain d’énergie. Les modèles d’IBM sont alors la série 7000 remplaçant la série 700 et le 1401 pour le 650.
- 1963 : l’industrie américaine dépense plus de 4 milliards de dollars pour ses systèmes informatiques, le gouvernement fédéral compte un parc de 1250 machines. Une croissance considérable de la présence indispensable des ordinateurs. Dès lors, les systèmes d’exploitation ne cessent de s’améliorer. Chaque compagnie y va de son génie. Burroughs met en place la multiprogrammation sur sa série 5000 pour accroître la puissance de ses machines, c’est un procédé de répartition de la mémoire entre les tâches de plusieurs utilisateurs qui travaillent en même temps sous un même système d’exploitation nommé le Master Control Program (MCP) et du temps dans l’UCT permettant la quasi simultanéité des résultats des différents travaux.
- 1964 : IBM remplace toutes ses gammes compatibles par une seule, le système 360 sous un système d’exploitation appelé l’OS 360 parce qu’il a la capacité de traiter n’importe quel type d’application à 360 degrés (imagé) Pas moins de 5000 hommes travaillent au projet. Le résultat est complet, réunissant tous les systèmes antérieurs en un seul, contrôle des périphériques, traitement de langages de programmation du plus haut niveau, sous-systèmes dédiés à des applications particulières (gestion de projets, de grandes bases de données), gestion d’une utilisation en temps réel, mise à jour et modification des plus faciles, plus de puissance et plus d’options.
RCA et General Electrics, incapables de suivre le rythme, se retirent du marché. Le 360 connaît un réel succès dans les affaires, les universités, l’industrie, les sociétés de services, les laboratoires de recherche mais aussi le gouvernement fédéral, il simule même les logiciels qui vont partir pour le premier voyage sur la Lune…
Le 360 est un événement historique dans le développement de l’informatique. Les ordinateurs font partie de la vie quotidienne, instruments redoutables d’efficacité et source de changement profond de la société. En somme, une véritable révolution.
Au cœur d’un système d’exploitation
Quand un utilisateur se livre à une opération, aussi simple soit-elle, l’ordinateur obéit à des centaines d’instructions électroniques à la cadence de plusieurs milliers voire plusieurs millions par seconde. Il reconnaît le nom du programme par l’intermédiaire de ses circuits d’entrée, recherche dans les unités de stockage de masse le code correspondant, le charge dans les mémoires vives et affiche sur le moniteur les messages d’accueil du programme.
Les logiciels qui prennent en charge ces opérations fondamentales constituent le système d’exploitation de la machine. Il s’agit d’un ensemble très important qui, sur de gros ordinateurs, peut contenir plusieurs millions d’instructions. C’est pourtant la complexité même de ce programme qui facilite le travail de l’utilisateur et rend possible l’extraordinaire variété des tâches accomplies par ces machines.
La plupart des systèmes d’exploitation sont organisés en groupes de programmes que nous allons détailler ci-après. Ensemble, ils constituent un ordinateur qui fonctionne souplement, chaque groupe, que nous appellerons administrateur, prenant en charge son domaine de responsabilités.
Le contrôleur
Au centre d’un système d’exploitation se trouve le contrôleur. Toute demande faite à l’ordinateur, qu’elle vienne sous la forme d’un ensemble d’instructions faisant partie d’un traitement par lots ou que ce soit une instruction isolée d’un dialogue interactif, est formulée dans un langage compréhensible par le contrôleur. Ce dernier en étudie tour à tour chaque élément afin de déterminer quelles ressources de l’ordinateur mettre en jeu. Ensuite, le contrôleur passe l’information aux autres administrateurs concernés.
Le contrôleur enregistre chaque travail à effectuer puis le divise en tâches qu’il répartit entre les autres groupes. Chacune de ces tâches reçoit un descripteur. Il s’agit d’un code permettant au contrôleur et à l’administrateur du CPU (ou UCT, Unité Centrale de Traitement) de suivre pas à pas le déroulement des opérations. Ce code indique l’endroit de la mémoire dans lequel se trouvent les informations concernant l’état de travail, s’il est terminé ou en cours de traitement. Mis à jour en permanence, ces descripteurs permettent au contrôleur et aux administrateurs de prendre à tout instant la décision adéquate. Ils laissent également la possibilité à l’administrateur du CPU de suspendre l’exécution d’un travail pour le reprendre plus tard sans perdre le fil, sans sauter ni répéter une étape.
En complément de son rôle de suivi du déroulement des opérations dans l’ordinateur, le contrôleur peut également avoir la charge de préserver l’ordinateur d’une utilisation illégale. Dans ce rôle de maintien de la sécurité, le contrôleur vérifie les noms des utilisateurs sur une liste électronique d’autorisation d’accès.
Dans le cas le plus simple, il demande à l’utilisateur un mot de passe qui confirme son autorisation d’utiliser l’ordinateur. Dans de nombreux systèmes, des vérifications supplémentaires permettent d’établir si, après avoir été autorisé à y accéder, l’utilisateur a le droit de s’en servir à son gré.
L’administrateur des entrées/sorties
L’administrateur des entrées/sorties est chargé d’un certain nombre d’opérations fondamentales. En fait, les premiers systèmes d’exploitation n’étaient rien d’autre que des programmes chargés de gérer les E/S, sans lesquelles l’ordinateur ne pourrait pas communiquer avec les utilisateurs. Le gestionnaire des E/S prend en charge de nombreuses opérations d’entrées/sorties simultanées. De plus, il doit s’accommoder des différences de vitesse entre le CPU, qui peut traiter plusieurs dizaines de millions de bits par seconde, et les périphériques, tel que le clavier, qui n’envoient ou ne reçoivent que quelques centaines de bits par seconde.
Pour éviter au système d’être pénalisé par ces énormes différences, l’administrateur emploie des buffers, zones de mémoires utilisées pour stocker temporairement les données en attendant leur traitement par le CPU. En outre, l’administrateur des entrées/sorties a la responsabilité de répartir le travail des périphériques partageables, lecteurs de disque par exemple, qui peuvent traiter en même temps des problèmes très différents, ou d’autres comme les imprimantes, qui n’effectuent qu’une tâche à la fois. Afin de pallier les longues attentes des périphériques non partageables, l’administrateur peut utiliser la technique du « spooling » qui consiste à conserver provisoirement en mémoire de grandes quantités de données en attendant que le périphérique se libère.
Afin de conserver la trace de tous les travaux qui entrent et sortent de la machine, l’administrateur des entrées/sorties doit constamment tenir à jour un fichier en mémoire, qui indique l’état des divers périphériques. Ces informations permettent à l’administrateur de déterminer à tout instant les périphériques utilisables. Si quelque tâche exige l’utilisation d’un périphérique occupé, le gestionnaire crée une file d’attente organisée selon les priorités, ou tout simplement en fonction de l’ordre d’arrivée. Tout en assurant toutes ces fonctions, l’administrateur des entrées/sorties doit conserver d’étroites relations avec les autres administrateurs. Pour signaler au CPU qu’une tâche entrée/sortie est terminée ou qu’une autre peut commencer, il utilise des signaux dits interruptions. Il lui faut évidemment coopérer avec l’administrateur de la mémoire pour situer les données correspondant à telle ou telle tâche.
L’administrateur des fichiers
Dans tout travail réalisé par un ordinateur, de nombreuses demandes sont formulées pour retrouver des données ou des programmes sur les systèmes de mémoire permanente de la machine. C’est, entre autres, le travail de l’administrateur des fichiers. Il est chargé de trouver de la place pour écrire les nouveaux fichiers ou d’effacer les anciens quand il en reçoit l’ordre. En outre, il limite l’accès aux données aux seuls détenteurs d’une autorisation. La clé de la réussite, dans la gestion de plusieurs milliers de fichiers, réside dans la tenue d’un index rectifié chaque fois qu’un fichier est créé, mis à jour, ou effacé.
Quand des données sont enregistrées sur bande, tous les bits du fichier doivent être réunis en séquence. Cependant, sur un disque, un fichier peut être réparti en divers endroits. L’administrateur des fichiers doit être capable de réunir ces fragments quand on le lui demande. Ce système de rangement peut paraître aléatoire, il permet néanmoins de tirer le meilleur parti de la place mémoire, en ajustant la taille des diverses portions de fichier à celle des endroits disponibles.
Pour permettre à l’administrateur de faire face à cette immense complexité, chaque portion de fichier se termine par un pointeur qui indique l’endroit où se trouve la suite du fichier. Les pointeurs signalant le début des fichiers sont consignés dans un index qui permet de retrouver facilement et sans erreur l’ensemble des données d’un fichier, quels que soient les endroits où il a été enregistré.
Que l’information soit enregistrée sur bande ou sur disque, le traitement des données commence toujours par le nom du fichier et la commande à laquelle répondre. Ces informations proviennent des terminaux et transitent par le contrôleur. C’est lui qui passe ensuite la commande à l’administrateur des fichiers, qui se charge de consulter ses registres afin de réunir les éléments d’information. Lorsque cette dernière est disponible, il avertit l’administrateur des entrées/sorties, lequel la véhicule vers le terminal, l’imprimante ou le modem.
L’administrateur de la mémoire
Pour être menée à bien, toute tâche requiert un certain espace dans la mémoire vive de l’ordinateur. L’administrateur a la responsabilité d’attribuer à chaque tâche la quantité de mémoire nécessaire au bon déroulement de celle-ci. Il doit également s’assurer que la place mémoire ainsi attribuée n’est pas déjà occupée pour un autre usage.
La mémoire est divisée en sections de même taille appelées « pages ». Dépendant de l’ordinateur et de son système d’exploitation, une page peut contenir plusieurs milliers d’octets de mémoire. L’administrateur de la mémoire divise chaque tâche en sections d’une page, puis leur attribue de l’espace vide. A l’instar de l’organisation sur disque, une tâche peut être disséminée aux quatre coins de la mémoire.
Si tout l’espace est plein, comme c’est souvent le cas pour un ordinateur très sollicité, l’administrateur de la mémoire utilise une possibilité du système d’exploitation connue sous le nom de « mémoire virtuelle » afin de faire de la place pour le nouvel arrivant. Lorsque la place supplémentaire est nécessaire pour de nouvelles données ou pour un programme, l’administrateur de la mémoire utilise les codes d’identification préparés par le contrôleur pour recopier sur les unités de stockage un certain nombre de pages inutilisées à cet instant précis. Cela lui permet de remplir l’espace ainsi libéré avec les nouvelles données à traiter. S’il a soudain besoin des anciennes données, il peut rapidement les relire sur les unités de stockage pour les replacer en mémoire, déplaçant au besoin des informations inutilisées.
L’une des rares informations qui ne quitte jamais la mémoire est la table de référence qui sert à répertorier l’attribution des pages dans la mémoire. Grâce à cette table, constamment mise à jour, l’administrateur de la mémoire peut retrouver les éléments de chacune des tâches traitées.
L’administrateur de l’UCT (CPU)
Toute tâche accomplie par le système d’exploitation requiert la puissance de calcul du processeur central, le CPU. Le travail essentiel de l’administrateur en charge du CPU consiste à planifier son activité. Il organise la file d’attente des opérations à traiter. Il répartit le temps entre les différentes opérations afin que chacune reçoive sa part de temps de CPU selon la méthode des « tranches de temps ».
Une fois qu’une tâche est terminée, le CPU envoie le résultat à l’administrateur de la mémoire pour une mise en mémoire temporaire et la tâche suivante est mise en route. Si le travail n’est pas terminé, il retourne dans la file d’attente pour attendre un autre tour.
L’administrateur du CPU dispose de plusieurs options qui lui permettent d’attribuer certaines priorités aux différentes tâches qu’il doit traiter. Chaque fois qu’une nouvelle tâche arrive dans la file d’attente, l’administrateur du CPU peut revoir la liste des priorités et réarranger la file d’attente en conséquence. Ainsi une tâche peut se retrouver immédiatement en tête si l’administrateur décide que cette manière de faire est la plus efficace. Il peut prendre cette décision en fonction de la nature des diverses demandes et de son expérience passée, et donc attribuer quelques tranches de temps à une tâche importante avant d’autres mineures afin que l’attente soit réduite.
En certaines occasions, l’administrateur peut même interrompre une tâche au beau milieu d’une tranche de temps afin de traiter instantanément un événement d’une priorité des plus pressantes comme par exemple une demande d’entrée/sortie du système d’exploitation ou une indication dysfonctionnement, ce que l’on appelle une « interruption » parce que la tâche prioritaire demande à l’administrateur l’arrêt du traitement en cours pour être immédiatement prise en compte. Pour répondre à une telle demande, l’administrateur commence par faire ce que l’on appelle une sauvegarde de contexte en recopiant l’état du traitement en cours dans une mémoire spéciale appelée « pile d’interruption ». Quand la tâche prioritaire a été traitée, l’administrateur de CPU peut relire cette « pile » avant l’interruption afin de reprendre le cours normal des opérations.
Une tâche ayant provoqué une interruption peut à son tour être interrompue par une tâche plus prioritaire. L’administrateur du CPU effectue alors une autre sauvegarde de contexte sur le sommet de la pile. Quand le CPU reprend une tâche sur la pile, il s’agit toujours de la dernière sauvegardée.
La machine à tout faire
Impressionnant d’efficacité, le système informatique de la police New Yorkaise, le SPRINT (Special Police Radio Inquiry Network), permet un traitement des informations à une vitesse record. Grâce à un système d’exploitation, l’ACP (Airline Control Program) conçu par IBM, qui gère une grande quantité de données et la transmet instantanément, une carte détaillée de la ville localise à tout instant les diverses patrouilles et les services d’assistance disponibles. C’est ce que l’on appelle un système de gestion transactionnel en temps réel ou OLTP (on-line transaction processing) qui permet l’échange d’informations entre la machine et son utilisateur. Le terme de « temps réel » signifie que l’utilisateur à un accès immédiat à la puissance de traitement et aux données durant l’opération, c’est-à-dire que l’opérateur travaille directement avec la machine ; ce qui n’est pas le cas du traitement par lots pour lequel l’utilisateur n’a pas le contrôle de l’opération pendant toute la durée du traitement.
La gestion transactionnelle date des années 1960 où elle a été conçue pour permettre aux utilisateurs de retrouver les informations, de les modifier ou de les compléter de manière rapide. La caractéristique principale est de permettre à plusieurs utilisateurs d’avoir accès à une même information. Grâce à ce système, l’utilisation de l’ordinateur est simplifiée et offre un service plus rapide, plus souple et plus complet tout en efficacité.
Ces avantages se retrouvent dans la rapidité d’intervention des forces de police lors d’un appel mais aussi dans le système automatique de réservations des compagnies aériennes (plus de 20 compagnies le possèdent à la fin des années 1980). Il s’agit d’un logiciel issu de la collaboration entre IBM et American Airlines sous le nom de SABRE (Semi-Automated Business Research Environment) en 1964 et géré par le système d’exploitation ACP, à la fois gestionnaire de transaction et gestionnaire de bases de données.
Dans le même temps, une autre technique apparaît, le traitement partagé en ligne, système interactif qui donne à l’utilisateur des résultats immédiats. Il offre la possibilité de contrôler rapidement les erreurs dans les fichiers et de les modifier. John McCarthy, professeur des sciences de la communication publie en 1959 un rapport qui l’amène à mettre au point ce système sous le nom de CTSS (Compatible Time-Sharing System) qui sera effectivement opérationnel en 1961. C’est un ensemble de programmes appelés « executive » ou « supervisor » soit une coordination du fonctionnement des composants du système accompagné d’une horloge interne qui répartit des tranches de temps à chaque utilisateur. CTSS est un système multi-utilisateurs et multi-tâches.
Tandis que l’ACP permet à plusieurs utilisateurs d’accéder à une même base de données, le CTSS peut résoudre des problèmes divers sur différents programmes. Le partage des fichiers devant être autorisé et non plus automatique. Très vite, le système est utilisé par des services de comptabilité en ligne, d’organisation du personnel et des patients dans des hôpitaux…
Le système de traitement transactionnel marche plus fort pour IBM que le système de temps partagé. Cela lui vaut un partenariat avec North American Rockwell, entreprise aérospatiale qui a pour projet le programme Apollo, destiné à voyager vers la Lune. En 1965 une équipe formée de chercheurs des deux sociétés met en place un système de gestion d’inventaire semblable à l’ACP. En 1967, le partenariat cesse pour incompatibilité d’objectifs mais IBM consent à assurer la maintenance et la modification du logiciel qu’il nomme IMS (Information Management System) qui fonctionne à merveille en tant que traitement par lots à partitions ultra prioritaires et contribue au succès du programme Apollo en 1969.
IBM travaille en parallèle avec une grosse société de services, Commonwealth Edison qui souhaite investir dans un système interactif de base de données clients. Leur collaboration donne naissance à un système d’information client (Customer Information System ou CIS) inauguré en 1968 comme premier service consommateurs en ligne fonctionnant en temps réel. IBM le commercialise sous le nom CICS (Customer Information Control System) et profite d’un nombre incessant de commandes, il modifie régulièrement ses systèmes pour répondre à la demande d’une clientèle toujours plus exigeante.
Le système ACP permet à IBM de s’assurer un marché fort intéressant. Entre le logiciel SPRINT dont la police New Yorkaise ne peut plus se passer, le réseau SABRE des compagnies aériennes, IBM compte aussi parmi ses illustres clients, Bank-Americard, ou depuis 1977 VISA, qui utilise alors un système d’autorisation de crédit hors zone de la banque éditrice appelé BASE 1.
Le traitement des opérations en temps réel s’étend à tous les secteurs dans les années 1970 grâce à l’arrivée des mini-ordinateurs intégrés de systèmes OLTP. De plus, l’industrie du supermarché adopte l’Universal Product Code (UPC) qui permet l’impression et la lecture des codes barres dans les magasins. Gain de temps pour les clients et les directeurs de magasin. De même les compagnies de téléphone utilisent les systèmes OLTP et informatisent leur base de données tout comme les bibliothèques.
Les années 1980 voient la modification toujours plus performante du système ACP en TPF (Transaction Processing Facility), utilitaire de traitement d’opérations avec de plus en plus de fonctions, favorisant la simplification des systèmes de réservation. Il est aussitôt adopté avec aisance par de grandes chaînes hôtelières comme la Holiday Corporation qui en fournit à toutes ses filiales, Holiday Inn, Hampton Inns et Embassy Suites. Les ventes de systèmes OLTP se multiplient alors par 4 dans la première moitié de la décennie.
Remédier aux pannes
Cette abondance de systèmes OLTP engendre une difficulté majeure : celle des pannes d’ordinateurs. Celles-ci deviennent critiques car elles entraînent des manques à gagner du fait de la dépendance des entreprises aux ordinateurs. Les sociétés dépensent alors des millions pour mettre au point des systèmes de sauvegarde qui ne fonctionnent pas.
Une petite société de Californie voit le jour fin 1974, Tandem Computers et crée un système moins onéreux, un ensemble de matériel/logiciel spécialement conçu pour les systèmes OLTP : un ordinateur et un système d’exploitation capables de poursuivre le traitement des opérations en cas de dysfonctionnement intempestif. Les inventeurs ne sont rien moins que des anciens de la très célèbre Hewlett-Packard, Jim Treybig, ancien directeur de marketing de la division micro-ordinateurs, Mike Green et Jim Katzman, concepteurs architectes, Jack Loustanou, ancien cadre supérieur chargé de la politique commerciale.
Le produit qui résulte de leur collaboration voit le jour en 1975, le Tandem 16 ou Système Non-Stop. C’est un système informatique transactionnel en temps réel qui tolère la panne, la réparation en temps réel et l’évolution du système. Autrement dit, l’ordinateur continue de fonctionner même si un de ses éléments tombe en panne, même pendant la réparation d’un élément de l’unité centrale et il accepte l’ajout de nouveaux programmes. Ce système d’exploitation utilisé est appelé Système d’Exploitation des transactions/Tandem (T/TOS). En 1977, Tandem avait la confiance des banques et en était l’un des principaux fournisseurs, détrônant IBM, son système en continu représentant un standard de fiabilité dans les transactions directes. Puis le système Tandem s’étendit au secteur industriel. En 1980, Tandem était l’entreprise à la plus forte croissance des Etats-Unis, de 6 clients en 1977, elle en comptait 758 en 1983 pour atteindre 450 millions de dollars. L’ordinateur prenait une importance considérable en tant qu’outil de travail économique dans la vie de tous les jours, il était le centre principal de commerce. On parle alors de l’Âge de l’Information.
L’invasion des microprocesseurs
La quantité de microprocesseurs produite chaque année varie de quelques dizaines en 1972 à plusieurs millions dans les années 1980. Leur usage envahit tout type d’équipement de la vie quotidienne des citoyens : électroménager, machines à coudre, moteurs automobiles, appareils photo, même les jouets et bien sûr les micro-ordinateurs.
L’évolution est considérable en ce qui concerne l’électronique bancaire mais aussi le commerce. Dans ce domaine, l’informatisation permet de suivre la marchandise en temps réel, de la vérifier grâce aux code-barres et par là même d’automatiser la vente, ce qui engendre une simplification de la comptabilité.
L’ère de l’informatique fait des ordinateurs les maîtres de notre quotidien.