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
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":
opcode (code de l'instruction, par exemple «"additionner deux nombres entiers"»)";
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 multitraitement
Le 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
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !