14
Généralités L'ordinateur et les périphériques Un ordinateur est une machine qui traite des informations quanti- fiables (exprimables par des chiffres) selon les instructions dʼun programme. Une instruction consiste en un ordre dʼeffectuer une tâche élémentaire. « Additionner 2 et 2 » ou « Afficher à lʼécran le message "Bonjour" » sont des exemples d'instructions. Lʼoriginalité et lʼintérêt de lʼordinateur dérivent principalement du fait qu'il est universel : il peut exécuter des travaux de tout ordre, depuis le pilotage dʼun satellite jusquʼà la clôture de la comptabilité d'une entreprise. Cette universalité est la conséquence de sa programmabilité. Un programme peut contenir quelques instructions seulement, mais il peut aussi être énorme. Par exemple, Windows se compose de plusieurs dizaines de millions d'instructions, ce qui représente 2'000 ou 3'000 classeurs pleins. Si une personne voulait travailler seule à recréer Windows, il lui faudrait 10'000 ou 20'000 ans. Un ordinateur est une machine de Turing, du nom d'un scientifique anglais, Alan Turing (1912-1954). Par définition, une machine de Turing est capable de traiter n'importe quel programme valide. Autrement dit, un micro-ordinateur à 10 euros occupant quelques centimètres carrés peut exécuter les mêmes programmes qu'un supercalculateur à 20 millions d'euros. Simplement, il le fera beaucoup plus lentement. Les circuits électroniques Au niveau le plus bas, un ordinateur est un ensemble de circuits électroniques qui se composent principalement de portes logiques faites de transistors. En 2009, la barrière du milliard de transistors dans un microprocesseur a été passée. Les portes logiques de base sont : La porte OR (ou) a deux entrées et une sortie. Si les deux entrées A et B sont à 0, on a 0 en sortie. Sinon, on a 1 (voir la table de vérité ci-contre). La porte AND (et) a aussi deux entrées et une sortie. Si les deux entrées sont à 1, on a 1 en sortie. Sinon, on a 0. La porte NOT (non) a une entrée et une sortie. Si l'entrée est à 1, la sortie sera à 0 et inversement. La porte XOR (ou exclusif) a deux entrées et une sortie. Si les deux entrées sont à 1 ou à 0, on a 0 en sortie. Si l'une des entrées est à 1 et l'autre à 0, on a 1 en sortie. La porte XNOR (non ou exclusif) est l'inverse de la XOR. Si les deux entrées sont à 1 ou à 0, on a 1 en sortie. Si l'une des entrées est à 1 et l'autre à 0, on a 0 en sortie. L'ordinateur et les périphériques 1 http://www.jaquet.org, novembre 2009 Lʼinformatique L'ordinateur Les grands systèmes Les serveurs

L'ordinateur et les périphériques - jaquet.org · Autrement dit, un micro-ordinateur à 10 euros occupant quelques centimètres carrés peut exécuter les mêmes programmes qu'un

  • Upload
    hatram

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Généralités

L'ordinateur et les périphériques

Un ordinateur est une machine qui traite des informations quanti-fiables (exprimables par des chiffres) selon les instructions dʼun programme. Une instruction consiste en un ordre dʼeffectuer une tâche élémentaire. « Additionner 2 et 2 » ou « Afficher à lʼécran le message "Bonjour" » sont des exemples d'instructions.

Lʼoriginalité et lʼintérêt de lʼordinateur dérivent principalement du fait qu'il est universel : il peut exécuter des travaux de tout ordre, depuis le pilotage dʼun satellite jusquʼà la clôture de la comptabilité d'une entreprise. Cette universalité est la conséquence de sa programmabilité.

Un programme peut contenir quelques instructions seulement, mais il peut aussi être énorme. Par exemple, Windows se compose de plusieurs dizaines de millions d'instructions, ce qui représente 2'000 ou 3'000 classeurs pleins. Si une personne voulait travailler seule à recréer Windows, il lui faudrait 10'000 ou 20'000 ans.

Un ordinateur est une machine de Turing, du nom d'un scientifique anglais, Alan Turing (1912-1954). Par définition, une machine de Turing est capable de traiter n'importe quel programme valide. Autrement dit, un micro-ordinateur à 10 euros occupant quelques centimètres carrés peut exécuter les mêmes programmes qu'un supercalculateur à 20 millions d'euros. Simplement, il le fera beaucoup plus lentement.

Les circuits électroniquesAu niveau le plus bas, un ordinateur est un ensemble de circuits électroniques qui se composent principalement de portes logiques faites de transistors. En 2009, la barrière du milliard de transistors dans un microprocesseur a été passée.

Les portes logiques de base sont :

• La porte OR (ou) a deux entrées et une sortie. Si les deux entrées A et B sont à 0, on a 0 en sortie. Sinon, on a 1 (voir la table de vérité ci-contre).

