Machines, systèmes et réseaux
Cours · NSI (première), chapitre 9 · première, spécialité numérique et sciences informatiques · le début du chapitre, la suite sur Adloun
Les huit chapitres précédents ont écrit des programmes sans jamais demander qui les exécute. Il est temps de regarder la machine — son architecture, son système d'exploitation, et le réseau qui la relie aux autres. Le programme le formule ainsi : « exprimer un algorithme dans un langage de programmation a pour but de le rendre exécutable par une machine dans un contexte donné ».
9.1 L'architecture de von Neumann
Capacité attendue
« Distinguer les rôles et les caractéristiques des différents constituants d'une machine. »
Dans le modèle dit de von Neumann, une machine se compose de :
- une unité de commande, qui lit les instructions une à une et les fait exécuter ;
- une unité arithmétique et logique (UAL), qui effectue les calculs et les opérations booléennes ;
- une mémoire, qui contient à la fois les données et le programme ;
- des dispositifs d'entrée-sortie, qui relient la machine au monde ;
- des bus, qui transportent les informations entre ces éléments.
L'unité de commande et l'UAL forment le processeur.
Ce qui distingue ce modèle des machines à calculer antérieures n'est pas la liste des organes, c'est un point précis : le programme est rangé dans la même mémoire que les données. Une machine peut donc charger un programme différent sans être recâblée — et, en principe, produire ou modifier un programme comme n'importe quelle autre donnée.
C'est ce qui rend possibles le compilateur, le système d'exploitation, et l'ordinateur polyvalent que vous utilisez. Sans cela, chaque tâche demanderait une machine.
Repère historique : 1945 : le rapport et son nom
Le modèle porte le nom de John von Neumann, qui l'expose en 1945 dans un rapport préliminaire sur l'EDVAC. Le texte, diffusé sans être achevé, ne portait que sa signature — alors que les idées avaient été élaborées collectivement, notamment avec John Presper Eckert et John Mauchly, les concepteurs de l'ENIAC. La postérité a retenu un nom là où il en aurait fallu plusieurs ; c'est une chose qui arrive souvent en histoire des sciences, et qu'il n'est pas inutile de savoir.
Le programme situe l'époque : « les premiers ordinateurs ont été construits en 1948 et leur puissance a ensuite évolué exponentiellement ».
9.1.1 Dérouler une séquence d'instructions
Capacité attendue
« Dérouler l'exécution d'une séquence d'instructions simples du type langage machine. »
Dérouler un programme, pour un processeur, c'est répéter quatre gestes — toujours les mêmes :
Un processeur ne connaît ni les fonctions ni les boucles : il exécute des instructions élémentaires, chacune agissant sur des registres — de très petites mémoires internes — ou sur la mémoire principale. Voici un jeu d'instructions minimal, suffisant pour comprendre.
| Instruction | Effet |
|---|---|
CHARGE R, adr | met dans le registre R le contenu de la case adr |
RANGE R, adr | écrit le contenu de R dans la case adr |
AJOUTE R1, R2 | R1 reçoit R1 + R2 |
SOUSTRAIT R1, R2 | R1 reçoit R1 - R2 |
SAUTE etiq | poursuit l'exécution à l'étiquette etiq |
SAUTESI R, etiq | saute à etiq si R vaut |
Le programme suivant calcule la somme du contenu des cases et , et la range en .
CHARGE R1, 10
CHARGE R2, 11
AJOUTE R1, R2
RANGE R1, 12
Déroulement, en supposant que la case contient et la case contient :
| Étape | Instruction | R1 | R2 | Mémoire |
|---|---|---|---|---|
| 0 | (état initial) | ? | ? | , , |
| 1 | CHARGE R1, 10 | 7 | ? | inchangée |
| 2 | CHARGE R2, 11 | 7 | 5 | inchangée |
| 3 | AJOUTE R1, R2 | 12 | 5 | inchangée |
| 4 | RANGE R1, 12 | 12 | 5 |
Exercices du chapitre
- Dérouler le programme machine de l'exemple avec [10] = 3 et [11] = 9… corrigé
- n° 2 corrigé
- Écrire un programme machine qui additionne le contenu des cases 30 à… corrigé
- On exécute le programme de boucle donné en remarque dans le cours… corrigé
- Nour a écrit un script sauvegarde.sh corrigé
- Une session s'ouvre dans /home/nour, qui ne contient rien corrigé