• La porte AND (et) a aussi deux entrées et une sortie. Si les deux entrées sont à 1, on a 1 en sortie. Sinon, on a 0.

• La porte NOT (non) a une entrée et une sortie. Si l'entrée est à 1, la sortie sera à 0 et inversement.

• La porte XOR (ou exclusif) a deux entrées et une sortie. Si les deux entrées sont à 1 ou à 0, on a 0 en sortie. Si l'une des entrées est à 1 et l'autre à 0, on a 1 en sortie.

• La porte XNOR (non ou exclusif) est l'inverse de la XOR. Si les deux entrées sont à 1 ou à 0, on a 1 en sortie. Si l'une des entrées est à 1 et l'autre à 0, on a 0 en sortie.

L'ordinateur et les périphériques 1 http://www.jaquet.org, novembre 2009

Lʼinformatique

L'ordinateur

Les grands systèmes

Les serveurs

• La porte NOR (non ou) est l'inverse de la OR. Si les deux entrées sont à 0, on a 1 en sortie. Sinon, on a 0.

• La porte NAND (non et) est l'inverse de la AND. Si les deux entrées sont à 1, on a 0 en sortie. Sinon, on a 1.

Tout cela est très abstrait et on peut mieux se rendre compte du comportement des portes logiques au moyen des diagrammes de Venn ci-contre (source : http://en.wikipedia.org/wiki/Logic_gate).

Une machine de Turing peut être construite en utilisant uniquement ces mécanismes. Autrement dit, tous les traitements possibles d'un ordinateur peuvent être implantés dans des agencements de portes logiques et c'est bien ce qui se passe dans la réalité : la totalité du travail effectué par un ordinateur est le résultat de courants électriques qui passent dans des transistors.

L'important est de comprendre qu'un ordinateur n'est rien d'autre qu'un assemblage de milliards de transistors et que, s'il est si simple à utiliser, c'est parce que les fabricants ont monté sur cette plate-forme une pile logicielle qui masque l'aridité de l'électronique sous des dehors beaucoup plus ergonomiques. Quand on ouvre une fenêtre dans une interface graphique, on déclenche plusieurs millions d'opérations de bas niveau dont chacune d'elles implique un flux de centaines de 0 et de 1 à travers des milliers de transistors.

Le langage-machine

Ces opérations de bas niveau sont commandées par les instructions de ce qu'on appelle le « langage-machine » (comprendre : le langage de la machine). Chaque famille de processeurs a son propre langage-machine, ce qui veut dire que le même programme écrit en C++ ou en Java sera traduit de manière complètement différente selon qu'il tourne sur une machine Intel, Sparc ou Power.

Le langage-machine est le langage quʼun ordinateur peut exécuter. Il se présente sous la forme dʼune suite de bits. Une instruction se compose par exemple des champs suivants :1° opcode (code de l'instruction, par exemple « additionner deux nombres entiers ») ;2° adresses des données sur lesquelles porte l'instruction ou opérandes (données immédiates,

par exemple 2 et 3).

Un exemple possible se présente ainsi : 0000100000000000000000100000000000000011. Les huit premiers bits (00001000) forment l'opcode et signifient qu'il s'agit d'additionner deux nombres entiers immédiats, les douze suivants (000000000010) sont le nombre 2 et les douze derniers (000000000011) le nombre 3.

L'ordinateur et les périphériques 2 http://www.jaquet.org, novembre 2009

On voit que, si les informaticiens devaient écrire les programmes en langage-machine, ils trouveraient cela extrêmement difficile. Si on reprend l'exemple ci-dessus (000010000000000 0000000100000000000000011), un seul 0 ou un seul 1 en plus ou en moins provoquera une erreur à l'exécution.

Un premier pas consiste à utiliser le langage d'assemblage (assembly language). Au lieu d'écrire 0000100000000000000000100000000000000011, on écrit par exemple ADDINT 2,3, ce qui veut dire add integers 2 and 3. C'est la traduction directe du langage-machine, avec ADDINT au lieu de 00001000 et les nombres écrits en base dix plutôt qu'en base deux, mais c'est bien plus facile à écrire.

Si le programmeur est très bon en langage d'assemblage, il peut écrire des programmes optimisés pour l'ordinateur sur lequel ils doivent tourner. Il n'y a donc pas de langage plus efficace, mais le programmeur doit être capable de mieux optimiser son code que ne le fait un bon compilateur.

De plus, il faut des dizaines d'instructions en langage d'assemblage pour faire la même chose qu'une seule instruction dans un langage évolué comme le C++, le C# ou Java.

Dans la plupart des cas, il vaut donc mieux travailler dans un langage évolué et laisser le logiciel faire le travail automatique de traduction en langage-machine.

Le système d'exploitation

Le système dʼexploitation gère et coordonne les activités de l'ordinateur. C'est la machine virtuelle qui rassemble les services dʼallocation et dʼordonnancement des ressources de lʼordinateur.

L'allocation des ressources concerne le partage. Par exemple, tous les programmes en cours de traitement se trouvent dans la mémoire centrale de lʼordinateur, et cʼest la tâche du système dʼexploitation de faire en sorte quʼils se partagent cet espace sans se gêner.

L'ordonnancement concerne l'organisation de l'usage des ressources dans le temps. Par exemple, c'est le système d'exploitation qui gère la succession des accès au disque dur par les programmes.

Les trois fonctions fondamentales de tout système d'exploitation sont :1. la gestion du processeur (gestion de l'usage du processeur par les programmes en

exécution) ;2. la gestion de la mémoire (allocation de zones de mémoire aux programmes en exécution) ;3. la gestion des entrées-sorties (dialogue entre l'ordinateur et ses périphériques).

C'est le noyau (kernel) du système d'exploitation qui s'occupe de ces trois fonctions. Les applications font donc appel au noyau chaque fois qu'il y a quelque chose à lire depuis le clavier ou à afficher sur l'écran.

Autrement dit, quand le traitement de texte ou le tableur affiche une fenêtre à l'écran, ce n'est en réalité pas lui qui fait le travail, c'est le système d'exploitation. L'application le lui demande par le moyen d'un appel au système.

L'ordinateur et les périphériques 3 http://www.jaquet.org, novembre 2009

En somme, les applications baignent dans l'environnement du système d'exploitation (voir schéma ci-contre). Tous les échanges entre l'utilisateur et une application passent par le système d'exploitation. De même, tous les échanges entre les applications et le matériel passent par le système d'exploitation.

Sans le système d'exploitation, les programmes devraient gérer directement le matériel, ce qui les rendrait beaucoup plus difficiles à écrire et beaucoup plus volumineux. De plus, un défaut dans le code d'un programme pourrait bloquer le fonctionnement de toute la machine.

En informatique de gestion, le système d'exploitation assure deux autres fonctions essentielles : 1. la gestion des fichiers (gestion du stockage des fichiers sur les mémoires externes) ;2. la gestion de l'interface avec l'utilisateur.

Sous Windows, la gestion des fichiers est assurée par NTFS. Sous Mac OS, c'est HFS Plus. Sous Unix et Linux, l'utilisateur a le choix entre une quinzaine de possibilités, mais ext3 et ext4 sont répandus.

Dans l'ensemble des systèmes d'exploitation, c'est FAT qui s'emploie pour les clés USB et ISO 9660 pour les disques optiques (CD, DVD, etc.), ce qui est très pratique : une clé USB ou un CD créé sous Linux est lisible sous Windows ou Mac OS.

L'utilisateur peut interagir avec le système d'exploitation au moyen de trois interfaces :• l'interface de commandes ou CLI (command line interface) ou shell ;• les menus ;• l'interface graphique ou GUI (graphical user interface)

Dans le cas de Mac OS et Windows, l'interface avec l'utilisateur est incluse dans le système d'exploitation alors que, dans le monde Unix, c'est un logiciel séparé du système d'exploitation. On lance la CLI comme on lancerait un traitement de texte — c'est un programme comme un autre.

L'architecture de l'ordinateur

Lʼarchitecture de lʼordinateur est fondamentalement simple. Quelle que soit sa taille et le type de tâches quʼon lui donne à accomplir, un ordinateur assure les trois mêmes fonctions essentielles : échanger des informations, les stocker et les traiter. Ces fonctions sont implantées dans les trois organes dont se compose tout ordinateur :1. le ou les processeurs centraux pour les traitements ;2. la mémoire centrale pour le stockage ;3. lʼinterface dʼentrée-sortie pour les échanges dʼinformations.

Les liaisons entre les composants passent par des chemins appelés bus.

Les bus relient aussi les éléments dont sont constitués les processeurs, la mémoire centrale et les entrées-sorties. Ils comprennent souvent 8, 32, 64 ou 128 voies parallèles.

L'ordinateur et les périphériques 4 http://www.jaquet.org, novembre 2009

Si un bus est universel, il véhicule des adresses, des commandes et des données. Sinon, il est spécialisé dans l'un de ces trois rôles.

Pour prendre un exemple concret, si on clique sur Enregistrer dans une application, cela implique l'ordre de copier (bus de commande) des informations (bus de données) à un endroit bien précis (bus d'adresses).

Le fonctionnement de lʼordinateur est rythmé par une horloge (clock) qui permet de rythmer le travail selon un modèle très simple : un battement dʼhorloge, un changement dʼétat. Il existe deux changements dʼétat possibles : de la valeur 1 à la valeur 0, et de la valeur 0 à la valeur 1.

Lʼhorloge permet de synchroniser les tâches, mais aussi de dater les opérations, notamment les créations et les modifications de fichiers.

Le hertz (Hz) est lʼunité de mesure de la vitesse de lʼhorloge. Un ordinateur qui fonctionne à 3 GHz est un ordinateur dont lʼélectronique peut changer dʼétat trois milliards de fois par seconde, mais cette unité de vitesse est sans grand intérêt. Ce qui importe, c'est le nombre d'opérations réelles que l'ordinateur est capable de faire.

Le multitraitementLe multitraitement (multiprocessing) est la capacité d'un ordinateur à exécuter plusieurs programmes en parallèle. Pour cela, il faut qu'il y ait plusieurs processeurs centraux ou un processeur contenant plusieurs cœurs, c'est-à-dire plusieurs unités de traitement.

S'il y a égalité entre les unités de traitement — ce qui est presque toujours le cas — on parle de SMP (symmetric multiprocessing).

Ne pas confondre le multitraitement avec le multitâche (multitasking), qui est la capacité d'un ordinateur à traiter plusieurs programmes en exécution de manière entrelacée. Il consacre par exemple un centième de seconde à chacun d'eux si bien que l'utilisateur a l'impression qu'ils sont exécutés en même temps, mais il n'en est rien.

Jusqu'au début des années 2000 environ, on utilisait plusieurs processeurs si on voulait augmenter la puissance de traitement des ordinateurs. Aujourd'hui, on utilise plutôt le multi-cœur (multi-core), une approche qui consiste à placer plusieurs unités de traitements dans un seul processeur physique (c'est l'idée de « plusieurs processeurs en un »).

Le multi-cœur est couplé avec le multithreading, une technique qui améliore le parallélisme des traitements. Aujourd'hui, le multitraitement inclut par définition le multithreading.

En simplifiant, le multi-cœur améliore plutôt le parallélisme des applications — par exemple, on n'observera pas de ralentissement si un antivirus se met à scanner le système pendant qu'on travaille avec un traitement de texte — alors que le multithreading améliore plutôt le parallélisme à l'intérieur des applications. C'est le cas, par exemple, quand un système de gestion de base de données répond aux requêtes de plusieurs utilisateurs en même temps.

L'ordinateur et les périphériques 5 http://www.jaquet.org, novembre 2009

En 2006, Intel a mis sur le marché le processeur Core 2 avec un double cœur, puis, en 2008, le processeur i7 avec un quadruple cœur, et le successeur du i7 est un modèle Xeon à huit cœurs, en 2010. L'image ci-dessous montre le i7 (auteur : chris.jervis, source : http://www.flickr.com/photos/28079555@N04/3201704432/sizes/m). Ces processeurs reconnaissent le multithreading, qu'Intel appelle Hyper-Threading. Les principaux microprocesseur Power ou Sparc sont aussi multi-cœur.

Attention, le multitraitement ne fonctionne correctement que si les quatre éléments suivants le reconnaissent :- la carte-mère ;- le système d'exploitation ;- le compilateur utilisé pour créer l'application ;- l'application.

Dans le cas du système d'exploitation, du compilateur et de l'application, la reconnaissance est complète ou partielle. Un système d'exploitation se compose de plusieurs milliers de fichiers exécutables et une application en regroupe des dizaines ou des centaines. Il arrive donc très souvent que certaines fonctions soient adaptées au multitraitement et d'autres non.

Le processeur central

Le processeur central est le cœur de lʼordinateur. Il traite les informations en exécutant les instructions des programmes.

Les processeurs actuels sont des microprocesseurs, ce qui veut dire quʼils sont très intégrés. Ils tiennent souvent sur une seule plaquette de quelques millimètres carrés logée dans un chip, un boîtier de plastique noir de trois ou quatre centimètres de côté.

On peut exprimer la vitesse dʼun processeur en Mips (millions dʼinstructions par seconde) ou en Gflops (milliards d'opérations en virgule flottante par seconde).

Fondamentalement, un processeur sait faire trois choses : calculer, comparer et copier des données (on appelle parfois ces opérations « les trois C »).

Calculer consiste à effectuer des opérations arithmétiques sur les données. Un exemple est le calcul dʼune facture (voir schéma ci-dessus).

Comparer consiste à lire une donnée, à la confronter avec une autre donnée et à déterminer si elles sont identiques ou non (schéma ci-contre). Cʼest une opération très répandue dans tous les domaines de lʼinformatique. Par exemple, une recherche dans une base de données sʼeffectue en comparant des informations données au clavier avec un ensemble de données stocké dans un fichier.

L'ordinateur et les périphériques 6 http://www.jaquet.org, novembre 2009

Copier consiste à reproduire une donnée. Par exemple, lʼordinateur peut charger un programme de traitement de texte de la mémoire de masse dans la mémoire centrale. Cette opération de chargement de la mémoire de masse dans la mémoire centrale est indispensable pour permettre à la machine de traiter ce programme.

Inversement, lʼordinateur peut décharger un document de la mémoire centrale sur la mémoire

de masse. Cette opération sʼappelle enregistrement, et elle est vitale dans le fonctionnement des ordinateurs car elle est nécessaire pour rendre les données permanentes. Certains programmes le font automatiquement. C'est le cas des SGBD (systèmes de gestion de bases de données). Non seulement ils enregistrent automatiquement les transactions dans la base de données, mais ils les placent en plus dans un fichier de journalisation appelé log file (cette opération n'est toutefois pas automatique ; elle doit avoir été paramétrée par l'administrateur de la base de données). De plus, ils consignent le statut dʼexécution du travail à la fin de chaque transaction, voire de chaque étape de transaction, ce qui permet de reprendre le travail au bon endroit si un problème surgit. Cela minimise le risque qu'une transaction se fasse par erreur zéro fois ou deux fois.

Pour effectuer ces opérations, le processeur sʼappuie sur une architecture en quatre éléments :1. lʼunité de commande (control

unit) ;2. lʼunité arithmétique et logique ou ALU (arithmetic and logic unit) ;3. les registres (register file) ;4. une ou plusieurs antémémoires ou caches.

Lʼunité de commande est lʼorgane matériel de commande de lʼordinateur. Elle constitue le relais entre le programme en exécution, qui lui transmet les instructions à exécuter, et les autres organes de lʼordinateur, qui exécutent ces instructions. Physiquement, son rôle essentiel consiste à ouvrir et fermer des connexions électriques entre des composants.

LʼALU est la calculette de l'ordinateur. Elle effectue les calculs (arithmétique) et les comparaisons (logique, par allusion aux portes logiques).

Les registres forment un ensemble de mémoires minuscules. Il y en a typiquement vingt à cinquante dans un processeur central. Un registre a généralement une capacité de 8, 16, 32 ou 64

L'ordinateur et les périphériques 7 http://www.jaquet.org, novembre 2009

bits. Les capacités de 8 ou 16 bits s'emploient dans les dispositifs techniques et les capacités de 32 ou 64 bits dans les ordinateurs de gestion.

Comme les registres se trouvent à lʼintérieur du processeur, ils permettent un traitement très rapide des données. Les programmes y placent les informations les plus utiles : les résultats intermédiaires des calculs, les adresses des données en cours dʼutilisation, etc.

On distingue trois catégories de registres :

• les registres dʼadresses, qui permettent au processeur central de localiser les informations dont il a besoin ;

• les registres de données, qui servent en quelque sorte de bloc-note pour le processeur ;

• les registres spéciaux, que le système dʼexploitation utilise pour stocker des informations nécessaires au traitement.

On appelle ordinateur 64 bits (64-bit computer) une machine dont les registres de données ont une taille de 64 bits.

Trois registres particulièrement importants se rencontrent dans tous les types dʼordinateurs. Ce sont : - IR (instruction register), qui abrite le contenu de lʼinstruction en cours de traitement ;- PC (program counter), qui contient lʼadresse de la prochaine instruction à exécuter ;- AC (accumulator), qui contient le dernier résultat intermédiaire obtenu par lʼALU.

À un instant donné, les registres contiennent toutes les informations nécessaire au traitement, ce qui veut dire que le contenu des registres suffit pour définir complètement la situation dʼun programme. Cʼest grâce à cela quʼun ordinateur peut être multitâche : il exécute un programme A pendant un bref laps de temps — par exemple, un centième de seconde — puis il enregistre le contenu des registres. Il passe ensuite au programme B et fait de même, puis au programme C, et ainsi de suite jusqu'à ce que tous les programmes en traitement aient eu droit à un instant dʼexécution par le processeur. Lʼordinateur recharge alors le contenu des registres du programme A et relance le tour de rôle. On parle de manège ou de RR (round-robin).

Le mécanisme est très dynamique : de temps à autre, un programme arrivé à terminaison quitte le manège, ou un programme prêt à démarrer se joint aux autres.

Les caches

Un cache est une mémoire privée du processeur. Il sert à accélérer le traitement. Son efficacité sʼexplique par plusieurs raisons :• les données se trouvent tout près du lieu de leur traitement ;• le processeur reste moins longtemps en attente des données ;• le taux de disponibilité du bus de la mémoire est meilleur ;• les caches offrent de meilleures performances que la RAM (mais ils sont plus coûteux).

L'ordinateur et les périphériques 8 http://www.jaquet.org, novembre 2009

Le fait que les mémoires caches offrent de meilleures performances que la mémoire centrale a donné lieu à une architecture en plusieurs étages avec un cache très rapide, appelé L1 (level 1), situé à l'intérieur du processeur. Suit un cache plus grand, mais un peu moins rapide parce qu'il est moins près de l'ALU, le L2 (level 2), puis parfois un cache L3, puis, enfin, la mémoire centrale. Et il y a encore un cache appelé cache disque entre la mémoire centrale et le disque :

La taille dʼune antémémoire sʼexprime en kilo-octets ou en mégaoctets. Bien quʼelle soit beaucoup plus petite que la mémoire centrale, elle parvient à stocker la plupart des informations demandées par le processeur. Comment cela sʼexplique-t-il ? Par la notion de localité de référence. Si on observe le fonctionnement dʼun ordinateur, on sʼaperçoit quʼun ensemble dʼinstructions tend à être localisé dans une zone de mémoire de petite taille. Une antémémoire cent fois plus petite que la mémoire centrale peut ainsi répondre à 90 ou 95% des demandes du processeur.

Le taux de réussite (hit rate) dʼune antémémoire est égal au nombre de succès (hit) divisé par le nombre dʼinsuccès (miss).

Le principe de la localité de référence explique aussi que lʼaugmentation de la taille de lʼantémémoire ne sert à rien au-delà dʼune certaine valeur S qui varie selon lʼemploi de lʼordinateur (voir schéma ci-contre).

Les antémémoires sont transparentes, ce qui signifient quʼelles fonctionnent de manière invisible. Il est impossible à un programme de gérer un cache. Seule l'électronique du processeur « voit » les caches.

La mémoire centrale

La mémoire centrale (main storage, main memory, primary storage ou core storage) se compose de deux éléments : la RAM et la ROM.

La mémoire morte ou ROM (read-only memory) est une mémoire permanente ; elle permet notamment à lʼordinateur de se mettre en marche, de reconnaître les périphériques de base et de faire communiquer les composants matériels entre eux.

La mémoire vive ou RAM (random-access memory) est une mémoire volatile qui contient les informations en cours dʼemploi, cʼest-à-dire : 

• le noyau du système dʼexploitation ;• les programmes en cours dʼexécution ;• les fichiers de données en cours de traitement.

L'ordinateur et les périphériques 9 http://www.jaquet.org, novembre 2009

La mémoire vive ne contient que les données en train dʼêtre exploitées. Les données dormantes (non traitées en ce moment) se trouvent sur la mémoire de masse, cʼest-à-dire sur un disque dur ou plus rarement sur une mémoire flash comme une clé USB ou un disque SSD (solid-state drive).

Le fait que la RAM soit volatile signifie que son contenu sʼefface quand lʼordinateur est mis hors tension. Pour conserver les informations quʼelle contient, il est nécessaire de les copier sur un disque ou une autre mémoire permanente.

La zone de stockage de la mémoire centrale est composée de cellules (cells), aussi appelées emplacements ou cases. Chaque cellule se caractérise par une adresse et un contenu, en règle générale sous la forme dʼun octet (8 bits).

Dʼordinaire, les adresses sʼexpriment sur 32 à 64 bits. Ce nombre donne la capacité dʼadressage maximale : 2n pour n bits. Une adresse de 32 bits permet de désigner 232 cellules, soit 4 gigaoctets (4 294 967 296 octets). Une adresse de 64 bits permet dʼadresser 16 exaoctets (18 446 744 073 709 551 616 octets).

Le mécanisme dʼadressage de la mémoire centrale sʼappuie sur un arbre binaire (voir le schéma de la page précédente). Lʼadresse dʼune cellule correspond au chemin sur lʼarbre (schéma ci-contre).

Les cellules de la mémoire nʼont pas toutes le même statut. Certains types de données, notamment les entiers et les réels, doivent commencer à une cellule dont lʼadresse est divisible par quatre, cʼest-à-dire une adresse qui se termine par deux zéros (par exemple, 0000, 0100, 1000 et 1100).

L'interface d'entrée-sortieDans un ordinateur, lʼinterface dʼentrée-sortie ou unités dʼentrée-sortie (input/output interface, I/O interface) se charge de fournir les chemins dʼentrée et de sortie dʼun ordinateur et dʼorganiser le trafic sur ces chemins.

L'interface d'entrée-sortie la plus commune est PCI. Elle s'emploie dans les PC, mais aussi dans d'autres types d'ordinateurs, notamment dans le monde Unix.

La photo ci-contre montre, de haut en bas, un socle PCI x4, un x16, un x1, un autre x16 et un socle de première génération (auteur : snickerdo, http://en.wikipedia.org/wiki/Bus_(computing)1).

L'ordinateur et les périphériques 10 http://www.jaquet.org, novembre 2009

1 Ce lien ne marche pas parce qu'il contient des parenthèses. En informatique, il ne faut jamais utiliser des caractères spéciaux dans des noms.

Lʼinterface dʼentrée-sortie permet à lʼordinateur de communiquer avec les périphériques. À leur tour, ceux-ci mettent le système informatique en communication avec les personnes qui lʼutilisent.

Le système des entrées-sorties poursuit deux objectifs : uniformiser et coordonner les entrées-sorties.

Dans un système informatique, le bus dʼentrée-sortie nʼest quʼun bus parmi dʼautres. Des bus sʼutilisent

chaque fois quʼil faut copier ou transférer des données, que ce soit à lʼintérieur dʼun composant ou entre les composants dʼun système informatique.

Le traitement

On l'a vu, un ordinateur exécute des instructions en langage-machine. Ces instructions font partie dʼun ensemble spécifique à chaque famille de processeurs qui sʼappelle le jeu dʼinstructions (instruction set ou parfois command set).

Chaque famille de processeurs a son jeu dʼinstructions propre.

Voici quelques exemples dʼinstructions :• Charger dans un registre le contenu d’une cellule de la mémoire centrale

• Comparer le contenu de deux registres

• Additionner deux entiers qui se trouvent dans des registres

• Sauter à une adresse déterminée (jump)

Un jeu dʼinstructions réunit généralement de 50 à 200 instructions différentes. Un ordinateur ne peut exécuter que ces instructions, qui forment le langage-machine. Il les traite une à une, en effectuant une dizaine dʼétapes par instruction (voir schéma ci-contre).

Le fait que toutes les données traitées soient enregistrées dans des registres pose le problème de la précision finie.

Si on suppose que les registres d'un ordinateur font 8 bits pour simplifier la lecture, le nombre le plus grand est :

11111111

Si on ajoute 1 à ce nombre, on obtient 100000000. Or ce nombre occupe 9 positions alors que le registre n'en a que 8. Le résultat est qu'il y aura débordement (overflow).

L'ordinateur et les périphériques 11 http://www.jaquet.org, novembre 2009

On a le même problème qu'avec le compteur kilométrique à 6 chiffres d'une voiture : au millionième kilomètre parcouru, le compteur marque de nouveau zéro.

En règle générale, lorsquʼun overflow se produit dans un ordinateur, la valeur résultante est laissée vide ou prend la forme dʼun signe spécial qui sert à marquer lʼerreur.

Un autre problème est celui du codage du signe : comme lʼordinateur ne sait travailler quʼavec des bits, les nombres négatifs doivent être exprimés au moyen de 1 et de 0 tout comme les nombres positifs. La méthode utilisée aujourd'hui est celle du complément à deux (twoʼs complement). Lʼalgorithme est le suivant :1. prendre la valeur binaire du nombre (par exemple, exprimé sur 8 bits, 7 vaut 00000111) ;2. inverser la valeur de tous les bits (11111000) ;3. ajouter 1 à ce nombre (11111001).

Le dimensionnement

Avant de mettre en place un serveur, il faut définir la taille de chacun de ses composants de telle manière que lʼordinateur forme un ensemble doté de deux caractéristiques fondamentales : il doit être équilibré — sinon, lʼélément le plus faible formera un goulet dʼétranglement — et il doit être suffisamment puissant — sinon, les temps de réponse ne seront pas satisfaisants. Cette tâche sʼappelle le dimensionnement (sizing). Elle concerne les trois organes de lʼordinateur : le processeur central, la mémoire centrale et lʼinterface dʼentrée-sortie.

Cʼest le nombre et le type des programmes dʼapplication utilisés sur la machine qui déterminent la taille des organes.

Quand les programmes exécutés par un ordinateur génèrent plus de trafic dʼentrée-sortie que de travail pour le processeur, on dit que le traitement est I/O-intensive. Inversement, quand ils donnent plus de travail au processeur quʼau bus, on dit que le traitement est processor-intensive.

Dans un contexte I/O-intensive, lʼinterface dʼentrée-sortie est un goulet dʼétranglement potentiel. Ce cas se rencontre fréquemment sur les serveurs de bases de données.

Dans un contexte processor-intensive, ce sont le processeur et la mémoire centrale qui forment un goulet dʼétranglement potentiel.

La puissance à prévoir pour les processeurs dépend principalement des applications à installer. De manière générale, les applications de type technique et scientifique sont plus lourdes pour le processeur que les applications de gestion. Les applications comme la messagerie ou les services du web peuvent être très gourmandes en débit.

En pratique, le paramètre essentiel est le degré de préparation au multitraitement du système d'exploitation et des applications. Les principaux systèmes d'exploitation de la famille Unix peuvent gérer des ordinateurs qui comprennent des dizaines de processeurs centraux.

Pour la mémoire, la règle de base est simple : la mémoire installée sur un ordinateur doit être assez grande pour contenir tous les programmes en cours de traitement. Si les programmes en exécution occupent plus de place que la mémoire nʼen contient, la mémoire va déborder, ce qui veut dire que le système dʼexploitation de lʼordinateur va placer les données excédentaires sur la

L'ordinateur et les périphériques 12 http://www.jaquet.org, novembre 2009

mémoire de masse. Le problème est que ce procédé ralentit considérablement les opérations car le temps dʼaccès à un disque magnétique se mesure en millièmes de secondes, alors que le temps dʼaccès à la mémoire centrale sʼexprime en nanosecondes, ce qui est de lʼordre dʼun million de fois plus rapide.

Sur un poste de travail, deux éléments sont prépondérants : lʼespace utilisé par le système dʼexploitation et le nombre et la nature des applications qui vont fonctionner en parallèle (par exemple, une messagerie et un traitement de texte).

Pour un serveur, la charge dépend principalement de trois facteurs : • le nombre moyen dʼutilisateurs connectés en même temps;• le volume des données à traiter ;• la nature des applications.

Lorsque la taille de la mémoire est suffisante, lʼagrandir encore nʼa pas dʼintérêt : quand 100% des traitements et des données traitées se trouvent en mémoire vive, on a atteint une efficacité de 100%.

Les périphériques

Les périphériques (peripherals) sont les équipements qui permettent à l'ordinateur de dialoguer avec le monde extérieur. Sans eux, il ne pourrait ni recevoir, ni envoyer des informations, ni même en stocker — le disque dur ne fait pas partie de l'ordinateur mais de ses périphériques.

Aux trois C de l'ordinateur (calculer, comparer et copier), il faut ajouter les deux C des périphériques : communiquer et conserver les données. La communication concerne les échanges avec les utilisateurs et avec les autres ordinateurs.

Ensemble, l'ordinateur et les périphériques forment le matériel informatique.

Le matériel informatique, le logiciel de base et les applications forment à leur tour le système informatique.

On peut classer les périphériques en trois catégories :

1. Les périphériques de réseau servent à communiquer avec d'autres ordinateurs. Ce sont les modems ISDN ou DSL et l'électronique de réseau, soit sous la forme de circuits électroniques intégrés à la carte mère, soit sous celle d'une carte d'extension ou NIC (network interface card).

2. Les périphériques d'entrée-sortie concernent le dialogue avec l'utilisateur, avec deux sous-catégories :

- les périphériques d'entrée (clavier, souris, scanner, lecteur de codes à barres, etc.) ;

- les périphériques de sortie (écran, imprimante, synthèse vocale, etc.).

L'ordinateur et les périphériques 13 http://www.jaquet.org, novembre 2009

3. Les périphériques de stockage ou mémoires externes, avec également deux sous-catégories :

- la mémoire de masse, qui contient les programmes et les données qu'on n'est pas en train de traiter (qui sont dans la mémoire vive) ; il y en a principalement deux types :

- les disques durs magnétiques ;- les SSD (solid-state drives), constitués de RAM, généralement de type flash,

beaucoup plus rapides mais aussi beaucoup plus chers que les disques durs.

- la mémoire d'archivage, qui contient les données qu'on n'utilise plus mais qu'on doit garder pour des raisons de sécurité (sauvegardes) mais aussi pour des raisons légales.

- les disques durs externes ;- les disques optiques (CD-R, DVD-R, etc.), voire les clés USB de haute capacité ;- les cassettes magnétiques.

Les moyennes et grandes entreprises n'emploient que les disques durs et parfois les cassettes. Les disques optiques et les clés USB ne conviennent qu'aux très petites entreprises.

Les disques durs s'emploient beaucoup pour les sauvegardes (les backups) parce qu'ils offrent des avantages importants sur les cassettes :

• Pour l'utilisateur, récupérer des données n'est pas plus compliqué que si elles se trouvent sur son disque dur local. Si elles se trouvaient sur cassette, il devrait probablement faire appel à l'administrateur du système pour les retrouver et pour les lui renvoyer.

• La vitesse d'écriture est plus élevée qu'avec les cassettes. On peut sauvegarder de très grandes quantités de données en quelques heures — la vitesse de transfert peut s'exprimer en dizaines de gigaoctets par seconde, soit plusieurs téraoctets par minute.

• La vitesse de lecture est beaucoup plus élevée qu'avec les cassettes.• Le prix d'un système de sauvegarde sur disques est moins élevé que celui d'un système à

cassettes, principalement pour des raisons administratives (facilité d'emploi).

Il faut sauvegarder les donnéesHier encore, j'ai lu sur l'internet le message d'un utilisateur disant qu'au moment où il a remplacé son ancien système d'exploitation par celui qui vient de sortir, il y a eu un problème et il a perdu toutes ses données. Il est furieux contre le fournisseur. Chaque jour, des centaines de messages de ce genre sont écrits sur les forums, mais il faut rappeler et re-rappeler une évidence : 100% des systèmes informatiques tombent en panne un jour et la question n'est pas si mais quand cela arrivera. Celui qui gère un ordinateur sans faire de sauvegardes régulières est la seule cause de ses ennuis. C'est un problème humain et Microsoft, Apple ou IBM n'en sont pas plus responsables que le fabricant d'une moto n'est en cause si quelqu'un roule sans casque.

Ce problème se rencontre fréquemment chez les privés, mais un grand nombre de petites entreprises sont aussi concernées, et c'est grave parce qu'une entreprise peut faire faillite pour la seule raison qu'elle a perdu toutes ses données.

L'ordinateur et les périphériques 14 http://www.jaquet.org, novembre 2009