Fonctionnement des ordinateurs et exécution des programmes

Découvre ce qui se passe à l’intérieur d’un ordinateur lorsqu’il exécute un programme. Apprends à connaître les composants de l’architecture de von Neumann et la façon dont les bus et les périphériques les relient, comment les portes logiques et le processeur exécutent les instructions au cours du cycle de lecture-décodage-exécution, et comment les programmes deviennent du code machine. Compare la mémoire principale et les supports de stockage, comprends pourquoi les mémoires caches accélèrent les ordinateurs et découvre comment le système d’exploitation démarre l’ordinateur, charge les programmes en mémoire et fait fonctionner l’ensemble.

DébutantUnité 3 sur 7 de la formation Formation : Informatique : données, algorithmes, Internet et IA

Ce que tu vas apprendre

  1. Identifie les principaux composants matériels d’un ordinateur, explique le principe du programme enregistré sur lequel repose l’architecture de von Neumann et décris comment les bus et les périphériques d’entrée et de sortie relient l’ensemble.
    • Identifie les principaux composants d’un ordinateur et le principe du programme enregistré
      Distingue le matériel du logiciel et décris l’architecture de von Neumann : un processeur, une mémoire commune aux instructions et aux données, des entrées et des sorties, ainsi que les connexions entre ces éléments.
    • Explique comment les bus transportent les adresses, les données et les signaux de contrôle
      Décris les parties du bus système consacrées aux adresses, aux données et au contrôle, suis une lecture et une écriture en mémoire, et calcule comment la largeur du bus limite la mémoire adressable et la vitesse de transfert.
    • Classe les périphériques d’entrée et de sortie et explique comment ils sont reliés au processeur
      Classe les périphériques selon leur rôle, explique la conversion entre signaux analogiques et données numériques, et décris comment les contrôleurs, les pilotes, les interruptions et l’accès direct à la mémoire permettent à des périphériques lents de fonctionner avec un processeur rapide.
  2. Montre comment les transistors et les portes logiques calculent avec des bits, nomme les composants du processeur, suis le cycle de lecture-décodage-exécution et explique ce qui rend un processeur plus rapide qu’un autre.
    • Utilise des portes logiques pour comprendre comment le matériel effectue des calculs sur des bits
      Lis les tables de vérité des portes logiques de base, détermine la sortie d’un petit circuit et explique comment des portes construites à partir de transistors additionnent des nombres et stockent des bits.
    • Nomme les composants du processeur et indique le rôle de chacun
      Décris l’unité de commande, l’unité arithmétique et logique, les registres généraux et spécialisés, l’horloge et les cœurs, ainsi que le rôle de chacun pendant l’exécution d’un programme.
    • Suis le cycle de lecture-décodage-exécution
      Suis les étapes que le processeur répète pour chaque instruction, observe les registres pendant l’exécution d’un court programme et explique comment les sauts et les interruptions modifient la suite de l’exécution.
    • Explique ce qui rend un processeur plus rapide
      Compare les effets de la fréquence d’horloge, du nombre de cœurs, de la taille de la mémoire cache et du pipeline d’instructions, et estime comment chacun modifie le temps nécessaire à une tâche.
  3. Décris le code machine et les jeux d’instructions, lis un court programme en langage d’assemblage et explique comment les compilateurs, assembleurs, éditeurs de liens et interpréteurs permettent d’exécuter un programme à partir du code source.
    • Lis du code machine et du langage d’assemblage
      Explique ce que contient une instruction machine, pourquoi un jeu d’instructions lie les programmes à une famille de processeurs et comment le langage d’assemblage rend le code machine lisible.
    • Explique comment les compilateurs et les interpréteurs permettent d’exécuter des programmes à partir du code source
      Compare la compilation et l’interprétation, suis les étapes qui mènent d’un fichier source à un exécutable et explique le bytecode, les machines virtuelles et pourquoi un même programme peut fonctionner sur différents ordinateurs.
  4. Compare la mémoire principale aux différents types de mémoire secondaire, explique la hiérarchie mémoire et la mise en cache, et choisis un support de stockage adapté à une tâche.
    • Décris la mémoire principale et son adressage
      Explique la RAM et la ROM, la volatilité, les adresses d’octets et les unités de capacité, ainsi que la nécessité de placer un programme en mémoire principale pour l’exécuter.
    • Compare les technologies de mémoire secondaire
      Explique comment les disques durs, SSD, supports flash, disques optiques, bandes magnétiques et le stockage dans le cloud conservent les données, et choisis un support selon sa capacité, sa vitesse, son coût, sa durabilité et sa portabilité.
    • Explique la hiérarchie mémoire et la mise en cache
      Classe les niveaux, des registres au stockage d’archives, selon leur vitesse, leur taille et leur coût ; explique pourquoi les mémoires caches fonctionnent et calcule l’effet des succès et des défauts de cache sur le temps d’accès moyen.
  5. Décris le rôle d’un système d’exploitation, le démarrage d’un ordinateur et la façon dont le système d’exploitation charge les programmes en mémoire, les exécute sur le processeur et les isole les uns des autres.
    • Décris le rôle du système d’exploitation
      Explique comment le système d’exploitation gère le processeur, la mémoire, le stockage et les périphériques, fournit une interface utilisateur et un système de fichiers, et protège les utilisateurs et les programmes.
    • Suis le démarrage d’un ordinateur et l’exécution d’un programme
      Suis la séquence de démarrage, puis le chargement et le lancement d’un programme par le système d’exploitation, et explique comment la mémoire virtuelle isole les programmes et leur permet d’utiliser plus de mémoire que la quantité installée.

Fonctionnement des ordinateurs : cours

5 chapitres

1

Les composants d’un ordinateur et leurs liaisons

Un ordinateur devient plus facile à comprendre lorsque tu distingues les rôles de ses composants. Les entrées apportent les données, le processeur suit les instructions enregistrées, la mémoire fournit le contenu nécessaire au travail et les sorties présentent les résultats. Les connexions comptent autant que les composants : suis une adresse, une valeur et un signal de contrôle pour comprendre comment un processeur accède à la mémoire et aux périphériques, puis découvre comment les périphériques plus lents demandent une intervention.

1.1 Les composants qui font fonctionner un ordinateur

Un ordinateur reçoit des entrées, suit des instructions pour les traiter, stocke des données et produit des sorties. Ces rôles s’appliquent à un ordinateur portable comme à un contrôleur caché dans un lave-linge. La différence tient à la tâche et aux équipements qui lui sont associés.

Composants physiques et programmes

Le matériel informatique est constitué des équipements physiques. Le logiciel comprend les programmes et les données qu’ils manipulent. Le processeur est la puce de traitement, et non tout le boîtier de l’ordinateur. Une carte mère le relie à la RAM, au stockage, à un processeur graphique, à l’alimentation et aux ports des périphériques. Le processeur graphique s’occupe du dessin et d’autres tâches qui appliquent des opérations similaires à de nombreuses valeurs. Un téléphone réunit de nombreuses fonctions de ce type dans un système sur puce (SoC).

La RAM contient les instructions et les données utilisées à présent. Un support de stockage conserve les programmes et les fichiers enregistrés sans alimentation. Dans un ordinateur décrit comme ayant 16 Go de mémoire et un SSD de 512 Go, la première capacité désigne la RAM et la seconde le stockage. Un support de plus grande capacité ne fournit pas davantage de RAM de travail.

Un programme stocké sous forme de données

L’architecture de von Neumann comprend un processeur, une mémoire principale contenant à la fois les instructions et les données, des périphériques d’entrée-sortie et des bus qui les relient. John von Neumann a décrit cette architecture dans son « First Draft of a Report on the EDVAC » de 1945. Son idée centrale est le programme enregistré : les instructions sont des valeurs binaires en mémoire, prêtes à être lues par le processeur.

Les machines antérieures comme ENIAC étaient configurées pour leurs tâches à l’aide d’interrupteurs et de câbles. Le chargement d’un nouveau programme permet à une machine à programme enregistré de changer de tâche sans modifier son câblage. Le Manchester Baby a exécuté un programme dans une mémoire électronique réinscriptible le 21 juin 1948.

La mémoire n’attache pas de signification à chaque suite de bits. L’octet 01000001 peut représenter le nombre 65, la lettre ASCII « A » ou une partie d’une instruction. Ce que le processeur ou le programme fait de la suite détermine sa signification. Lors de la lecture d’une instruction, le processeur traite la suite de bits lue comme une instruction.

Pourquoi le processeur peut attendre

Les instructions et les données partagent le chemin entre le processeur et la mémoire principale. La mémoire les fournit aussi plus lentement que le processeur ne peut les utiliser. Cette restriction est le goulot d’étranglement de von Neumann. Un processeur rapide peut donc passer du temps à attendre la valeur suivante. De petites mémoires caches rapides conservent des copies utiles près du processeur et réduisent beaucoup de ces attentes.

ArchitectureInstructions et donnéesConséquence utile
Von NeumannPartagent la mémoire principale et son chemin d’accèsUne seule mémoire contient un mélange variable de code et de données.
HarvardDisposent de mémoires et de chemins distinctsUne instruction et une donnée peuvent être lues ensemble.

Les petits microcontrôleurs et processeurs de signal utilisent souvent une architecture Harvard. Les processeurs polyvalents modernes combinent les deux principes : une mémoire principale partagée, mais des mémoires caches de niveau 1 distinctes pour les instructions et les données.

Des ordinateurs dans d’autres appareils

Un système embarqué accomplit une tâche précise à l’intérieur d’un appareil plus grand. Un thermostat lit un capteur de température, traite la mesure et commande le chauffage. Son programme enregistré reste généralement dans une mémoire non volatile. Les rôles du processeur, de la mémoire et des entrées-sorties sont toujours présents, même sans clavier, écran ni système d’exploitation complet pour ordinateur de bureau.

Points clés

  • Le matériel informatique est constitué d’équipements physiques ; le logiciel fournit les programmes et les données.
  • Le processeur est un composant distinct de la RAM, du stockage et du boîtier de l’ordinateur.
  • Un ordinateur à programme enregistré lit des instructions binaires conservées en mémoire.
  • Une suite de bits reçoit sa signification de la façon dont elle est utilisée.
  • Les mémoires caches réduisent l’attente causée par le goulot d’étranglement entre le processeur et la mémoire.

1.2 Comment circulent les adresses, les valeurs et les commandes

Pour accéder à la mémoire, un processeur a besoin de trois éléments : un emplacement, la valeur à transférer et une commande indiquant à la mémoire ce qu’elle doit faire. Distinguer ces rôles facilite le suivi d’une transaction sur le bus.

Trois rôles sur un bus système classique

Un bus est une voie de communication partagée. Dans un bus système parallèle classique, plusieurs fils ou pistes de carte électronique transportent des bits en même temps.

Partie du busCe qu’elle transporteSens lors d’un accès du processeur à la mémoire
Bus d’adressesL’emplacement à utiliserDu processeur vers la mémoire ou un périphérique
Bus de donnéesUne instruction ou une donnéeVers le processeur pour une lecture ; depuis le processeur pour une écriture
Bus de contrôleSignaux de lecture, d’écriture, de synchronisation et d’interruptionDépend du signal

Une adresse désigne un emplacement ; ce n’est pas la valeur qui y est stockée. L’adresse 200 peut contenir 7 aujourd’hui et 9 plus tard sans changer d’adresse. Une boîte aux lettres numérotée offre une comparaison utile : le numéro désigne la boîte, tandis que son contenu peut changer.

Suivre une lecture et une écriture

Pour lire l’adresse 200, le processeur place 200, soit 11001000 en binaire, sur le bus d’adresses et envoie une commande de lecture sur le bus de contrôle. La mémoire renvoie la valeur à cet emplacement, ici 7, sur le bus de données. Le processeur la copie dans un registre.

Pour écrire 9 à l’adresse 201, le processeur place 201 sur le bus d’adresses, 9 sur le bus de données et une commande d’écriture sur le bus de contrôle. La mémoire remplace le contenu de l’emplacement 201. Envoyer 201 sur le bus de données transmettrait la mauvaise valeur ; l’adresse et le contenu ont des rôles différents.

La largeur d’adresse limite le nombre d’emplacements

Avec n bits d’adresse, il existe 2n adresses différentes. Si chaque adresse désigne un octet, c’est aussi le nombre d’octets adressables.

  • 16 bits donnent 216=65 536 adresses, soit 64 KiB.
  • 32 bits donnent 232=4 294 967 296 adresses, soit 4 GiB.
  • Passer de 20 à 21 bits double la capacité de 1 MiB à 2 MiB.

Chaque bit supplémentaire double le nombre de combinaisons. Doubler le nombre de bits de 16 à 32 multiplie le nombre d’emplacements par 216 ; cela ne fait pas que le doubler. Ce calcul donne une limite d’adressage, et non la quantité de RAM réellement installée.

La largeur des données limite chaque transfert

Une voie de données de 64 bits transporte 8 octets en un transfert. Une voie de 8 bits nécessite quatre transferts pour transporter une valeur de 4 octets. La bande passante mesure la quantité de données qui peut être transférée par seconde :

bande passante=octets par transfert×transferts par seconde

À 1 milliard de transferts par seconde, une voie de 8 octets transporte 8 milliards d’octets par seconde, soit 8 Go/s. La largeur d’adresse détermine le nombre d’emplacements qui peuvent être désignés ; la largeur des données détermine la quantité transférée à la fois.

Un mot est la taille de données qu’un processeur traite naturellement, généralement 32 ou 64 bits. Un processeur 64 bits n’exige pas que chaque connexion possède 64 fils. Sa plage d’adresses effectivement utilisée peut aussi employer moins de 64 bits.

Les liaisons modernes gardent les mêmes rôles

Les canaux mémoire, PCI Express et USB remplacent un bus partagé unique par plusieurs liaisons. PCI Express et USB sont des liaisons série : les bits circulent les uns après les autres sur des paires de fils rapides. Les adresses, les valeurs et les commandes sont regroupées dans des messages. Elles désignent toujours une destination, transportent le contenu et coordonnent le transfert.

Points clés

  • Une adresse désigne un emplacement ; les données sont le contenu transféré.
  • Les commandes de lecture et d’écriture circulent sous forme de signaux de contrôle.
  • Une adresse sur n bits possède 2ⁿ valeurs possibles ; l’adressage par octet donne une capacité de 2ⁿ octets.
  • Chaque bit d’adresse supplémentaire double la plage d’adresses.
  • La bande passante est égale au nombre d’octets par transfert multiplié par le nombre de transferts par seconde.
  • Les liaisons série transportent les informations d’adressage, de données et de contrôle dans des messages.

1.3 Faire entrer et sortir les données d’un ordinateur

Un périphérique d’entrée fournit des données ; un périphérique de sortie présente un résultat ou agit en fonction de celui-ci. Le classement décrit le rôle du périphérique dans le système. Il ne décrit pas la complexité de son fonctionnement interne.

Classer l’action

Les claviers, caméras, microphones, lecteurs de codes-barres et capteurs fournissent des entrées. Les écrans, imprimantes, haut-parleurs et actionneurs fournissent des sorties. Un actionneur modifie un élément physique, par exemple en ouvrant une vanne ou en faisant tourner un moteur.

Certains périphériques font les deux. Un écran tactile détecte les contacts et affiche des images. Un casque-micro combine un microphone et des haut-parleurs. Une carte réseau envoie et reçoit des données. Les supports de stockage effectuent aussi des lectures et des écritures par l’intermédiaire de contrôleurs d’E/S, mais leur rôle principal est de conserver les données : ils forment donc la catégorie distincte de la mémoire secondaire.

Une imprimante peut contenir un processeur qui transforme une page en points imprimables. Elle reste un périphérique de sortie en raison de ce qu’elle fait pour l’ordinateur. Une souris sans fil fournit des entrées comme une souris filaire.

Transformer des signaux continus en nombres

Le son et la température varient de façon continue : ce sont des signaux analogiques. Un convertisseur analogique-numérique (ADC) mesure un signal à intervalles réguliers et encode les échantillons sous forme de nombres. Un convertisseur numérique-analogique (DAC) transforme des valeurs numériques en une sortie analogique, comme le signal qui commande un haut-parleur.

Pour un canal audio échantillonné 44 100 fois par seconde avec 16 bits par échantillon :

44 100×16=705 600 bits par seconde

C’est le débit des données brutes des échantillons. Chaque seconde contient 44 100 mesures, et chaque mesure nécessite 16 bits. L’échantillonnage et l’encodage permettent à un ordinateur de stocker et de traiter l’enregistrement.

Contrôleur matériel, pilote logiciel

Les périphériques se connectent par des ports ou des liaisons sans fil comme USB, HDMI, Bluetooth ou Wi-Fi. Un contrôleur de périphérique est un circuit qui gère la communication de bas niveau et met à disposition des registres que le processeur peut lire ou modifier. Un pilote de périphérique est un logiciel qui traduit les demandes du système d’exploitation en commandes pour le périphérique. Le contrôleur est du matériel ; le pilote est du logiciel.

Laisser les périphériques demander une intervention

Avec la scrutation, le processeur vérifie régulièrement un registre d’état. C’est simple, mais un périphérique qui est généralement inactif peut entraîner de nombreuses vérifications sans résultat utile.

Avec une interruption, le contrôleur signale qu’une intervention est nécessaire. Dans le modèle simple du cycle d’instruction, le processeur termine l’instruction en cours, sauvegarde l’état interrompu et exécute un gestionnaire d’interruption. Il restaure ensuite l’état sauvegardé et continue. Un appui sur une touche ou la fin d’une lecture sur disque peut déclencher cette séquence.

Les personnes et de nombreux périphériques agissent bien plus lentement qu’un processeur. Une personne ne tape que quelques caractères par seconde, tandis qu’un processeur peut exécuter des milliards d’instructions par seconde. Les interruptions permettent au processeur de travailler entre les événements.

Pour un transfert important, l’accès direct à la mémoire (DMA) permet à un périphérique ou à un contrôleur DMA de déplacer un bloc directement vers la RAM ou depuis celle-ci. Le processeur prépare l’opération et travaille à autre chose. Une interruption de fin lui indique quand le bloc est prêt. L’accès direct à la mémoire évite au processeur de copier chaque octet ; il participe toutefois encore à la préparation et à la conclusion du transfert.

Points clés

  • Classe les entrées et les sorties selon l’action effectuée pour l’ordinateur.
  • Un convertisseur analogique-numérique encode une entrée analogique échantillonnée ; un convertisseur numérique-analogique produit une sortie analogique.
  • Un contrôleur est du matériel, tandis qu’un pilote est du logiciel.
  • La scrutation vérifie régulièrement l’état ; une interruption signale qu’une intervention est nécessaire.
  • L’accès direct à la mémoire transfère des blocs entre un périphérique et la RAM sans que le processeur copie chaque octet.
2

Comment un processeur effectue son travail

À l’intérieur d’un processeur, des circuits simples se combinent pour former une machine capable de suivre un programme. Commence par les portes qui agissent sur les bits, puis identifie les registres et les signaux de contrôle qui font progresser une instruction dans le processeur. Un court suivi d’exécution rend les changements d’état visibles. La fréquence d’horloge, les cœurs, les mémoires caches et les pipelines expliquent pourquoi un même travail utile peut prendre des durées différentes selon les systèmes.

2.1 Des interrupteurs aux calculs

Les opérations les plus élémentaires d’un ordinateur proviennent de circuits qui passent d’un niveau de signal à l’autre entre deux niveaux possibles. Une tension haute représente 1 et une tension basse représente 0. Ces niveaux représentent des bits ; une puce ne reconnaît pas la signification d’une photo ou d’une phrase.

Les portes transforment des bits d’entrée en une sortie

Un transistor fonctionne comme un interrupteur commandé électroniquement. De petits groupes de transistors forment des portes logiques, chacune suivant une règle fixe pour ses entrées et sa sortie. Une table de vérité indique chaque combinaison d’entrées et sa sortie. Avec deux entrées, il existe quatre combinaisons ; en général, n entrées donnent 2n lignes.

La porte NON inverse son unique entrée. Les portes à deux entrées se comportent ainsi :

ABETOUOU exclusifNON-ETNON-OU
0000011
0101110
1001110
1111000

La porte ET exige que les deux entrées valent 1. La porte OU exige qu’au moins une entrée soit à l’état haut, y compris lorsque les deux le sont. La porte OU exclusif exige des entrées différentes. NON-ET inverse ET ; NON-OU inverse OU. Comprendre OU comme « l’une mais pas les deux » revient à la confondre avec OU exclusif.

Pour évaluer (A AND B) OR (NOT C) avec A = 1, B = 0, C = 0, pars des entrées et progresse vers la sortie. A AND B donne 0. NOT C donne 1. Enfin, 0 OR 1 donne 1. Note les sorties intermédiaires pour que la dernière porte reçoive les bonnes entrées.

Les portes additionnent des chiffres binaires

Un demi-additionneur reçoit deux bits. Sa sortie de somme est un OU exclusif et sa sortie de retenue est un ET. Pour deux entrées valant 1, le bit de somme vaut 0 et le bit de retenue vaut 1 : le résultat sur deux bits est 10, soit 2.

Un additionneur complet reçoit aussi une retenue de la colonne précédente. En chaînant ces circuits, une unité arithmétique et logique peut additionner des nombres plus longs. Suis l’addition de 0110 et 0011 en partant de la droite :

  1. La colonne de droite donne 1, sans retenue.
  2. La colonne suivante contient deux bits valant 1 : écris 0 et retiens 1.
  3. La suivante contient 1, 0 et la retenue 1 : écris 0 et retiens 1.
  4. Celle de gauche contient 0, 0 et la retenue 1 : écris 1.

Le résultat est 1001, soit 9. Une retenue appartient à la colonne suivante ; l’oublier change la valeur.

Les portes peuvent conserver un bit

Une rétroaction consiste à renvoyer la sortie d’un circuit vers son entrée. Des portes NON-ET ou NON-OU couplées de façon croisée forment un verrou qui conserve un bit tant que l’alimentation reste active. Une bascule prend en compte un nouveau bit à un front d’horloge, ce qui synchronise les mises à jour avec l’horloge du processeur. Les registres utilisent des circuits de stockage commandés par l’horloge. Les cellules de cache SRAM utilisent des circuits de type verrou ; la DRAM stocke des charges dans des condensateurs.

Les portes NON-ET et NON-OU sont chacune universelles : chaque type de porte permet à lui seul de construire toute fonction logique. Relier les deux entrées d’une porte NON-ET à A donne A NAND A, qui fonctionne comme NON A.

Ce sont des couches d’abstraction. Les transistors construisent les portes ; les portes construisent les additionneurs, les registres et les circuits de commande ; ceux-ci construisent un processeur qui exécute des instructions. Une personne qui programme peut utiliser la couche des instructions sans concevoir les interrupteurs qui se trouvent en dessous.

Points clés

  • Les tables de vérité énumèrent toutes les combinaisons d’entrées.
  • OU inclut le cas où les deux entrées valent 1 ; OU exclusif l’exclut.
  • Évalue un circuit en passant par les sorties intermédiaires de ses portes.
  • Un demi-additionneur produit une somme avec OU exclusif et une retenue avec ET.
  • La rétroaction permet de stocker des bits ; les fronts d’horloge commandent les mises à jour des bascules.
  • NON-ET et NON-OU suffisent chacune à construire toute fonction logique.

2.2 Les composants de travail du processeur

Le processeur exécute les instructions d’un programme. Son unité de commande dirige le travail, son unité arithmétique et logique effectue les opérations et ses registres contiennent les valeurs nécessaires immédiatement. Une horloge coordonne les changements dans ces circuits.

Diriger et effectuer le travail

L’unité de commande lit une instruction, la décode et émet des signaux de contrôle. Elle peut demander à la mémoire de renvoyer une valeur, sélectionner deux entrées pour l’UAL et autoriser un registre à stocker le résultat. Elle coordonne l’opération ; l’UAL effectue le calcul arithmétique ou logique.

Les opérations de l’UAL comprennent l’addition, la soustraction, les comparaisons, les décalages de bits et les opérations de portes comme ET et OU exclusif. Les résultats mettent aussi à jour des indicateurs d’état. Un indicateur de zéro signale un résultat nul ; un indicateur de signe négatif enregistre un résultat négatif. Un branchement peut tester un indicateur pour choisir l’instruction suivante.

Les registres conservent l’état de travail immédiat

Les registres sont de très petits emplacements de stockage rapides à l’intérieur du processeur. Un registre général contient généralement un mot. Par exemple, x86-64 fournit 16 registres généraux pour les entiers, et ARM 64 bits en fournit 31. Les programmes les utilisent pour conserver des valeurs près de l’UAL.

Le modèle pédagogique du processeur rend visibles les rôles suivants :

RegistreRôle
Compteur ordinal, PCAdresse de la prochaine instruction à lire
Registre d’adresses mémoire, MARAdresse de la prochaine lecture ou écriture en mémoire
Registre de données mémoire, MDRValeur qui vient d’être lue ou qui va être écrite
Registre d’instruction, CIRInstruction en cours de décodage et d’exécution
Accumulateur, ACCValeur de travail et résultat de l’UAL dans la machine pédagogique

Le MDR est aussi appelé registre tampon mémoire (MBR). Le CIR est aussi appelé registre d’instruction (IR). Les puces réelles organisent ces tâches de façon plus complexe, mais le modèle permet de suivre le déplacement d’une instruction et de ses données.

Le PC contient une adresse, et non le nombre total d’instructions terminées. Un saut peut le faire revenir en arrière pour répéter une boucle. Le MAR et le MDR diffèrent aussi : une adresse comme 10 va dans le MAR ; la valeur stockée à l’adresse 10 va dans le MDR.

Un cycle d’horloge est une étape de synchronisation

La fréquence d’horloge compte les impulsions par seconde, mesurées en hertz (Hz). Une horloge à 3 GHz produit 3 milliards de cycles par seconde. La durée d’un cycle est :

13 000 000 000 s≈0,33 ns

Une impulsion permet à des parties d’un circuit d’avancer. Certaines instructions nécessitent plusieurs étapes de synchronisation, et les processeurs modernes font se chevaucher le traitement de plusieurs instructions.

Plusieurs cœurs de traitement

Un cœur dispose des ressources de commande, de calcul, de registres et de mémoire cache nécessaires pour exécuter un flux d’instructions. Quatre cœurs peuvent exécuter quatre flux à la fois. Un programme en profite lorsque son travail peut être réparti entre eux ; posséder quatre cœurs ne répartit pas automatiquement chaque tâche.

Un processeur graphique possède de nombreuses unités de traitement plus petites, adaptées à l’exécution d’opérations similaires sur de nombreuses données. Le dessin de pixels, le traitement vidéo et certains calculs d’apprentissage automatique prennent cette forme. Un processeur central convient à une plus grande diversité d’instructions et de décisions.

Pense à une cuisine : l’unité de commande attribue les actions, l’UAL les effectue, les registres conservent les ingrédients à portée de main et la mémoire en fournit d’autres. Le processeur suit mécaniquement des suites de bits ; c’est le programme qui leur donne un sens utile.

Points clés

  • L’unité de commande coordonne les opérations ; l’UAL effectue les opérations arithmétiques et logiques.
  • Les indicateurs enregistrent des états comme un résultat nul pour les branchements ultérieurs.
  • PC, MAR, MDR, CIR et ACC contiennent différentes parties de l’état de travail actuel.
  • Un cycle d’horloge est une étape de synchronisation, pas nécessairement une instruction terminée.
  • Plusieurs cœurs facilitent le travail qui peut être exécuté en parallèle.

2.3 Suis une instruction dans le processeur

Le cycle de lecture-décodage-exécution fait fonctionner ensemble les composants du processeur pour exécuter un programme. Chaque cycle lit une instruction, détermine son opération et l’effectue. Un suivi d’exécution consigne les changements des registres et de la mémoire afin que chaque résultat ait une cause visible.

Lire l’instruction

Dans le processeur simple, la lecture suit cette séquence :

  1. Copier le PC dans le MAR.
  2. Placer l’adresse sur le bus d’adresses et envoyer un signal de lecture en mémoire.
  3. Recevoir l’instruction dans le MDR par le bus de données.
  4. La copier dans le CIR.
  5. Faire avancer le PC jusqu’à l’instruction suivante.

Dans la machine pédagogique, chaque instruction occupe un emplacement, donc le PC augmente de 1. Un processeur dont la mémoire est adressable par octet avance de la longueur de l’instruction en octets. Pendant l’exécution, le PC pointe déjà après l’instruction lue.

Décoder, puis exécuter

L’unité de commande sépare le code opération, qui précise l’opération, de l’opérande, qui fournit une valeur, un registre ou une adresse. Elle envoie ensuite les signaux nécessaires à l’exécution de l’instruction. Un chargement lit des données, une addition utilise l’UAL, un stockage écrit des données et un saut modifie le PC. Certaines descriptions font de l’écriture du résultat une étape distincte appelée écriture du résultat.

Suivre l’exécution d’un programme complet

La machine pédagogique possède un accumulateur. Ici, LOAD, ADD et STORE utilisent des adresses mémoire comme opérandes.

Address  Instruction      Data address  Value
0        LOAD 10          10            7
1        ADD 11           11            5
2        STORE 12         12            0
3        HALT

Commence avec le PC à 0. La lecture de LOAD 10 fait passer le PC à 1. L’exécution place l’adresse 10 dans le MAR, lit 7 par le MDR et donne à l’ACC la valeur 7. L’opérande 10 désigne un emplacement ; ce n’est pas la valeur chargée.

Ensuite, ADD 11 est lu et le PC devient 2. L’emplacement mémoire 11 fournit 5. L’UAL additionne 7 et 5, laissant 12 dans l’ACC. La lecture de STORE 12 fait passer le PC à 3. L’exécution place l’adresse 12 dans le MAR et la valeur 12 dans le MDR, puis écrit 12 à cet emplacement. L’ACC reste à 12. Enfin, la lecture de HALT fait passer le PC à 4 et l’exécution arrête la machine pédagogique. Quatre instructions ont été exécutées.

Les branchements remplacent l’adresse suivante

JUMP 0 place 0 dans le PC pendant l’exécution, quelle que soit sa valeur précédente. JUMPZ 6 ne saute que si l’ACC vaut zéro. Si cette instruction a été lue à l’adresse 4, la lecture fait d’abord passer le PC à 5. L’exécution donne ensuite au PC la valeur 6 si l’ACC vaut zéro ; sinon, le PC reste à 5. C’est ainsi qu’une séquence peut choisir un chemin ou répéter une boucle.

Interruptions et processeurs réels

Dans ce modèle, le processeur vérifie les interruptions à la fin d’une instruction. Pour en traiter une, il sauvegarde le PC et les autres registres de travail, exécute le gestionnaire, puis restaure l’état sauvegardé. Le programme interrompu reprend avec ses propres valeurs et sa prochaine adresse.

Un processeur ne lit pas tout un programme source à la fois. Il exécute des instructions machine, souvent plusieurs pour une seule instruction source. Les processeurs modernes font se chevaucher et réordonnent le travail interne tout en préservant les résultats attendus du programme.

Points clés

  • La lecture place l’instruction dans le CIR en passant par le MAR et le MDR.
  • Le PC avance pendant la lecture ; l’exécution d’un saut peut remplacer cette adresse.
  • Un opérande qui est une adresse doit être utilisé pour lire la valeur stockée à cette adresse.
  • Dans cette machine pédagogique, STORE écrit l’ACC en mémoire sans modifier l’ACC.
  • Le traitement d’une interruption sauvegarde et restaure l’état de travail interrompu.
  • Les processeurs réels font se chevaucher le travail tout en préservant les résultats attendus du programme.

2.4 Pourquoi un programme se termine plus tôt

Les performances d’un processeur dépendent du travail nécessaire à un programme et de la vitesse à laquelle l’ordinateur l’accomplit. La fréquence d’horloge, le travail utile par cycle, le temps d’attente et les possibilités de travail parallèle comptent tous.

Fréquence d’horloge et nombre fixe de cycles

Pour une tâche nécessitant un nombre connu de cycles d’horloge :

temps=cycles neˊcessairescycles par seconde

Une tâche nécessitant 6 milliards de cycles prend 2 secondes à 3 GHz et 1,5 seconde à 4 GHz. La comparaison suppose un nombre de cycles fixe. Avec des processeurs de conception différente, un programme peut nécessiter un nombre différent de cycles. Une puce à 3,5 GHz peut donc surpasser une puce à 4 GHz en terminant davantage d’instructions utiles par cycle.

Des fréquences d’horloge plus élevées consomment aussi davantage d’énergie et produisent de la chaleur. Le bridage thermique réduit la fréquence d’horloge lorsqu’un processeur chauffe trop. Cela aide à comprendre pourquoi les gains de performance proviennent d’autres améliorations que la seule augmentation des gigahertz.

Les cœurs ne répartissent que la partie parallélisable

Supposons qu’une tâche prenne 10 secondes sur un cœur. Deux secondes doivent se dérouler en séquence ; huit secondes peuvent être réparties également entre quatre cœurs. En ignorant le surcoût de coordination :

2+84=4 secondes

Diviser les 10 secondes entières par quatre donne 2,5 secondes, mais répartit à tort le travail séquentiel. Même un nombre illimité de cœurs ne peut pas supprimer ces deux secondes. Plusieurs cœurs aident aussi des programmes distincts à s’exécuter en même temps, même lorsque chaque programme n’utilise qu’un cœur.

Un pipeline fait se chevaucher les étapes

Dans un pipeline à trois étapes, une instruction s’exécute pendant que la suivante est décodée et qu’une autre est lue. Chaque instruction passe toujours par les trois étapes. Le gain est un plus grand nombre d’instructions terminées pendant une même durée.

Si chaque étape prend un cycle, dix instructions indépendantes prennent 30 cycles sans chevauchement. Un pipeline idéal nécessite trois cycles pour terminer la première instruction et un cycle supplémentaire pour chacune des instructions restantes :

3+(10−1)=12 cycles

Un branchement peut rendre inutiles des instructions déjà lues. Abandonner ce travail coûte des cycles ; les processeurs prédisent donc les branchements. Les dépendances réelles et les attentes de la mémoire empêchent aussi un pipeline d’atteindre toujours son débit idéal.

Alimenter le processeur en données

Une mémoire cache conserve à proximité des copies d’instructions et de données. Une capacité de cache utile plus grande peut réduire les accès à la RAM, en particulier lorsqu’un programme utilise de façon répétée un ensemble de travail qui ne tenait pas auparavant dans le cache. Si cet ensemble y tient déjà, une capacité supplémentaire peut apporter peu.

La bande passante mémoire limite la vitesse d’arrivée de nombreuses valeurs. La vitesse du stockage compte lors de l’ouverture de fichiers ou du lancement d’applications : passer d’un disque dur à un SSD peut réduire l’attente même si le processeur reste inchangé. La taille des mots et les instructions prises en charge par un processeur influent aussi sur les charges de travail qui lui conviennent.

Davantage de transistors, des usages différents

La loi de Moore décrit l’observation faite par Gordon Moore en 1965 et révisée en 1975, selon laquelle le nombre de transistors doublait environ tous les deux ans. Cette tendance historique n’est pas une règle selon laquelle les programmes deviennent deux fois plus rapides à intervalles fixes. Comme la miniaturisation a ralenti, les concepteurs de puces ont utilisé les transistors supplémentaires pour les cœurs, les mémoires caches, les processeurs graphiques et les accélérateurs spécialisés. Une comparaison utile demande combien de temps prend la même tâche dans les mêmes conditions.

Points clés

  • Compare le temps d’exécution de la tâche réelle, et pas seulement la fréquence d’horloge.
  • Davantage de cœurs ne réduisent que le travail qui peut être réparti entre eux.
  • Le pipeline d’instructions augmente le débit en faisant se chevaucher les étapes des instructions.
  • La mémoire cache, la bande passante mémoire, le stockage et la chaleur peuvent limiter le travail utile du processeur.
3

Comment les programmes écrits deviennent des instructions machine

Un programme lisible et les instructions qu’exécute un processeur sont deux formes différentes du même travail recherché. Le langage d’assemblage montre les opérations et les branchements individuels ; les compilateurs et les interpréteurs relient le code de haut niveau à ces opérations. Suivre une construction montre pourquoi un fichier source diffère d’un exécutable, pourquoi les bibliothèques comptent et pourquoi le passage d’un logiciel à une autre plateforme peut nécessiter une nouvelle construction ou un environnement d’exécution adapté.

3.1 Lire les instructions exécutées par un processeur

Le code machine est constitué d’instructions binaires destinées à un type particulier de processeur. Le langage d’assemblage écrit ces instructions avec des noms lisibles. Tous deux décrivent des opérations beaucoup plus proches du matériel qu’un langage de haut niveau comme Python ou C.

Opérations et opérandes

Une instruction contient un code opération qui précise ce qu’il faut faire et généralement un ou plusieurs opérandes qui précisent quoi utiliser. Un opérande peut désigner un registre ou une adresse mémoire, ou fournir directement une valeur. Sa signification découle du format défini pour l’instruction.

Prenons un codage pédagogique sur 8 bits. Les quatre premiers bits contiennent un code opération ; les quatre derniers contiennent une adresse. Si LOAD est 0001, alors LOAD 10 devient 0001 1010, car 10 en décimal est 1010 en binaire. Quatre bits de code opération permettent 24=16 codes opération. Quatre bits d’adresse désignent les emplacements de 0 à 15. Ce codage illustre un format limité ; les autres suivis d’exécution de la machine pédagogique utilisent des instructions écrites avec des adresses plus grandes.

Une architecture du jeu d’instructions (ISA) définit les instructions, les codages et les registres qu’un processeur offre. x86-64, ARM et RISC-V en sont des exemples. Les instructions A64 d’ARM ont une longueur de 32 bits ; les instructions x86-64 vont de 1 à 15 octets. La taille des mots d’un processeur 64 bits ne détermine pas la longueur de chaque instruction.

Une boucle lisible

Un assembleur transforme les mnémoniques et les étiquettes du langage d’assemblage en code machine pour une architecture de jeu d’instructions. Parmi les groupes d’instructions utiles figurent le transfert de données, l’arithmétique et la logique, le contrôle du déroulement et les opérations système ou d’E/S.

Ce programme à accumulateur effectue un compte à rebours à partir de 3. SUB 21 soustrait le contenu de l’adresse 21. JUMPZ effectue un branchement si l’ACC vaut zéro.

0  LOAD 20
1  SUB 21
2  STORE 20
3  JUMPZ 5
4  JUMP 0
5  HALT

20 holds 3; 21 holds 1.

Au premier passage, LOAD lit 3, SUB laisse 2 et STORE enregistre 2. Le test de zéro échoue, donc JUMP 0 démarre un autre passage. Le deuxième passage enregistre 1 et revient en arrière. Le troisième enregistre 0, donc JUMPZ 5 va à HALT.

Les deux premiers passages utilisent cinq instructions chacun. Le dernier en utilise quatre avant HALT, qui compte aussi comme une instruction : 5+5+4+1=15. Ne compter que les six lignes écrites fait oublier les exécutions répétées.

Une instruction source, plusieurs instructions machine

Une instruction de haut niveau comme total = price + tax peut devenir des opérations qui chargent une valeur, en ajoutent une autre et stockent le résultat. Les langages de haut niveau expriment les variables, les choix, les boucles et les fonctions sans nommer chaque registre. En langage d’assemblage, chaque instruction écrite correspond généralement à une instruction machine et dépend étroitement de son architecture de jeu d’instructions.

Du code machine pour x86-64 ne peut pas s’exécuter directement comme du code ARM. Le code source peut être recompilé pour ARM, ou une couche de traduction ou d’émulation peut prendre en charge cette incompatibilité.

RISC et CISC

Les architectures RISC comme ARM et RISC-V privilégient des instructions simples et régulières. Beaucoup utilisent des instructions de longueur fixe, mais RISC-V peut mélanger des formes compressées de 16 bits et des instructions standard de 32 bits. Les architectures CISC comme x86 proposent des instructions plus complexes et de longueur variable. Les processeurs x86 modernes décomposent les instructions en opérations internes plus simples. Ces désignations décrivent des approches de conception et ne garantissent pas qu’une machine est plus rapide.

Points clés

  • Un code opération choisit une opération ; les opérandes précisent ses entrées ou ses destinations.
  • Une architecture de jeu d’instructions définit le contrat du code machine qu’un processeur implémente.
  • Un assembleur traduit des mnémoniques lisibles en code machine.
  • Les boucles exécutent certaines instructions plusieurs fois : le nombre d’exécutions diffère donc du nombre de lignes.
  • Les programmes de haut niveau nécessitent une traduction ou un interpréteur implémenté en code machine.
  • RISC et CISC décrivent des styles de jeux d’instructions, avec des exceptions aux règles simples de longueur.

3.2 Du code source au programme en cours d’exécution

Le code source est le texte lisible d’un programme. Un processeur exécute des instructions machine : un outil doit donc faire le lien. La compilation et l’interprétation décrivent des façons de le faire ; de nombreuses implémentations réelles les combinent.

Les outils de traduction
OutilSon rôle
AssembleurTraduit le langage d’assemblage en code machine
CompilateurTraduit le code dans une autre forme, souvent du code machine ou du bytecode
InterpréteurEffectue les opérations d’un programme pendant son exécution

La plupart des compilateurs travaillent avant le démarrage d’un programme. Un compilateur à la volée travaille pendant l’exécution. Un interpréteur est lui-même un programme en code machine : le processeur exécute l’interpréteur, qui effectue les opérations du programme source.

Suivre la construction d’un programme C

La commande clang hello.c -o hello construit un exécutable nommé hello à partir de hello.c. Un outil de construction comme make peut organiser les commandes du compilateur pour la personne qui programme. Les principales étapes sont :

  1. Prétraitement : traiter les directives comme #include <stdio.h>, en intégrant les déclarations des fichiers d’en-tête au code source.
  2. Compilation : traduire le code C en opérations de niveau assemblage.
  3. Assemblage : encoder ces opérations en code machine dans des fichiers objets.
  4. Édition de liens : relier le code objet et les références aux bibliothèques pour produire un exécutable.

Les fichiers d’en-tête décrivent les interfaces des bibliothèques ; inclure un fichier d’en-tête ne copie pas en soi l’implémentation compilée de la bibliothèque dans le programme. L’édition de liens fournit la connexion à ce code. L’édition de liens statique copie le code de bibliothèque nécessaire dans l’exécutable. L’édition de liens dynamique enregistre les dépendances aux bibliothèques partagées, qui sont chargées et reliées lorsque nécessaire.

L’exécutable cible une architecture de jeu d’instructions et un format de système d’exploitation. La construction pour un Mac ARM et pour un ordinateur Windows x86-64 nécessite donc des constructions natives distinctes. La modification du code source exige aussi de reconstruire un exécutable compilé avant que la modification prenne effet.

Les erreurs surviennent à différentes étapes

Un compilateur peut signaler des erreurs de syntaxe, comme un point-virgule manquant en C, et des erreurs de type lorsque le langage vérifie les types. Une compilation réussie ne prouve pas que le programme résout le bon problème. Une erreur de logique produit un mauvais résultat. Une erreur d’exécution se produit pendant l’exécution du programme, par exemple une division par une valeur d’entrée qui s’avère être zéro.

Un interpréteur simple peut n’atteindre une erreur qu’après l’exécution des instructions précédentes. Python vérifie d’abord la syntaxe d’un fichier entier, mais un nom non défini peut tout de même provoquer une erreur uniquement lorsque l’exécution l’atteint. La seule méthode de traduction ne permet pas de savoir quand chaque type d’erreur est détecté.

Bytecode et machines virtuelles

Java compile le code source en bytecode, des instructions pour la machine virtuelle Java (JVM). Chaque plateforme prise en charge fournit sa propre JVM. Celle-ci peut interpréter le bytecode et compiler à la volée les parties fréquemment utilisées en code machine pour le processeur local. Le bytecode reste portable parce que la JVM propre à chaque plateforme gère les différences matérielles.

CPython compile aussi Python en bytecode et l’exécute avec une machine virtuelle. PyPy utilise un compilateur à la volée, et les moteurs JavaScript des navigateurs utilisent également la compilation à la volée. « Compilé » et « interprété » décrivent des implémentations, et non des propriétés permanentes d’un langage.

Le code natif compilé à l’avance évite généralement de répéter le travail d’interprétation. L’interprétation facilite le cycle de modification et d’exécution, tandis que le bytecode et la compilation à la volée combinent portabilité et optimisation pendant l’exécution. Dans tous les cas, le processeur suit finalement des instructions machine et le système d’exploitation charge le code exécutable nécessaire en mémoire.

Points clés

  • Les compilateurs traduisent le code ; les interpréteurs effectuent les opérations pendant l’exécution.
  • La construction d’un programme C comprend le prétraitement, la compilation, l’assemblage et l’édition de liens.
  • L’édition de liens statique inclut le code des bibliothèques ; l’édition de liens dynamique enregistre les dépendances aux bibliothèques partagées.
  • La compilation peut détecter des erreurs de syntaxe tout en laissant des erreurs de logique et d’exécution.
  • Le bytecode s’exécute par l’intermédiaire d’une machine virtuelle propre à la plateforme.
  • La compilation à la volée traduit pendant l’exécution ; les langages peuvent avoir différentes implémentations.
  • Les exécutables natifs dépendent à la fois d’une architecture de jeu d’instructions et d’un format de système d’exploitation.
4

Mémoire, stockage et copies rapides

L’endroit où un ordinateur conserve les données influe sur leur survie à une coupure d’alimentation et sur la vitesse à laquelle elles peuvent être utilisées. Compare la RAM de travail aux supports de stockage persistants, puis suis la hiérarchie des registres aux archives. Les choix de stockage dépendent des modes d’accès autant que de la capacité. La mise en cache explique comment un petit stockage rapide peut éviter de nombreux accès lents, et une moyenne pondérée montre à quel point les défauts de cache influent sur le résultat.

4.1 La mémoire de travail et ses adresses

La mémoire principale contient les instructions et les données actuellement disponibles pour le processeur. Pour une application ordinaire stockée sur un SSD, le système d’exploitation commence par charger le code et les données nécessaires dans la RAM. Le processeur lit ensuite les instructions par son système de mémoire et de caches.

RAM, DRAM et SRAM

La mémoire vive (RAM) est une mémoire à accès direct : un emplacement peut être atteint sans passer par tous les emplacements précédents. La RAM de travail ordinaire est volatile ; son contenu est donc perdu sans alimentation. Enregistrer un document copie ses données sur un support de stockage non volatile.

La mémoire principale utilise la DRAM, qui stocke les bits sous forme de charges dans de petits condensateurs. La charge se dissipe, si bien que les cellules ont besoin d’un rafraîchissement, généralement sur un intervalle de 64 ms. La SRAM utilise des circuits de transistors de type verrou qui conservent leur état tant qu’ils sont alimentés. Elle n’a pas besoin de rafraîchissement, mais prend davantage de place et coûte plus cher par bit. Sa vitesse convient aux mémoires caches du processeur.

TypeStocke un bit à l’aide deRôle habituelConserve son contenu sans alimentation ?
DRAMUne charge dans un condensateurMémoire de travail principaleNon
SRAMUn circuit de type verrouMémoire cache du processeurNon
Mémoire flash du micrologicielUne charge piégéeInstructions de démarrageOui

La mémoire morte (ROM) est une mémoire non volatile associée à des instructions fixes comme le micrologiciel. Les micrologiciels UEFI ou BIOS modernes se trouvent normalement dans une mémoire flash modifiable. La capacité de stockage de fichiers annoncée pour un téléphone est du stockage flash, même lorsqu’une description l’appelle de manière informelle « ROM » ; le téléphone y écrit régulièrement des fichiers.

Un octet possède une adresse

Dans une mémoire adressable par octet, chaque adresse désigne un octet. Un entier de 4 octets commençant à l’adresse décimale 1 000 occupe les emplacements 1 000, 1 001, 1 002 et 1 003. Le prochain emplacement inutilisé est 1 004. Les adresses sont souvent écrites en hexadécimal, comme 0x7FFE0010, car l’hexadécimal représente les suites de bits de manière compacte.

L’adresse indique où se trouvent les octets. Lire le nombre écrit comme adresse est différent de lire la valeur stockée à cette adresse.

Les unités de capacité utilisent deux systèmes

Un octet contient 8 bits. La lettre b minuscule désigne les bits ; la lettre B majuscule désigne les octets.

Unité décimaleOctetsUnité binaireOctets
kB1 000KiB1 024
MB1 000 000MiB1 048 576
GB1 000 000 000GiB1 073 741 824
TB1 000 000 000 000--

Un support vendu pour 1 TB contient 1012 octets. En GiB, le nombre est :

1012230≈931 GiB

Certains systèmes d’exploitation affichent ce nombre binaire avec la notation « GB ». La différence provient de la taille de l’unité ; elle n’indique pas qu’il manque de l’espace.

La capacité diffère de la vitesse du processeur

Davantage de RAM permet de garder prêts à l’emploi simultanément davantage de programmes en cours et de données. Lorsque les données de travail dépassent la capacité de la RAM, le système d’exploitation peut déplacer des pages vers le stockage, ce qui ralentit l’accès. Ajouter de la RAM remédie à ce manque, mais n’augmente pas la fréquence d’horloge du processeur. Supprimer des fichiers enregistrés libère de l’espace de stockage. Fermer des programmes ou des onglets inutiles peut libérer de la RAM de travail.

Points clés

  • La RAM de travail est volatile ; l’enregistrement transfère les données vers un stockage non volatile.
  • La DRAM nécessite un rafraîchissement ; la SRAM utilise des circuits à verrou et convient aux mémoires caches rapides.
  • Le micrologiciel persiste sans alimentation et peut se trouver dans une mémoire flash modifiable.
  • Chaque adresse d’une mémoire adressable par octet désigne un octet.
  • Le GB décimal et le GiB binaire correspondent à des nombres d’octets différents.

4.2 Choisir un stockage adapté à la tâche

La mémoire secondaire conserve les programmes et les fichiers sans alimentation. Par rapport à la RAM, elle offre davantage de capacité à un coût par octet inférieur, mais son accès est plus lent. Les différentes technologies de stockage font des compromis entre vitesse, coût, portabilité et durabilité.

Disques magnétiques et SSD

Un disque dur stocke des motifs magnétiques sur des plateaux en rotation. Une tête mobile cherche la bonne piste, puis attend que la partie voulue du plateau passe sous elle. Ces deux mouvements ajoutent un délai d’accès.

À 7 200 tours par minute, un tour prend :

607 200 s≈8,3 ms

L’attente moyenne due à la rotation est d’un demi-tour, soit environ 4,2 ms. Ce n’est que la partie due à la rotation, et non le temps de lecture complet ; la recherche et le transfert prennent aussi du temps. Les pièces mobiles rendent également un disque dur en fonctionnement vulnérable aux chocs.

Un SSD stocke des charges dans des cellules flash et ne possède aucune pièce mobile. Les petites lectures à des emplacements aléatoires prennent des dizaines de microsecondes au lieu des millisecondes habituelles pour l’accès à un disque dur. Les SSD sont silencieux, résistent aux chocs et conviennent aux ordinateurs portables. Les disques durs offrent généralement un coût par téraoctet inférieur pour les grandes collections.

Les cellules flash supportent un nombre limité de cycles d’effacement et d’écriture. Le contrôleur utilise la répartition de l’usure pour répartir les écritures entre les cellules. Les clés USB, les cartes mémoire et le stockage des téléphones utilisent aussi la mémoire flash, même si le contrôleur et l’interface influent sur leurs performances.

Disques optiques et bandes
SupportComment il stocke ou lit les donnéesUsage adapté
CD, DVD, Blu-rayUn laser lit des marques sur une couche réfléchissanteDistribuer des contenus ou conserver une archive sur disque
Bande magnétiqueLes données se suivent le long d’une longue bandeSauvegardes et archives volumineuses

Les capacités courantes sont d’environ 700 Mo pour un CD, 4,7 Go pour un DVD simple couche et 25 Go pour un disque Blu-ray simple couche. Les supports optiques sont faciles à transporter, mais lents par rapport aux supports modernes.

La bande offre un faible coût pour les grandes archives. Son accès séquentiel signifie que le lecteur doit la faire défiler pour atteindre un fichier éloigné. Les disques et les SSD offrent un accès direct, qui permet d’atteindre un emplacement choisi sans parcourir toutes les données précédentes. La bande convient donc mieux aux sauvegardes groupées planifiées qu’à une application qui ouvre régulièrement de petits fichiers dispersés.

Le stockage dans le cloud est un service

Le stockage dans le cloud conserve les fichiers sur des équipements situés dans les centres de données d’un fournisseur. Les supports sous-jacents restent des SSD, des disques durs ou des bandes. Une connexion réseau ajoute des délais d’accès et de transfert. Le service offre le partage, l’accès à distance et des copies hors site, avec des frais réguliers et une dépendance aux contrôles d’accès et à la fiabilité du fournisseur.

Tenir compte du facteur limitant

Le temps d’accès est le délai avant que les données commencent à arriver. Le débit de transfert mesure leur vitesse de circulation ensuite. De nombreuses lectures de petits fichiers subissent à chaque fois le délai d’accès ; pour un seul grand fichier continu, le débit de transfert compte davantage.

Un SSD convient aux programmes utilisés sur un ordinateur portable. Les disques durs conviennent à un serveur qui stocke économiquement 20 To de vidéo. Une bande ou une archive dans le cloud convient aux documents d’une entreprise conservés à long terme, tandis qu’une clé USB est pratique pour transporter des fichiers. Choisis selon la capacité, le temps d’accès, le débit de transfert, le coût par octet, la consommation d’énergie, la fiabilité et la portabilité. Être composé de puces ne fait pas d’un SSD une RAM de travail : il reste un stockage non volatile accessible par un contrôleur de stockage.

Points clés

  • L’accès à un disque dur comprend un délai de recherche et de rotation ; les SSD n’ont pas de pièces mobiles.
  • La répartition de l’usure distribue les écritures flash entre les cellules.
  • La bande offre un accès séquentiel et convient aux grandes archives.
  • Le stockage dans le cloud utilise des supports physiques accessibles par un réseau.
  • Le temps d’accès et le débit de transfert mesurent des parties différentes d’une lecture.
  • Choisis le stockage selon le mode d’accès de la tâche et les besoins pratiques.

4.3 Garder les données utiles près du processeur

Un ordinateur combine plusieurs types de stockage parce qu’aucune technologie ne réunit à elle seule un accès rapide, une grande capacité et un faible coût. La hiérarchie mémoire place une petite quantité de stockage très rapide près du processeur et des stockages plus grands et plus lents plus loin.

Les niveaux de la hiérarchie

Du plus rapide et du plus petit vers le plus lent et le plus grand, les principaux niveaux sont les registres, les caches L1/L2/L3, la RAM, le SSD, le disque dur et le stockage d’archives. Le coût par octet baisse généralement à mesure que la capacité augmente.

NiveauExemple de temps d’accèsOrdre de grandeur habituel
RegistresFraction de nanosecondeQuelques kilo-octets ou moins
Cache L1Environ 1 nsDe dizaines à centaines de kilo-octets par cœur
Cache L2Quelques nsJusqu’à quelques mégaoctets
Cache L3Environ 10 à 20 nsDe plusieurs à plusieurs dizaines de mégaoctets
RAMEnviron 50 à 100 nsDe plusieurs à plusieurs dizaines de gigaoctets
SSDEnviron 20 à 100 µsDe centaines de gigaoctets à des téraoctets
Disque durEnviron 5 à 10 msPlusieurs téraoctets

Ces temps donnent un ordre de grandeur et non une caractéristique fixe pour chaque appareil. En prenant 1 ns pour L1, 100 ns pour la RAM et 10 ms pour un disque, la RAM prend environ 100 fois plus de temps que L1 et le disque environ 100 000 fois plus de temps que la RAM.

Succès, défauts et copies utiles

Une mémoire cache du processeur utilise de la SRAM pour conserver des blocs copiés depuis la mémoire principale. Le matériel parcourt les niveaux de cache avant de lire la RAM. Un succès de cache signifie que le contenu demandé est trouvé dans le cache. Un défaut de cache nécessite une lecture à un niveau plus lent et peut amener une copie dans le cache.

Le taux de succès est le nombre de succès divisé par le nombre total d’accès. Pour 950 succès en 1 000 accès, il est de 95 %. Un défaut ne signifie pas que les données sont manquantes ou endommagées ; il signifie que la copie rapide n’était pas disponible.

Pourquoi les accès passés permettent de prévoir les accès futurs

La localité temporelle signifie qu’un contenu récemment utilisé a de bonnes chances d’être bientôt réutilisé. Une boucle lit de façon répétée un compteur et ses propres instructions. La localité spatiale signifie que des adresses voisines ont de bonnes chances d’être bientôt utilisées. La lecture d’éléments consécutifs d’une liste suit ce schéma.

Une mémoire cache charge une ligne de cache entière, généralement 64 octets voisins, en tirant parti de la localité spatiale. Plusieurs niveaux établissent un compromis entre capacité et temps de recherche : un seul cache énorme prendrait plus de temps à parcourir.

Calculer le délai moyen

Supposons qu’une vérification du cache prenne 1 ns et qu’un accès à la RAM prenne 100 ns. Un défaut coûte les deux, donc prend 101 ns. Avec un taux de succès de 95 % :

0,95×1+0,05×101=6 ns

Avec un taux de succès de 80 % :

0,80×1+0,20×101=21 ns

La deuxième moyenne est 21÷6=3,5 fois plus grande. Pondère le coût complet des succès et celui des défauts par leur fréquence respective. Oublier la vérification du cache lors d’un défaut changerait la réponse dans ce modèle.

La mise en cache au-delà du processeur

Le système d’exploitation met en cache le contenu des fichiers dans la RAM. Un navigateur met en cache les fichiers web téléchargés sur le support de stockage, et les réseaux de diffusion de contenu conservent des copies près des utilisateurs. Tous réutilisent des copies proches pour éviter des récupérations lentes répétées. Vider le cache d’un navigateur supprime les fichiers du navigateur ; cela ne vide pas les circuits de cache du processeur. Les caches du processeur contiennent de petits blocs de mémoire, et non une bibliothèque organisée de documents entiers.

Points clés

  • La hiérarchie établit un compromis entre la vitesse, le coût par octet et la capacité.
  • Un succès de cache trouve une copie rapide ; un défaut entraîne une lecture à un niveau plus lent.
  • La localité temporelle réutilise des contenus ; la localité spatiale utilise des adresses voisines.
  • Le temps d’accès moyen pondère le coût complet des succès et des défauts.
  • Les caches du navigateur, des fichiers et du processeur appliquent le même principe général à différentes couches.
5

Comment le système d’exploitation met les composants au travail

L’ouverture d’une application dépend de plus d’éléments qu’un processeur et un fichier programme. Le système d’exploitation attribue de la mémoire, partage le temps du processeur, vérifie les autorisations et offre des services pour les fichiers et les périphériques. Suis le démarrage du micrologiciel au noyau, puis suis un éditeur en cours d’exécution à travers ses zones mémoire, ses événements d’entrée et une demande d’enregistrement. La mémoire virtuelle relie la vue des adresses de chaque processus à la RAM physique qu’il est autorisé à utiliser.

5.1 Les tâches courantes du système d’exploitation

Un système d’exploitation gère le matériel et fournit des services aux applications. Windows, macOS et Linux équipent les ordinateurs personnels et les serveurs ; Android et iOS équipent les appareils mobiles. Le bureau visible ne représente qu’une partie de ce travail.

Gérer les ressources et masquer les détails du matériel

En tant que gestionnaire de ressources, le système d’exploitation attribue le temps du processeur, la mémoire de travail, les fichiers et les périphériques aux programmes et aux utilisateurs. En tant qu’abstraction, il fournit des opérations plus simples qui masquent les détails du matériel. Un éditeur de texte peut demander « ouvre le fichier report.txt » sans choisir les pistes du disque ni les commandes du périphérique.

FonctionCe que fait le système d’exploitation
Gestion des processusDémarre, ordonnance et termine les programmes en cours d’exécution
Gestion de la mémoireAttribue la mémoire et impose la séparation
Gestion des fichiersOrganise les fichiers, les dossiers et les données stockées
Gestion des périphériquesCommunique avec les périphériques par l’intermédiaire de pilotes
SécuritéFait respecter les comptes et les autorisations
Gestion du réseauFournit des services d’échange de données

L’interface utilisateur permet de demander ces opérations. Une interface graphique utilise des fenêtres, des icônes, des menus et le toucher ou un pointeur. Une interface en ligne de commande accepte des commandes saisies. Des commandes comme ls sous Linux et macOS ou dir sous Windows affichent la liste des fichiers ; des scripts peuvent combiner des commandes pour des tâches répétées.

Le noyau contrôle les opérations privilégiées

Le noyau est le cœur du système d’exploitation responsable du contrôle du matériel et des ressources protégées. Les applications s’exécutent en mode utilisateur avec des privilèges restreints. Le code du noyau s’exécute en mode noyau avec des privilèges plus étendus. Une application demande un service protégé au moyen d’un appel système, par exemple pour demander au système d’exploitation de lire un fichier.

Le noyau vérifie les autorisations et effectue l’action permise. Une application défectueuse ne peut pas simplement utiliser une instruction normale du mode utilisateur pour prendre le contrôle de tous les périphériques ou lire la mémoire protégée d’un autre processus.

Partager le temps du processeur

L’ordonnanceur décide quel programme prêt à s’exécuter reçoit du temps processeur. De courts tours sur un seul flux de traitement donnent l’impression que la lecture de musique et la modification d’un document sont simultanées. Plusieurs cœurs permettent aussi d’exécuter du travail au même moment. Certains processeurs prennent en charge le multithreading matériel au sein d’un cœur, mais le partage du temps reste nécessaire lorsque le travail prêt à être exécuté dépasse ce que le matériel peut effectuer simultanément.

Donner des noms aux fichiers et des pilotes aux périphériques

Un système de fichiers suit le contenu des fichiers et leurs métadonnées comme la taille, les dates et les autorisations. Les dossiers forment une hiérarchie ; un chemin désigne un fichier, par exemple /home/sam/notes.txt sous Linux. NTFS, APFS et ext4 sont des exemples de systèmes de fichiers.

Supprimer un fichier retire généralement son entrée du répertoire et libère son espace pour qu’il soit réutilisé. Cela diffère de l’écrasement volontaire de chaque octet. Les anciennes données peuvent parfois rester récupérables, en particulier sur les disques durs ; une suppression ordinaire ne garantit pas un effacement sécurisé.

Un pilote traduit les demandes générales relatives à un périphérique en commandes qu’un contrôleur comprend. Les pilotes standard prennent en charge de nombreux claviers et clés USB, tandis que certains périphériques nécessitent un pilote spécifique.

Associer chaque logiciel à son rôle

Le système d’exploitation, les pilotes et les utilitaires comme les outils de sauvegarde sont des logiciels système. Les navigateurs, les éditeurs, les jeux et les tableurs sont des applications. Les systèmes mobiles mettent l’accent sur l’autonomie de la batterie, le tactile et la séparation des applications ; les serveurs prennent en charge les services réseau. Un système d’exploitation temps réel respecte des délais de réponse fixés pour des tâches de commande. Des appareils embarqués très simples peuvent exécuter un programme sans système d’exploitation complet.

Points clés

  • Le système d’exploitation gère les ressources partagées et masque les détails du matériel derrière des services.
  • Les appels système permettent aux applications soumises aux restrictions du mode utilisateur de demander des services au noyau.
  • L’ordonnanceur partage le temps du processeur entre les tâches prêtes à être exécutées.
  • Les systèmes de fichiers suivent le contenu, les noms, les chemins et les autorisations des fichiers.
  • Les pilotes relient les demandes générales du système d’exploitation aux commandes propres aux périphériques.
  • Les logiciels système font fonctionner et entretiennent l’ordinateur ; les applications accomplissent les tâches des utilisateurs.

5.2 De la mise sous tension à l’enregistrement d’un document

Le démarrage d’un ordinateur et le lancement d’une application comportent des étapes différentes. Le démarrage donne le contrôle au système d’exploitation. Le chargement d’une application crée ensuite un processus en cours d’exécution qui utilise le processeur, la mémoire et les services du système d’exploitation.

Commencer par des instructions persistantes

À la mise sous tension, la RAM de travail ne contient aucun programme en cours d’exécution utilisable. Le processeur commence par le micrologiciel stocké dans une mémoire non volatile. Sur un PC moderne, le micrologiciel UEFI prépare le matériel et effectue des vérifications de démarrage, souvent appelées autotest au démarrage (POST). Il choisit un périphérique de démarrage et lance un chargeur d’amorçage. Celui-ci charge le noyau du système d’exploitation dans la RAM et lui transmet le contrôle. Le noyau prépare la gestion de la mémoire, les pilotes et les services avant l’apparition de l’écran de connexion ou d’accueil.

Transformer un fichier programme en processus

Un programme est constitué d’instructions stockées. Un processus est une instance en cours d’exécution, avec sa mémoire, l’état de ses registres et ses ressources. Des instances distinctes d’un même éditeur peuvent conserver des documents distincts, même si elles proviennent du même fichier programme.

Pour lancer une application, le système d’exploitation vérifie l’exécutable et l’autorisation de l’exécuter, crée un espace d’adressage, charge le code et les données nécessaires au départ, prépare une pile et définit l’adresse de l’instruction de départ. D’autres pages peuvent être chargées au moment de leur utilisation. L’ordonnanceur accorde du temps processeur au processus, dont les instructions machine sont alors exécutées.

Des zones différentes pour des contenus différents
ZoneContenu
CodeInstructions machine
DonnéesVariables globales
TasMémoire demandée pendant l’exécution du programme
PileAppels de fonctions actifs, valeurs locales et adresses de retour

L’appel d’une fonction ajoute des informations à la pile ; le retour libère la partie de cet appel. Des appels répétés sans arrêt peuvent épuiser la pile et provoquer un débordement de pile. Une fuite mémoire se produit lorsqu’un programme conserve de la mémoire dont il n’a plus besoin, ce qui augmente la mémoire qu’il garde allouée. Le simple fait d’utiliser une grande quantité de mémoire ne suffit pas à diagnostiquer une fuite.

Distinguer les adresses des emplacements physiques

La mémoire virtuelle donne à chaque processus son propre espace d’adressage. Le système d’exploitation et l’unité de gestion mémoire (MMU) du processeur font correspondre les adresses virtuelles à la RAM physique par pages, souvent de 4 KiB. Deux processus peuvent utiliser 0x1000 pour des emplacements physiques différents. Les autorisations d’accès empêchent les lectures ou écritures non autorisées ; le système d’exploitation peut aussi autoriser explicitement des pages partagées.

Un accès interdit provoque une erreur qui peut mettre fin au processus. Sous Linux ou macOS, un programme C peut signaler une « erreur de segmentation ». Une adresse virtuelle désigne un emplacement dans l’espace d’adressage du processus, et pas nécessairement un octet de RAM portant le même numéro.

Lorsque la demande de mémoire est élevée, le système d’exploitation peut déplacer les pages inactives vers un fichier d’échange ou de pagination sur le stockage. Dans cet exemple, récupérer une page en 100 µs prend environ 1 000 fois le temps d’un accès à la RAM de 100 ns. Le déplacement répété de pages, appelé écroulement du système, peut occuper l’essentiel du temps d’exécution. Réduire la demande de mémoire active ou ajouter de la RAM peut aider.

Suivre un appui sur une touche à travers les couches

Un contrôleur de clavier signale une interruption. Le gestionnaire et le pilote du système d’exploitation obtiennent l’événement et le transmettent au processus de l’éditeur. L’éditeur met à jour le document dans sa mémoire et demande aux services graphiques du système d’exploitation d’actualiser l’affichage. L’enregistrement demande au système de fichiers d’écrire le document sur le stockage. Lorsque le processus se termine, le système d’exploitation récupère sa mémoire et ses ressources. Les données enregistrées restent ; les modifications conservées uniquement dans la mémoire du processus disparaissent.

Points clés

  • Le micrologiciel démarre avant que le chargeur d’amorçage ne charge le noyau.
  • Un processus est une instance de programme en cours d’exécution avec son propre état.
  • Le code, les données, le tas et la pile contiennent différentes parties d’un processus.
  • La mémoire virtuelle fait correspondre les adresses des processus à la RAM et impose les autorisations d’accès.
  • Le va-et-vient utilise le stockage pour les pages ; des transferts fréquents peuvent provoquer un écroulement du système.
  • La modification change la mémoire de travail ; l’enregistrement écrit le document sur le stockage.
  • Le système d’exploitation récupère les ressources d’un processus lorsque celui-ci se termine.

Fonctionnement des ordinateurs : exemples

5 Leçons Interactives

1

Suis les chemins à l’intérieur d’un ordinateur

13 étapes
Relie l’architecture à programme enregistré aux transferts mémoire et aux événements des périphériques.
  1. 1
    IntroductionSuis une action simple

    L’ouverture d’une photo fait intervenir plusieurs composants : une entrée demande l’action, le stockage conserve le fichier, la RAM contient le contenu de travail et le processeur suit les instructions pour l’afficher. Les instructions partagent la mémoire avec les données selon l’architecture de von Neumann, ce qui permet à une même machine d’effectuer de nombreuses tâches.

    Nous allons distinguer ces rôles, suivre un transfert mémoire et voir comment les périphériques demandent une intervention au moyen d’une interruption sans faire attendre le processeur. Ces rôles décrivent aussi un téléphone ou un contrôleur intégré à un appareil plus grand.

  2. 2
    ExplicationRepère les composants de travail

    Le processeur exécute les instructions. La RAM contient les instructions et les données en cours d’utilisation ; un SSD ou un disque dur conserve les fichiers persistants. Les périphériques d’entrée fournissent des données et les périphériques de sortie présentent les résultats ou agissent en fonction de ceux-ci.

    La carte mère relie ces composants. Un téléphone réunit de nombreuses fonctions dans un système sur puce. Le boîtier complet de l’ordinateur n’est pas le processeur : celui-ci est un composant du système.

  3. 3
    Point cléLes programmes sont du contenu en mémoire

    Dans l’architecture de von Neumann, une même mémoire principale contient les instructions et les données. Le processeur y lit des instructions binaires, ce qui permet à un nouveau programme chargé de donner une tâche différente au même matériel.

    Une suite de bits n’a pas de signification intégrée pour la mémoire. L’octet 01000001 pourrait représenter 65, la lettre ASCII « A » ou une partie d’une instruction. C’est son utilisation qui détermine son interprétation.

  4. 4
    DéfiChanger de tâche

    Un contrôleur de température et un ordinateur portable contiennent tous deux des processeurs, de la mémoire et des entrées-sorties. Pourquoi le contrôleur est-il un système embarqué, et qu’est-ce qui permet à l’ordinateur portable de passer de la modification d’un texte à la lecture audio ?

    ---reveal---

    Le contrôleur effectue une tâche précise à l’intérieur d’un autre appareil. L’ordinateur portable change de tâche en exécutant des instructions enregistrées différentes. Les rôles du matériel restent les mêmes tandis que le programme change le travail effectué.

  5. 5
    AnalogieChoisir une boîte aux lettres, puis son contenu

    Imagine les emplacements mémoire comme des boîtes aux lettres numérotées. L’adresse sélectionne une boîte ; les données sont ce qu’elle contient. Une lecture demande son contenu et une écriture le remplace.

    Dans le bus système classique, le bus d’adresses sélectionne l’emplacement, le bus de données transporte le contenu et le bus de contrôle transporte la commande de lecture ou d’écriture. Modifier le contenu ne change jamais le numéro de l’emplacement.

  6. 6
    ExempleLire l’adresse 200

    Le processeur veut le contenu de l’adresse mémoire 200. Il envoie 200 sur le bus d’adresses et active une commande de lecture sur le bus de contrôle.

    La mémoire trouve cet emplacement et place son contenu, ici 7, sur le bus de données. Le processeur reçoit 7 dans un registre. L’adresse a permis la sélection ; les données renvoyées fournissent la valeur. Aucune écriture n’a lieu : le contenu de l’emplacement 200 reste donc 7.

  7. 7
    ExplicationCompter les emplacements et les transferts

    Avec 16 bits d’adresse, une mémoire adressable par octet possède 65 536 emplacements, soit 64 KiB. Ajouter un bit d’adresse double cette plage.

    La largeur des données répond à une autre question. Une voie de 64 bits déplace 8 octets par transfert. À un milliard de transferts par seconde, sa bande passante est de 8 Go/s. Davantage de bits d’adresse permettent de désigner davantage d’emplacements ; davantage de bits de données permettent de déplacer davantage de contenu par transfert.

  8. 8
    DéfiDistinguer les deux largeurs

    Un système pédagogique adressable par octet possède 11 bits d’adresse et une voie de données de 16 bits. Quelle quantité de mémoire peut-il adresser et combien d’octets sont déplacés par transfert ?

    ---reveal---

    Il peut adresser 211=2 048 octets, soit 2 KiB. La voie de données transporte 2 octets par transfert, car chaque octet contient 8 bits. Multiplier le nombre d’adresses par deux supposerait à tort que chaque adresse désigne deux octets.

  9. 9
    ExplicationPasser des signaux aux valeurs et inversement

    Un microphone fournit une entrée et un haut-parleur une sortie. Le son varie de façon continue, tandis qu’un ordinateur conserve des valeurs numériques. Un convertisseur analogique-numérique échantillonne l’entrée et encode les mesures sous forme de nombres ; un convertisseur numérique-analogique transforme les valeurs numériques de sortie en signal analogique.

    Un écran tactile remplit deux rôles : détecter les contacts fournit une entrée et afficher une image fournit une sortie. Un périphérique peut contenir des circuits de traitement et rester classé selon ce rôle.

  10. 10
    LienLe contrôleur et le pilote travaillent ensemble

    Un contrôleur est un composant matériel qui communique avec un périphérique. Un pilote est un logiciel qui transforme les demandes du système d’exploitation en commandes pour ce contrôleur.

    La scrutation demande régulièrement si le périphérique est prêt. Avec une interruption, le contrôleur signale lorsqu’une intervention est nécessaire. Pour un grand bloc, l’accès direct à la mémoire peut déplacer le contenu entre le périphérique et la RAM pendant que le processeur travaille ailleurs, puis signaler la fin du transfert.

  11. 11
    DéfiÉviter les vérifications inutiles

    Un scanner envoie une grande image dans la RAM. Le processeur prépare le transfert, poursuit une autre tâche et reçoit un signal de fin. Quels rôles jouent l’accès direct à la mémoire et l’interruption ?

    ---reveal---

    L’accès direct à la mémoire déplace le bloc de l’image sans que le processeur copie chaque octet. L’interruption annonce que le transfert est terminé afin que le système d’exploitation puisse le traiter. Le processeur organise toujours le transfert ; il évite simplement de déplacer lui-même tous les octets.

  12. 12
    DéfiRelier une mesure à un résultat

    Un contrôleur de serre lit une valeur numérique de température dans la RAM, calcule une décision et ouvre une vanne. Quelles sont son entrée et sa sortie, et que doit-il passer entre la mémoire et le processeur ?

    ---reveal---

    La mesure de température est l’entrée et l’actionnement de la vanne est la sortie. Le processeur a besoin des instructions de commande enregistrées et de la mesure en mémoire. L’adressage sélectionne ces emplacements, le transfert de données transporte leur contenu et les signaux de contrôle coordonnent l’accès.

  13. 13
    RécapitulatifLire tout le chemin

    Identifie d’abord le rôle : entrée, traitement, mémoire de travail, stockage persistant ou sortie. Distingue ensuite l’emplacement sélectionné du contenu déplacé.

    Les instructions enregistrées indiquent au processeur ce qu’il doit faire ; les bus ou les liaisons modernes transportent les adresses, les valeurs et les commandes. Les contrôleurs et les pilotes relient les périphériques, tandis que les interruptions et l’accès direct à la mémoire permettent de partager efficacement un ordinateur rapide avec des périphériques lents ou des transferts volumineux.

2

Construis et suis une opération du processeur

19 étapes
Pars des sorties des portes pour étudier les registres, un court programme et des estimations de performance.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionRendre l’exécution visible
  2. 2
    ExplicationLire la règle d’une porte
  3. 3
    ExempleConstruire une retenue
  4. 4
    DéfiÉvaluer les sorties intermédiaires
  5. 5
    LienConserver un résultat entre deux étapes
  6. 6
    ExplicationAttribuer les tâches du processeur
  7. 7
    DéfiDistinguer l’adresse du contenu
  8. 8
    ExplicationLire l’instruction avant de l’utiliser
  9. 9
    ExemplePremière instruction : charger
  10. 10
    ExempleDeuxième instruction : additionner
  11. 11
    ExempleTroisième et quatrième instructions : stocker et arrêter
  12. 12
    DéfiPrendre ou ignorer un branchement
  13. 13
    Point cléReprendre après une interruption
  14. 14
    ExempleComparer un nombre fixe de cycles
  15. 15
    ExempleNe répartir que le travail parallèle
  16. 16
    ExplicationFaire se chevaucher les étapes sans changer leur sens
  17. 17
    DéfiEstimer une nouvelle tâche parallèle
  18. 18
    DéfiExpliquer pourquoi un pipeline rapide reste inutilisé
  19. 19
    RécapitulatifRelier les bits, l’état et le temps
3

Suis un programme du texte à l’exécution

13 étapes
Lis une boucle de compte à rebours et compare les constructions natives, l’interprétation et le bytecode.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionDistinguer les formes du programme
  2. 2
    ExplicationDiviser une instruction en champs
  3. 3
    ExplicationNommer le contrat avec le matériel
  4. 4
    ExemplePréparer un compte à rebours
  5. 5
    ExempleCompter les exécutions, sortie comprise
  6. 6
    DéfiChanger le départ et suivre la sortie
  7. 7
    ExplicationConstruire avant d’exécuter
  8. 8
    LienDéterminer où se trouve le code des bibliothèques
  9. 9
    DéfiExpliquer une construction réussie avec un résultat erroné
  10. 10
    Point cléL’interprétation exécute aussi du code machine
  11. 11
    DéfiDéplacer le programme vers un autre processeur
  12. 12
    DéfiSuivre deux chemins vers le même matériel
  13. 13
    RécapitulatifBien distinguer le rôle de chaque couche
4

Compare la mémoire et calcule les effets du cache

14 étapes
Distingue la capacité de stockage persistant, les délais de stockage et les copies rapides utiles.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionPoser deux questions sur les données stockées
  2. 2
    ExplicationDistinguer le contenu de travail du contenu persistant
  3. 3
    ExempleLire l’unité de capacité
  4. 4
    DéfiLocaliser le dernier octet
  5. 5
    ExplicationDistinguer l’attente du transfert
  6. 6
    ExempleDéterminer une partie du délai d’un disque
  7. 7
    DéfiChoisir selon le comportement du stockage
  8. 8
    ExplicationDescendre dans la hiérarchie
  9. 9
    LienPrévoir les prochains octets utiles
  10. 10
    ExempleInclure les deux parties du coût d’un défaut
  11. 11
    ExempleModifier le taux de succès
  12. 12
    DéfiCalculer une nouvelle moyenne de cache
  13. 13
    DéfiChoisir l’amélioration pertinente
  14. 14
    RécapitulatifAdapter la ressource au besoin
5

Suis un démarrage, un appui sur une touche et un enregistrement

15 étapes
Découvre comment les services du système d’exploitation, les processus et la mémoire virtuelle relient le matériel à une application.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionSuivre un éditeur dans le système
  2. 2
    ExplicationDemander un service
  3. 3
    ExemplePartager le temps d’exécution
  4. 4
    DéfiIdentifier la limite du système d’exploitation
  5. 5
    ExplicationDémarrer avant le système d’exploitation
  6. 6
    ExempleCréer l’instance en cours d’exécution
  7. 7
    ExplicationDonner des rôles différents aux zones mémoire
  8. 8
    AnalogieUtiliser un espace d’adressage privé
  9. 9
    DéfiGarder séparées des adresses identiques
  10. 10
    Point cléLe stockage peut seconder la mémoire, lentement
  11. 11
    ExempleTransmettre l’événement de touche
  12. 12
    ExempleEnregistrer pour conserver le document après la fin du processus
  13. 13
    DéfiDistinguer deux types de ralentissement
  14. 14
    DéfiRelier la protection des processus et l’enregistrement
  15. 15
    RécapitulatifSuivre les services dans l’ordre

Fonctionnement des ordinateurs : QCM

50 Questions Pratiques en 5 séries

Série 1 : Composants, instructions et tâches informatiques courantes10 Questions Pratiques

Question 1 sur 10

Un thermostat lit une température et allume un chauffage. Qu’est-ce qui en fait un système informatique embarqué ?
  1. Il conserve ses mesures seulement tant qu’il est alimenté.
  2. Il exécute une tâche de commande précise dans un appareil plus grand.
  3. Il relie directement un périphérique d’entrée à un périphérique de sortie.
  4. Il exécute les mêmes applications polyvalentes qu’un ordinateur portable.
Afficher la réponseMasquer la réponse
Réponse : B
Un système embarqué est un ordinateur chargé d’un rôle précis à l’intérieur d’un autre appareil. Le thermostat traite l’entrée du capteur à l’aide d’instructions et commande une sortie. Avoir à la fois une entrée et une sortie fait partie du fonctionnement informatique, mais cela ne suffit pas à distinguer un système embarqué d’un ordinateur polyvalent.

Question 2 sur 10

Le processeur écrit la valeur 18 à l’adresse mémoire 92. Que faut-il placer sur le bus d’adresses ?
  1. 18
  2. 110
  3. La commande d’écriture
  4. 92
Afficher la réponseMasquer la réponse
Réponse : D
Le bus d’adresses sélectionne l’emplacement : il transporte donc 92. La valeur 18 circule sur le bus de données et une commande d’écriture circule sur le bus de contrôle. Confondre le contenu avec la destination ferait sélectionner le mauvais emplacement par le processeur, même si la valeur elle-même était correctement transférée.

Question 3 sur 10

Une machine lit le code-barres d’un colis et imprime une étiquette d’expédition. Comment faut-il classer ces deux actions ?
  1. La lecture du code-barres est une entrée ; l’impression de l’étiquette est une sortie.
  2. La lecture du code-barres est une sortie ; l’impression de l’étiquette est une entrée.
  3. La lecture du code-barres et l’impression de l’étiquette sont toutes deux des entrées.
  4. La lecture du code-barres et l’impression de l’étiquette sont toutes deux des sorties.
Afficher la réponseMasquer la réponse
Réponse : A
Le code-barres fournit des données à l’ordinateur : sa lecture est donc une entrée. L’étiquette imprimée présente un résultat : son impression est donc une sortie. Une imprimante peut traiter les données de la page en interne, mais ce travail interne ne change pas son rôle de sortie dans ce système.

Question 4 sur 10

Deux bits d’entrée valent tous deux 1. Que produit une porte OU exclusif à deux entrées ?
  1. 1
  2. 10
  3. 0
  4. 11
Afficher la réponseMasquer la réponse
Réponse : C
OU exclusif ne produit 1 que lorsque ses deux entrées diffèrent : deux entrées égales à 1 et 1 donnent donc 0. OU donnerait 1 parce qu’au moins une entrée vaut 1. Le résultat 10 correspond aux sorties combinées de somme et de retenue d’un demi-additionneur, et non à l’unique sortie d’une porte OU exclusif.

Question 5 sur 10

Quelle partie du processeur effectue une soustraction ?
  1. L’unité de commande
  2. L’unité arithmétique et logique
  3. Le compteur ordinal
  4. Le registre d’instruction
Afficher la réponseMasquer la réponse
Réponse : B
L’unité arithmétique et logique effectue la soustraction et d’autres opérations arithmétiques et logiques. L’unité de commande décode l’instruction et coordonne les signaux qui déclenchent la soustraction, mais le calcul revient à l’UAL. Le PC et le registre d’instruction contiennent des adresses et des instructions, et non les circuits de soustraction.

Question 6 sur 10

Dans la machine pédagogique, l’adresse 8 contient LOAD 30 et l’adresse 30 contient 14. Le PC commence à 8. Que valent le PC et l’ACC après l’exécution de cette instruction ?
  1. Le PC vaut 8 ; l’ACC vaut 14.
  2. Le PC vaut 9 ; l’ACC vaut 30.
  3. Le PC vaut 9 ; l’ACC vaut 14.
  4. Le PC vaut 30 ; l’ACC vaut 14.
Afficher la réponseMasquer la réponse
Réponse : C
La lecture fait avancer le PC de 8 à 9 parce que l’instruction occupe un emplacement. L’exécution lit ensuite le contenu de l’emplacement 30 et laisse l’ACC à 14. Charger 30 dans l’ACC reviendrait à confondre l’opérande d’adresse de l’instruction avec la valeur contenue à cette adresse.

Question 7 sur 10

Un outil convertit LOAD, ADD et d’autres mnémoniques d’assemblage en instructions binaires. De quel type d’outil s’agit-il ?
  1. Un assembleur
  2. Un interpréteur
  3. Un éditeur de liens
  4. Un chargeur d’amorçage
Afficher la réponseMasquer la réponse
Réponse : A
Un assembleur encode les instructions d’assemblage en code machine pour un jeu d’instructions donné. Un éditeur de liens relie les fichiers objets et les références aux bibliothèques après l’assemblage ; il ne traduit pas les mnémoniques en instructions. Un chargeur d’amorçage charge quant à lui un système d’exploitation en mémoire au démarrage.

Question 8 sur 10

Une valeur de 6 octets commence à l’adresse d’octet 800. Quelle est l’adresse de son dernier octet ?
  1. 806
  2. 804
  3. 848
  4. 805
Afficher la réponseMasquer la réponse
Réponse : D
Le premier octet utilise l’adresse 800, donc les cinq autres utilisent les adresses de 801 à 805. Ajouter la taille entière donne 806, l’adresse qui suit la valeur et non celle de son dernier octet. Dans une mémoire adressable par octet, la dernière adresse est l’adresse de départ plus la taille moins un.

Question 9 sur 10

Un éditeur demande à lire un fichier que l’utilisateur est autorisé à ouvrir. Comment l’éditeur demande-t-il ce service protégé au système d’exploitation ?
  1. En prenant le mode noyau.
  2. Par un appel système.
  3. Par des commandes directes au disque.
  4. Par son propre micrologiciel.
Afficher la réponseMasquer la réponse
Réponse : B
Un appel système donne à l’éditeur un accès contrôlé à un service du noyau. Le noyau vérifie l’accès et effectue l’opération sur le fichier à l’aide de ses services de fichiers et de périphériques. Permettre à une application ordinaire de passer elle-même en mode noyau sans restriction annulerait la protection fournie par cette limite.

Question 10 sur 10

Deux instances distinctes d’un programme utilisent l’adresse virtuelle 0x3000 pour des données privées. L’une y stocke 9 et l’autre 22. Pourquoi les deux valeurs peuvent-elles rester intactes ?
  1. Leurs espaces d’adressage peuvent la faire correspondre à des emplacements différents en RAM.
  2. Le système d’exploitation les garde dans une même page physique et alterne les tours de processeur.
  3. Chaque écriture modifie le numéro d’adresse virtuelle de l’autre processus.
  4. Les deux processus partagent une correspondance qui conserve la dernière valeur.
Afficher la réponseMasquer la réponse
Réponse : A
Les adresses virtuelles sont interprétées dans l’espace d’adressage de chaque processus. L’unité de gestion mémoire et le système d’exploitation peuvent faire correspondre une même adresse écrite à des pages physiques différentes : les valeurs privées restent donc séparées. Le partage du temps ne suffit pas à assurer cette séparation : sauvegarder et restaurer les registres du processeur ne crée pas de correspondances mémoire distinctes.
Série 2 : Connexions, traduction et choix de mémoire10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un appareil adressable par octet augmente sa largeur d’adresse de 12 à 14 bits. Par quel facteur sa capacité adressable augmente-t-elle ?
  1. 2
  2. 14/12
  3. 4
  4. 16
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un capteur échantillonne un canal 24 000 fois par seconde en utilisant 12 bits par échantillon. Quel est son débit de données brutes ?
  1. 288 000 bits/s
  2. 36 000 bits/s
  3. 2 000 bits/s
  4. 2 304 000 bits/s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Dans la machine pédagogique, JUMPZ 18 est lu à l’adresse 7 alors que l’ACC vaut 4. À quelle adresse la prochaine instruction est-elle lue ?
  1. 7
  2. 18
  3. 4
  4. 8
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Une tâche nécessite 9 milliards de cycles sur un processeur donné fonctionnant à 3 GHz. En ignorant les attentes hors de ces cycles, combien de temps prend-elle ?
  1. 0,33 s
  2. 3 s
  3. 6 s
  4. 27 s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une instruction pédagogique de 8 bits utilise quatre bits de code opération suivis de quatre bits d’adresse. ADD est 0010. Comment ADD 13 est-il encodé ?
  1. 0010 1101
  2. 1101 0010
  3. 0010 1011
  4. 0010 0011
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

La construction d’un programme C a produit des fichiers objets en code machine, mais doit encore résoudre leurs références aux bibliothèques pour obtenir un exécutable. Quelle étape faut-il effectuer ?
  1. Le prétraitement
  2. L’assemblage
  3. L’interprétation
  4. L’édition de liens
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Combien d’octets y a-t-il dans 2 KiB ?
  1. 2 000 octets
  2. 256 octets
  3. 2 048 octets
  4. 16 384 octets
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un service d’archives lit une grande sauvegarde entière une fois par an et privilégie un faible coût par téraoctet. Il peut attendre que le support défile jusqu’aux données. Quel support convient à ces besoins ?
  1. Une mémoire cache SRAM
  2. Une bande magnétique
  3. Une mémoire principale DRAM
  4. Un disque optique de faible capacité
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une recherche dans le cache prend 2 ns et un accès à la RAM prend 80 ns supplémentaires en cas de défaut. Le taux de succès est de 90 %. Quel est le temps d’accès moyen ?
  1. 8,2 ns
  2. 9,8 ns
  3. 82 ns
  4. 10 ns
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un ordinateur lit un fichier audio tandis qu’un éditeur et un navigateur utilisent à tour de rôle un même flux de traitement. Quelle fonction du système d’exploitation attribue ces tours ?
  1. L’allocation des fichiers
  2. L’énumération des périphériques
  3. L’ordonnancement des processus
  4. La compilation du code source
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Suivi des choix et comparaison des performances10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Deux ordinateurs ont des processeurs et des RAM de même vitesse. L’un utilise des mémoires distinctes pour les instructions et les données, avec des chemins distincts. Quel accès simultané cette séparation permet-elle ?
  1. Lire toutes les instructions d’un programme.
  2. Enregistrer un fichier et le conserver sans alimentation.
  3. Exécuter deux instructions dépendantes quelconques.
  4. Lire une instruction et une donnée.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Quelle est la sortie de (A XOR B) AND (NOT C) lorsque A = 1, B = 1 et C = 0 ?
  1. 1
  2. 0
  3. 10
  4. 11
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Une lecture mémoire a placé l’adresse sélectionnée dans le MAR. Quel registre reçoit le contenu renvoyé par la mémoire dans le modèle pédagogique du processeur ?
  1. MDR
  2. PC
  3. ACC
  4. CIR
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Une tâche prend 18 s sur un cœur : 3 s doivent rester séquentielles et 15 s se répartissent également entre cinq cœurs. Sans surcoût de parallélisation, combien de temps prendrait-elle sur cinq cœurs ?
  1. 3,6 s
  2. 3 s
  3. 6 s
  4. 15,6 s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une boucle pédagogique contient LOAD 40, SUB 41, STORE 40, JUMPZ 5, JUMP 0, HALT aux adresses 0 à 5. L’emplacement 40 contient 2 au départ et l’emplacement 41 contient 1. En partant d’un PC à 0, combien d’instructions s’exécutent jusqu’à HALT inclus ?
  1. 10
  2. 6
  3. 9
  4. 11
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un fichier de bytecode Java fonctionne sur deux familles de processeurs différentes, chacune dotée d’une JVM adaptée. Qu’est-ce qui gère les différences matérielles ?
  1. Une largeur fixe du bytecode qui remplace le jeu d’instructions.
  2. Un exécutable natif relié au bytecode.
  3. Le système d’exploitation qui exécute le bytecode comme du code natif.
  4. L’implémentation de la JVM propre à chaque plateforme.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Deux supports ont le même débit de transfert soutenu pour un grand fichier. L’un a un temps d’accès direct bien inférieur. Pourquoi peut-il tout de même ouvrir plus rapidement un dossier contenant des milliers de tout petits fichiers ?
  1. Les petits fichiers augmentent le débit soutenu du support.
  2. Chaque lecture distincte peut entraîner un délai initial.
  3. Un temps d’accès inférieur évite toutes les métadonnées des fichiers.
  4. Des débits soutenus égaux donnent des temps d’ouverture égaux.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un programme lit une liste dans l’ordre des adresses. Après la lecture d’un élément, le cache contient déjà plusieurs éléments suivants. Quelle propriété explique cet avantage ?
  1. La localité temporelle
  2. La non-volatilité
  3. La localité spatiale
  4. L’ordonnancement séquentiel
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un processus lit huit pages. Six sont déjà en RAM et prennent chacune 60 ns. Deux nécessitent chacune une récupération supplémentaire sur le stockage de 120 µs, suivie du même accès à la RAM de 60 ns. Quel est le temps moyen par page, en ignorant les autres coûts ?
  1. 30,06 µs
  2. 30 µs
  3. 120,06 µs
  4. 0,03 µs
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

La machine pédagogique contient LOAD 50, SUB 51, JUMPZ 4, ADD 51, STORE 52, HALT aux adresses 0 à 5. Les emplacements 50 et 51 contiennent tous deux 6. Quelle valeur est stockée à l’adresse 52 lorsque la machine s’arrête ?
  1. 6
  2. 0
  3. 12
  4. 52
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Diagnostiquer le comportement d’un système informatique10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un processeur plus rapide améliore à peine une tâche qui attend régulièrement des données absentes du cache et provenant de la mémoire principale. Quel changement répond le plus directement au goulot d’étranglement indiqué ?
  1. Un cache qui conserve davantage de données réutilisées par la tâche.
  2. Un support de stockage plus grand dont la vitesse d’accès est inchangée.
  3. Un nouvel écran ayant une résolution en pixels supérieure.
  4. Une fréquence d’horloge supérieure avec une attente mémoire inchangée.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un système adressable par octet possède 18 bits d’adresse et une voie de données de 32 bits. Quelles sont sa capacité adressable et la quantité d’octets par transfert ?
  1. 32 KiB et 18 octets.
  2. 256 KiB et 32 octets.
  3. 256 KiB et 4 octets.
  4. 1 MiB et 4 octets.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un contrôleur de stockage copie un grand bloc dans la RAM après préparation par le processeur, puis signale la fin. Pendant le transfert, le processeur travaille sur un autre processus. Quel mécanisme explique cela ?
  1. L’accès direct à la mémoire et la scrutation répétée par le processeur.
  2. La copie par le processeur et une interruption.
  3. La copie par le processeur et la scrutation répétée.
  4. L’accès direct à la mémoire suivi d’une interruption.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un demi-additionneur à deux entrées reçoit 1 et 1. Quelles sont ses sorties de somme et de retenue ?
  1. Somme 1, retenue 0.
  2. Somme 0, retenue 1.
  3. Somme 1, retenue 1.
  4. Somme 0, retenue 0.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un pipeline idéal comporte quatre étapes, chacune prenant un cycle. Sans blocage et à partir d’un pipeline vide, combien de cycles faut-il pour terminer sept instructions ?
  1. 7
  2. 10
  3. 28
  4. 11
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un exécutable natif démarre sur la plateforme prévue, mais signale qu’une bibliothèque partagée nécessaire manque. Qu’indique cela sur son édition de liens avec la bibliothèque ?
  1. Il dépend d’un code de bibliothèque fourni séparément à l’exécution.
  2. Ses déclarations d’en-tête doivent être assemblées au démarrage.
  3. Son code de bibliothèque nécessaire est entièrement copié dans l’exécutable.
  4. Son texte source est le code lu par le processeur.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

La capacité d’un support de 500 GB est affichée en GiB. Quel nombre est le plus proche de sa capacité décimale annoncée ?
  1. 500 GiB
  2. 512 GiB
  3. 537 GiB
  4. 466 GiB
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un fichier est conservé dans le cloud. Où ses données persistantes sont-elles physiquement conservées ?
  1. Dans la RAM de l’utilisateur jusqu’à la prochaine coupure d’alimentation.
  2. Uniquement dans les signaux réseau transmis à l’utilisateur.
  3. Sur des équipements de stockage dans les centres de données d’un fournisseur.
  4. Dans le cache du processeur de l’utilisateur entre les sessions.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une vérification du cache prend 3 ns et un défaut ajoute un accès à la RAM de 60 ns. Sur 200 lectures, 150 sont des succès. Quel est le temps de lecture moyen ?
  1. 15 ns
  2. 17,25 ns
  3. 63 ns
  4. 18 ns
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Deux programmes en mode utilisateur partagent une imprimante, mais un seul est autorisé à imprimer. L’imprimante pourra ensuite être remplacée par un modèle différent. Quelle répartition du travail permet à la fois de faire respecter l’accès et de garder les commandes du périphérique hors des applications ?
  1. Le noyau vérifie l’accès et coordonne les travaux ; le pilote traduit les commandes du périphérique.
  2. Le pilote vérifie les noms des fichiers ; chaque application coordonne directement les travaux d’impression.
  3. Le noyau traduit les commandes propres au modèle ; chaque application s’accorde son propre accès.
  4. L’imprimante choisit les autorisations des utilisateurs ; l’ordonnanceur traduit ses commandes.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Relier les instructions, la mémoire et le système d’exploitation10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Une soustraction de l’UAL donne zéro. Un branchement conditionnel suivant teste si ce résultat était nul. Quelle information stockée dans le processeur permet de prendre la décision ?
  1. Le nombre d’impulsions d’horloge.
  2. L’indicateur d’état de zéro.
  3. L’adresse de l’opérande.
  4. La largeur du bus de données.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Une interruption est acceptée après la fin d’une instruction, alors que le PC suivant vaut 26 et que l’ACC vaut 17. Le gestionnaire utilise l’ACC. Quel état faut-il conserver pour reprendre correctement le calcul interrompu ?
  1. L’adresse de l’instruction terminée et les registres du gestionnaire.
  2. L’adresse de l’instruction suivante et les registres du gestionnaire.
  3. Le PC suivant sauvegardé et les registres de travail d’origine.
  4. L’adresse de départ du programme et les valeurs initiales des registres.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Sur un cœur, une tâche prend 16 s. Douze secondes peuvent s’exécuter en parallèle et quatre secondes ne le peuvent pas. En ignorant le surcoût, quelle amélioration obtient-on en passant de quatre à six cœurs ?
  1. Le temps passe de 7 s à 6 s.
  2. Le temps passe de 4 s à 2,67 s.
  3. Le temps passe de 7 s à 4,67 s.
  4. Le temps passe de 12 s à 8 s.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un processeur utilise un format de 8 bits avec quatre bits de code opération et quatre bits d’adressage direct. Pourquoi ce format inchangé ne peut-il pas encoder directement LOAD 19 ?
  1. L’adresse tient si le code opération est réduit dans le même format.
  2. Un opérande LOAD utilise toujours toute la largeur de l’instruction.
  3. Un processeur hôte de 64 bits étend chaque opérande pédagogique.
  4. Le champ d’adressage direct ne peut désigner que les adresses de 0 à 15.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une personne modifie un fichier source C et le compile pour produire un fichier objet mis à jour, mais saute l’édition de liens. L’ancien exécutable est lancé et ses bibliothèques partagées sont inchangées. Quelle étape de construction reste à effectuer et pourquoi l’ancien comportement persiste-t-il ?
  1. Retraiter les en-têtes ; lancer un ancien exécutable incorpore automatiquement les nouveaux objets.
  2. Réassembler l’ancien exécutable ; ses encodages d’instructions changent lorsque le code source est modifié.
  3. Relier l’objet mis à jour ; l’ancien exécutable contient toujours les instructions précédentes du programme.
  4. Recharger les bibliothèques partagées ; leurs instructions remplacent toutes les instructions modifiées du fichier objet.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une personne enregistre un document, puis éteint l’ordinateur normalement. Quel emplacement conserve le document enregistré sans alimentation ?
  1. Le SSD ou un autre stockage non volatile.
  2. L’accumulateur du processeur jusqu’au prochain démarrage.
  3. Les cellules DRAM qui contenaient le document ouvert.
  4. Le cache SRAM utilisé par le processus de l’éditeur.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Deux mémoires caches prennent chacune 2 ns à vérifier. Un défaut ajoute 100 ns. La première obtient un succès pour 92 % des lectures et la seconde pour 96 %. Que devient le temps d’accès moyen ?
  1. Il passe de 9,84 ns à 5,92 ns.
  2. Il passe de 8 ns à 4 ns.
  3. Il baisse de 4 % à partir de 10 ns.
  4. Il passe de 10 ns à 6 ns.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une tâche de commande passe 1 ms sur une étape séquentielle fixe et 6 ms sur un travail qui se répartit parfaitement entre trois cœurs. Une exigence temps réel fixe un délai de 4 ms. En ignorant le surcoût, quel est le temps d’exécution idéal et le délai est-il respecté ?
  1. 3 ms, délai respecté.
  2. Environ 2,33 ms, délai respecté.
  3. 4 ms, délai respecté.
  4. 7 ms, délai dépassé.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Un processus obtient régulièrement de la mémoire sur le tas dont il n’a plus besoin et ne la libère jamais. Plus tard, des transferts fréquents de pages vers le stockage occupent l’essentiel de son temps d’exécution. Quelle succession d’événements explique le ralentissement ?
  1. Un débordement de pile conserve d’anciens blocs du tas et le va-et-vient provoque un écroulement.
  2. Une fuite mémoire augmente la demande et un va-et-vient intense provoque un écroulement.
  3. Une fuite mémoire augmente la demande, mais les transferts de pages sont des recherches rapides dans le cache.
  4. Une fuite mémoire agrandit les fichiers enregistrés tandis que la demande de RAM reste inchangée.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un PC indique que les vérifications de démarrage du micrologiciel sont terminées, atteint un menu du chargeur d’amorçage, puis signale qu’une image du noyau manque. Après une coupure puis une remise sous tension, l’écran de configuration du micrologiciel s’ouvre toujours. Qu’est-ce qui explique à la fois l’étape de démarrage accomplie et la disponibilité de cet écran ?
  1. Le noyau a initialisé ses pilotes mais n’a pas lancé le chargeur d’amorçage ; le micrologiciel reste en RAM.
  2. Le chargeur d’amorçage a terminé le chargement du noyau ; la configuration utilise la RAM du processus précédent.
  3. Le noyau a atteint le mode utilisateur avant son chargement ; le chargeur recrée le micrologiciel après la coupure.
  4. Le chargeur d’amorçage s’est exécuté sans charger le noyau ; le micrologiciel persistant peut encore s’exécuter.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

109 Mots-Clés, chacun avec sa définition

A

Accès direct à la mémoire
L’accès direct à la mémoire permet à un périphérique ou à un contrôleur DMA de transférer des blocs vers la RAM ou depuis celle-ci sans que le processeur copie chaque octet individuellement.
Après avoir préparé un accès direct à la mémoire pour le transfert d’une image, le processeur peut effectuer d’autres tâches pendant le déplacement du bloc.
Accumulateur
Un accumulateur est un registre de travail qui contient des résultats arithmétiques ou logiques et fournit des opérandes dans une architecture de processeur simple.
Dans une machine simple à accumulateur, ADD met à jour l’ACC, tandis que STORE copie l’ACC en mémoire sans modifier sa valeur.
Appel système
Un appel système est une demande contrôlée adressée par un programme au noyau du système d’exploitation pour obtenir un service protégé, comme l’accès à un fichier ou à un périphérique.
Le noyau peut vérifier l’autorisation de l’utilisateur sur un fichier avant d’effectuer la demande de lecture d’une application.
Architecture de von Neumann
L’architecture de von Neumann place les instructions des programmes et les données dans une même mémoire principale reliée à un processeur et à des périphériques d’entrée-sortie.
Dans l’architecture classique, la lecture d’une instruction et celle d’une donnée se disputent le chemin mémoire partagé.
Architecture du jeu d’instructions
Une architecture du jeu d’instructions définit les instructions, les codages et les registres d’un processeur, établissant son interface logicielle en code machine.
Une construction native pour ARM cible une architecture de jeu d’instructions différente de celle d’une construction native x86-64 du même programme source.
Architecture Harvard
L’architecture Harvard conserve les instructions et les données dans des mémoires distinctes avec des chemins distincts, permettant un accès simultané de chaque type.
Un microcontrôleur peut lire son instruction suivante tout en lisant une valeur de capteur par sa voie de données.
Assembleur
Un assembleur traduit les instructions en langage d’assemblage en leurs encodages en code machine pour l’architecture de jeu d’instructions choisie.
Le mnémonique d’une addition devient l’instruction binaire que le processeur cible peut lire et exécuter.

B

Bande magnétique
Une bande magnétique est un support de stockage persistant qui enregistre les données en séquence et offre une grande capacité à faible coût avec un accès lent aux emplacements.
Une grande archive peut accepter le délai de défilement nécessaire pour récupérer des données consultées seulement de temps en temps.
Bande passante
La bande passante est la quantité de données qu’une voie de communication peut transférer par seconde, souvent exprimée en octets par seconde ou en bits par seconde.
Une voie plus large peut déplacer davantage d’octets par transfert, ce qui augmente la bande passante lorsque le nombre de transferts par seconde est fixe.
Bascule
Une bascule est un circuit de stockage commandé par une horloge qui capture un bit à un front d’horloge et conserve cet état entre les mises à jour.
Des rangées de bascules peuvent conserver les valeurs des registres et se mettre à jour ensemble au front d’horloge approprié.
Bridage thermique
Le bridage thermique est la réduction de la fréquence d’horloge du processeur lorsque la température est trop élevée, afin de protéger la puce tout en réduisant son rythme de travail.
Un calcul de longue durée peut ralentir lorsque le refroidissement ne peut pas évacuer la chaleur produite à la fréquence d’horloge précédente.
Bus
Un bus est une voie de communication partagée qui transporte des signaux entre des composants informatiques ; un bus parallèle transporte plusieurs bits à la fois.
Un bus système classique permet au processeur d’envoyer une adresse mémoire et de recevoir le contenu qui y est stocké.
Bus d’adresses
Le bus d’adresses transporte l’adresse de l’emplacement sélectionné pour un accès à la mémoire ou à un périphérique, indiquant où se trouve ou doit aller le contenu transféré.
Lors d’une écriture du processeur à l’adresse 300, le bus d’adresses transporte 300 tandis que le bus de données transporte la valeur.
Bus de contrôle
Le bus de contrôle transporte des signaux de commande et de synchronisation qui coordonnent les transferts, notamment les signaux de lecture, d’écriture et de demande d’interruption.
Un signal d’écriture indique à la mémoire de stocker le contenu du bus de données à l’emplacement sélectionné par le bus d’adresses.
Bus de données
Le bus de données transporte les instructions ou les valeurs transférées entre le processeur, la mémoire et les périphériques, lors des lectures et des écritures.
Une lecture mémoire renvoie un octet stocké par le bus de données après la sélection de son emplacement.
Bytecode
Le bytecode est une représentation d’instructions destinée à une machine virtuelle, qui permet de distribuer un programme indépendamment d’un processeur physique particulier.
Un fichier de bytecode Java peut fonctionner avec différentes implémentations de la JVM sur des ordinateurs ARM et x86-64.

C

Chargeur d’amorçage
Un chargeur d’amorçage est un logiciel de démarrage qui charge le noyau du système d’exploitation depuis le stockage dans la mémoire et lui transmet l’exécution.
Après la préparation du matériel par le micrologiciel, le chargeur d’amorçage place le noyau en RAM pour que le démarrage du système d’exploitation puisse continuer.
Code machine
Le code machine est l’encodage binaire des instructions qu’un processeur exécute directement selon son architecture de jeu d’instructions.
Un exécutable x86-64 contient des encodages d’instructions qu’un processeur ARM ne peut pas exécuter directement.
Code opération
Un code opération est la partie d’une instruction machine qui précise son opération, par exemple charger une valeur, additionner ou effectuer un branchement.
Dans l’encodage d’une instruction, modifier le code opération peut transformer un chargement de données en une autre opération.
Code source
Le code source est le texte d’un programme lisible par un humain, écrit dans un langage de programmation avant sa traduction ou son interprétation.
Modifier un fichier source C change son texte, mais l’exécutable natif précédent reste inchangé jusqu’à sa reconstruction.
Cœur
Un cœur est une unité de traitement dotée des ressources de commande, de calcul et de conservation de l’état de travail nécessaires pour exécuter un flux d’instructions.
Quatre cœurs peuvent exécuter des tâches distinctes en même temps lorsque le système d’exploitation dispose de tâches prêtes.
Compilateur
Un compilateur traduit le code d’un programme dans une autre représentation, souvent du code machine ou du bytecode, soit à l’avance, soit pendant l’exécution.
Un compilateur anticipé peut transformer un programme C en code pour le processeur choisi comme cible.
Compilation à la volée
La compilation à la volée traduit le code en instructions machine natives pendant l’exécution du programme, en se concentrant souvent sur les parties fréquemment exécutées.
Après avoir repéré une boucle fréquemment exécutée, un environnement d’exécution peut la compiler pour éviter de l’interpréter à chaque répétition ultérieure.
Compteur ordinal
Le compteur ordinal contient l’adresse de la prochaine instruction à lire ; il avance pendant la lecture et change lorsqu’un branchement est pris.
Un saut vers l’adresse 0 remplace l’adresse séquentielle suivante du PC pour que le programme puisse répéter une boucle.
Contrôleur de périphérique
Un contrôleur de périphérique est un composant matériel qui gère la communication de bas niveau avec un périphérique et fournit au système des registres d’état et de données.
Un contrôleur de stockage reçoit une demande de transfert et signale quand son bloc de données a atteint la RAM.
Convertisseur analogique-numérique
Un convertisseur analogique-numérique échantillonne un signal analogique et représente les valeurs mesurées sous forme de nombres numériques pour leur traitement par un ordinateur.
Les circuits d’entrée d’un microphone convertissent les mesures du son en nombres stockés sous forme d’un enregistrement audio.
Convertisseur numérique-analogique
Un convertisseur numérique-analogique transforme des valeurs représentées numériquement en un signal analogique capable de commander une sortie comme un haut-parleur.
La lecture d’un enregistrement stocké nécessite de convertir ses échantillons numériques en un signal destiné au haut-parleur.
Cycle d’horloge
Un cycle d’horloge est un intervalle de synchronisation du signal d’horloge du processeur qui coordonne les changements des circuits sans nécessairement terminer une instruction.
Une horloge à 3 GHz donne environ 0,33 ns par cycle, tandis qu’une instruction peut comporter plusieurs étapes internes.
Cycle de lecture-décodage-exécution
Le cycle de lecture-décodage-exécution est le processus répété qui consiste à obtenir une instruction machine, à interpréter son opération et à l’effectuer.
Une instruction LOAD doit d’abord être lue avant que son exécution effectue la lecture distincte des données.

D

Débordement de pile
Un débordement de pile se produit lorsque les besoins de la pile d’appels dépassent l’espace disponible, souvent après des appels de fonctions répétés sans point d’arrêt.
Une fonction qui continue de s’appeler elle-même ajoute des enregistrements d’appel jusqu’à ce que le processus manque d’espace disponible sur la pile.
Demi-additionneur
Un demi-additionneur additionne deux bits d’entrée et produit des bits distincts de somme et de retenue, en utilisant OU exclusif pour la somme et ET pour la retenue.
L’addition de deux bits valant 1 produit une retenue de 1 et une somme de 0, soit le nombre binaire à deux bits 10.
Disque dur
Un disque dur stocke les bits de manière magnétique sur des plateaux en rotation, à l’aide d’une tête mobile qui entraîne des délais de recherche et de rotation.
La lecture de petits fichiers dispersés oblige un disque dur à subir des délais répétés avant le transfert de chaque bloc.
Disque optique
Un disque optique stocke les données sous forme de marques lues par un laser sur une couche réfléchissante ; les CD, DVD et disques Blu-ray sont des supports amovibles de ce type.
Un DVD simple couche stocke généralement 4,7 Go, tandis qu’un disque Blu-ray simple couche stocke généralement 25 Go.

É

Écriture du résultat
L’écriture du résultat est l’étape de l’exécution d’une instruction qui place un résultat calculé dans son registre de destination ou son emplacement mémoire.
Après une opération arithmétique, écrire le résultat dans sa destination le rend disponible pour les instructions ultérieures.
Écroulement du système (thrashing)
L’écroulement du système est un fort ralentissement causé par des déplacements fréquents de pages entre la RAM et le stockage qui occupent une grande partie du temps d’exécution du système.
Fermer des applications qui consomment beaucoup de mémoire peut réduire le trafic de pages et laisser davantage de RAM aux autres tâches actives.
Éditeur de liens
Un éditeur de liens combine des fichiers objets et résout les références aux bibliothèques pour produire un exécutable, en utilisant du code statique ou des dépendances à des bibliothèques partagées.
Une fonction externe non résolue après l’assemblage nécessite une édition de liens, et non une nouvelle vérification de la syntaxe du code source.
Édition de liens statique et dynamique
L’édition de liens statique copie le code de bibliothèque nécessaire dans un exécutable ; l’édition de liens dynamique le relie à des bibliothèques partagées fournies séparément.
Un programme lié dynamiquement peut ne pas démarrer si une bibliothèque partagée compatible et nécessaire manque.

E

Exécutable
Un exécutable est un fichier programme préparé pour être chargé et exécuté, contenant du code et des informations complémentaires dans le format attendu par une plateforme.
Un exécutable natif peut dépendre à la fois de l’architecture du jeu d’instructions du processeur cible et du format de fichier de son système d’exploitation.

F

Fréquence d’horloge
La fréquence d’horloge est le nombre de cycles de synchronisation du processeur par unité de temps, mesuré en hertz ; elle influe sur le temps d’exécution avec le travail effectué par cycle.
Une tâche fixe de six milliards de cycles prend 1,5 s à 4 GHz, mais des processeurs de conception différente peuvent nécessiter des nombres de cycles différents.
Fuite mémoire
Une fuite mémoire correspond à de la mémoire qu’un programme conserve alors qu’il n’en a plus besoin et qu’il ne la libère pas, ce qui permet aux allocations inutiles de s’accumuler.
Un programme qui fonctionne longtemps et abandonne régulièrement des allocations inutiles sur le tas peut voir sa consommation de mémoire augmenter progressivement.

G

Gestionnaire d’interruption
Un gestionnaire d’interruption est une routine qui répond à une interruption pendant que l’état du programme interrompu est préservé en vue de sa reprise ultérieure.
Un gestionnaire de clavier aide à traiter un événement de touche, après quoi le calcul interrompu peut continuer.

H

Hiérarchie mémoire
La hiérarchie mémoire combine de petits espaces de stockage rapides près du processeur et des niveaux plus grands et plus lents, afin d’équilibrer la capacité, la vitesse et le coût par octet.
Les registres et les mémoires caches servent au travail immédiat, tandis que la RAM, les supports de stockage et les archives fournissent des espaces de plus en plus grands.

I

Indicateur d’état
Un indicateur d’état est un état enregistré dans le processeur et défini par une opération, comme un résultat nul ou négatif, qu’une instruction ultérieure peut tester.
Un branchement conditionnel peut vérifier l’indicateur de zéro pour décider de poursuivre ou de sauter à une autre adresse.
Instruction de branchement
Une instruction de branchement modifie l’adresse de l’instruction suivante, soit sans condition, soit uniquement lorsqu’un test donné réussit.
Une instruction de saut si zéro comme JUMPZ envoie le processeur à son adresse cible uniquement si l’accumulateur vaut zéro au moment de l’exécution.
Interface graphique et interface en ligne de commande
Une interface graphique fournit des commandes visuelles comme des fenêtres et des icônes ; une interface en ligne de commande accepte des commandes saisies qui peuvent aussi être combinées dans des scripts.
Une personne peut parcourir un dossier visuellement ou utiliser ls dans une ligne de commande pour demander la liste de ses fichiers.
Interpréteur
Un interpréteur est un programme qui effectue les opérations d’un autre programme pendant son exécution, à l’aide de sa propre implémentation sur l’ordinateur hôte.
Le processeur exécute le code machine d’un interpréteur pendant que celui-ci réalise les opérations d’un programme de haut niveau.
Interruption
Une interruption est un signal qui demande l’intervention du processeur et déclenche l’exécution d’un gestionnaire approprié avant la reprise du travail interrompu.
Un transfert sur disque terminé peut déclencher une interruption afin que le système d’exploitation sache que les données demandées sont prêtes.

L

Langage d’assemblage
Le langage d’assemblage représente les instructions machine par des mnémoniques lisibles, des noms de registres et des étiquettes étroitement liés à une architecture de jeu d’instructions particulière.
Un compte à rebours écrit avec LOAD, SUB et des sauts montre les opérations qui implémentent sa boucle.
Ligne de cache
Une ligne de cache est le bloc d’octets mémoire voisins déplacés ensemble dans un cache de processeur, généralement 64 octets dans les processeurs modernes.
Lire un octet demandé peut aussi copier des octets proches que les lectures ultérieures trouveront sans nouvel accès à la RAM.
Localité spatiale
La localité spatiale est la tendance à accéder à des adresses proches d’une adresse récemment utilisée, ce qui rend utiles les copies d’octets voisins.
La lecture d’éléments consécutifs d’une liste profite du chargement de plusieurs d’entre eux à proximité lors de la lecture d’une ligne de cache.
Localité temporelle
La localité temporelle est la tendance à accéder de nouveau bientôt aux instructions ou aux données utilisées récemment, ce qui rend utiles les copies conservées.
Une boucle lit et met à jour régulièrement son compteur, réutilisant le même contenu de travail sur une courte période.
Logiciel
Le logiciel comprend les programmes et les données qu’ils manipulent ; il fournit les instructions et les informations qui donnent au matériel des tâches utiles à accomplir.
Un éditeur d’images utilise des instructions logicielles pour modifier les valeurs de couleur stockées pour une photographie.
Loi de Moore
La loi de Moore est l’observation historique selon laquelle le nombre de transistors sur les puces a approximativement doublé tous les deux ans pendant une longue période.
Davantage de transistors peuvent fournir des mémoires caches plus grandes et des cœurs supplémentaires sans doubler la vitesse de chaque programme.

M

Machine virtuelle
Une machine virtuelle de langage est un logiciel qui fournit l’environnement d’instructions nécessaire à l’exécution de bytecode sur un ordinateur physique.
La JVM interprète ou compile le bytecode Java à l’aide d’une implémentation conçue pour la plateforme hôte.
Matériel informatique
Le matériel informatique est l’ensemble des équipements physiques d’un système informatique, notamment son processeur, ses cartes électroniques, ses puces mémoire, ses supports de stockage et ses périphériques.
Le clavier et les modules de RAM d’un ordinateur portable sont du matériel informatique, tandis que l’éditeur de texte qui y fonctionne est un logiciel.
Mémoire adressable par octet
Une mémoire adressable par octet attribue une adresse distincte à chaque octet : une valeur de plusieurs octets occupe donc plusieurs emplacements d’adresse consécutifs.
Une valeur de quatre octets commençant à 1 000 occupe les adresses de 1 000 à 1 003, laissant 1 004 comme emplacement suivant.
Mémoire cache
Une mémoire cache de processeur est un petit espace de stockage SRAM rapide qui conserve des copies de blocs d’instructions et de données provenant de niveaux mémoire plus lents afin de les réutiliser rapidement.
Une boucle peut retrouver régulièrement ses instructions dans le cache au lieu de les lire en RAM à chaque fois.
Mémoire morte (ROM)
La ROM est une mémoire non volatile associée à des contenus conservés, normalement fixes ; les micrologiciels modernes utilisent souvent à la place une mémoire flash modifiable.
Appeler « ROM » l’espace de fichiers d’un téléphone dans lequel on écrit fréquemment revient à confondre son stockage flash avec des contenus de démarrage fixes.
Mémoire secondaire
La mémoire secondaire conserve les programmes et les données sans alimentation et offre une capacité persistante dont l’accès est plus lent que celui de la mémoire principale de travail.
Un fichier d’application reste sur le SSD après la fin de son processus et la récupération de sa RAM.
Mémoire virtuelle
La mémoire virtuelle donne aux processus leurs propres espaces d’adressage et fait correspondre leurs adresses à la mémoire physique tout en faisant respecter les autorisations d’accès.
Deux processus peuvent utiliser la même adresse virtuelle écrite tout en conservant leurs valeurs privées dans des pages de RAM différentes.
Mémoire vive (RAM)
La RAM est une mémoire de travail en lecture-écriture donnant un accès direct aux emplacements ; la RAM ordinaire d’un ordinateur est volatile et contient les instructions et les données en cours d’utilisation.
Un éditeur conserve le contenu courant d’un document en RAM, tandis qu’une copie enregistrée se trouve sur un stockage non volatile.
Mémoire vive dynamique (DRAM)
La DRAM est une mémoire volatile qui stocke les bits sous forme de charges dans des condensateurs et nécessite un rafraîchissement régulier, ce qui convient à une mémoire principale de grande capacité.
Le rafraîchissement de la DRAM rétablit la charge avant que sa dissipation ne rende les valeurs des bits stockés peu fiables pendant le fonctionnement.
Mémoire vive statique (SRAM)
La SRAM est une mémoire volatile qui conserve les bits dans des circuits de type verrou sans rafraîchissement tant qu’elle est alimentée, offrant un stockage rapide mais coûteux par bit.
Les mémoires caches du processeur utilisent la SRAM pour réduire les délais d’accès, même si elle coûte plus cher par octet que la DRAM de la mémoire principale.
Micrologiciel
Un micrologiciel est un logiciel de bas niveau stocké dans une mémoire non volatile qui commande le matériel ou fournit des instructions de démarrage avant l’exécution du système d’exploitation principal.
Le micrologiciel UEFI prépare le matériel d’un PC et lance un chargeur d’amorçage avant le chargement du noyau en RAM.
Mot
Un mot est la taille de données qu’un processeur traite naturellement en une opération, souvent reflétée par la largeur de ses registres généraux.
Un mot de 64 bits contient huit octets, mais cela n’exige pas que chaque connexion utilise 64 fils parallèles.

N

Noyau
Le noyau est le cœur d’un système d’exploitation qui contrôle les ressources privilégiées et fait respecter la séparation protégée autour des applications.
Une application en mode utilisateur demande les services de fichiers du noyau au lieu d’envoyer elle-même des commandes sans restriction au support de stockage.

O

Opérande
Un opérande fournit l’entrée ou la destination d’une instruction, par exemple un registre, une adresse ou une valeur immédiate, selon la définition de l’instruction.
Dans une instruction comme LOAD 10, l’opérande est l’adresse 10, dont le contenu est lu dans l’accumulateur, ACC.
Ordonnanceur
L’ordonnanceur est le composant du système d’exploitation qui sélectionne les tâches prêtes à recevoir du temps processeur, en partageant les ressources d’exécution disponibles entre les processus.
De courts tours permettent à un lecteur de musique et à un éditeur de continuer à progresser sur un seul flux de traitement.

P

Page
Une page est un bloc de taille fixe utilisé pour les correspondances de mémoire virtuelle et le déplacement de contenu entre la RAM et le stockage associé.
Un système utilisant des pages de 4 KiB établit les correspondances et récupère la mémoire par blocs contenant chacun 4 096 octets.
Périphérique d’entrée
Un périphérique d’entrée fournit des données à un ordinateur, notamment des données saisies par une personne ou des mesures recueillies dans le monde physique.
Un capteur de lumière fournit une entrée qu’un contrôleur utilise pour décider si une lampe doit s’allumer.
Périphérique de sortie
Un périphérique de sortie présente les résultats d’un ordinateur ou agit physiquement en fonction de ceux-ci, par exemple en affichant une image ou en mettant un actionneur en mouvement.
Une vanne est un périphérique de sortie lorsqu’un contrôleur l’ouvre en réponse à une température mesurée.
Pile
La pile est une zone mémoire d’un processus qui suit les appels de fonctions actifs, notamment les adresses de retour et les valeurs locales nécessaires à ces appels.
Un appel de fonction ajoute ses informations de travail et le retour libère la partie de la pile correspondant à cet appel.
Pilote de périphérique
Un pilote de périphérique est un logiciel qui traduit les demandes générales du système d’exploitation en commandes nécessaires à un contrôleur de périphérique particulier.
Un pilote d’imprimante transforme la demande d’impression du système d’exploitation en commandes que l’imprimante connectée comprend.
Pipeline d’instructions
Le pipeline d’instructions fait se chevaucher les étapes de différentes instructions, ce qui augmente le rythme auquel elles se terminent une fois le pipeline rempli.
Dans un pipeline à trois étapes, une instruction peut s’exécuter pendant qu’une autre est décodée et qu’une troisième est lue.
Porte ET
Une porte ET ne produit 1 que lorsque tous ses bits d’entrée valent 1 ; toute entrée valant 0 donne une sortie de 0.
Une porte ET à deux entrées produit un bit de retenue lorsqu’un demi-additionneur reçoit deux bits d’entrée valant tous deux 1.
Porte logique
Une porte logique est un circuit qui reçoit un ou plusieurs bits en entrée et produit un bit en sortie selon une règle fixe comme ET ou NON.
Combiner des portes permet à un processeur de comparer des suites de bits, de calculer des sommes et de contrôler la destination des résultats.
Porte NON
Une porte NON inverse son unique bit d’entrée : elle produit 1 pour une entrée de 0 et 0 pour une entrée de 1.
Si un signal entrant dans une porte NON vaut 0, la porte connectée suivante reçoit 1 à sa sortie.
Porte NON-ET
Une porte NON-ET inverse le résultat de ET et ne produit 0 que lorsque toutes les entrées valent 1 ; les portes NON-ET suffisent à elles seules à implémenter toute fonction logique.
Relier les deux entrées d’une porte NON-ET à un même bit donne en sortie l’opposé de ce bit.
Porte NON-OU
Une porte NON-OU inverse le résultat de OU et ne produit 1 que lorsque toutes les entrées valent 0 ; les portes NON-OU suffisent à elles seules à implémenter toute fonction logique.
Lorsque l’une de deux entrées vaut 1, leur sortie NON-OU vaut 0 parce que leur résultat OU vaudrait 1.
Porte OU
Une porte OU produit 1 lorsqu’au moins une entrée vaut 1, y compris lorsque toutes les entrées valent 1.
Deux entrées valant 1 donnent une sortie OU de 1 ; comprendre cette règle comme « l’une mais pas les deux » reviendrait à la confondre avec OU exclusif.
Porte OU exclusif
Une porte OU exclusif à deux entrées produit 1 lorsque ses entrées diffèrent et 0 lorsqu’elles sont égales, appliquant ainsi la règle du bit de somme d’un demi-additionneur.
Un demi-additionneur qui reçoit 1 et 1 obtient un bit de somme nul par OU exclusif et un bit de retenue par ET.
Principe du programme enregistré
Le principe du programme enregistré signifie que les instructions sont représentées sous forme de contenus binaires en mémoire pour que le processeur puisse les lire et les exécuter.
Charger un autre programme permet au même ordinateur de modifier un document après avoir exécuté un jeu.
Processeur graphique
Un processeur graphique est un processeur spécialisé dans les travaux fortement parallèles qui appliquent des opérations similaires à de nombreuses données.
La mise à jour de nombreux pixels d’image convient au traitement par un processeur graphique parce que le travail contient de nombreux calculs similaires.
Processus
Un processus est une instance en cours d’exécution d’un programme, avec son propre état d’exécution, son espace d’adressage et ses ressources gérées par le système d’exploitation.
Des instances distinctes d’un éditeur peuvent utiliser le même fichier programme tout en conservant des états de document différents en mémoire.

R

Registre
Un registre est un petit emplacement de stockage très rapide à l’intérieur du processeur qui contient une valeur de travail immédiate, une adresse ou une instruction.
Conserver un compteur de boucle dans un registre évite de récupérer régulièrement cette valeur de travail dans la mémoire principale.
Registre d’adresses mémoire
Le registre d’adresses mémoire contient l’emplacement sélectionné pour une lecture ou une écriture en mémoire et fournit ainsi l’adresse de l’accès.
Pour lire une donnée à l’emplacement 20, un processeur place 20 dans le MAR avant de demander la lecture.
Registre d’instruction
Le registre d’instruction contient l’instruction lue pendant son décodage et son exécution ; il est aussi appelé registre d’instruction courante.
Après l’arrivée d’une instruction dans le MDR, un processeur la copie dans le CIR afin que son opération puisse être décodée.
Registre de données mémoire
Le registre de données mémoire contient le contenu qui vient d’être lu en mémoire ou qui va y être écrit ; il est aussi appelé registre tampon mémoire.
Pendant STORE, le MDR reçoit la valeur de l’accumulateur avant que celle-ci soit écrite à l’emplacement sélectionné.
Répartition de l’usure
La répartition de l’usure est une technique du contrôleur flash qui distribue les opérations d’effacement et d’écriture entre les cellules afin de répartir leur capacité d’écriture limitée.
Répartir les écritures répétées entre les cellules aide à éviter l’usure prématurée d’une zone fréquemment mise à jour.
RISC et CISC
RISC et CISC sont des styles de conception de jeux d’instructions qui privilégient respectivement des opérations simples et régulières et des opérations plus complexes.
Les formes compressées de RISC-V montrent pourquoi identifier une architecture RISC ne permet pas de conclure à une longueur d’instruction unique.

S

Scrutation
La scrutation est la vérification répétée de l’état d’un périphérique pour savoir s’il dispose de données prêtes ou s’il a terminé une opération qui lui a été confiée.
Un processeur qui vérifie sans cesse un capteur inactif passe du temps à effectuer des vérifications qui ne renvoient aucune nouvelle donnée.
SSD
Un SSD utilise des cellules flash non volatiles sans pièce mobile et offre un accès direct rapide aux programmes et fichiers persistants.
Un SSD convient aux fichiers actifs d’un ordinateur portable, car sa rapidité d’accès et sa résistance aux chocs sont utiles en déplacement.
Stockage dans le cloud
Le stockage dans le cloud est un service qui conserve les fichiers sur les équipements de stockage physiques d’un fournisseur et les rend accessibles par un réseau.
Un fichier distant peut être partagé entre plusieurs appareils, mais sa lecture dépend de la connexion et du fournisseur.
Succès et défaut de cache
Un succès de cache permet de trouver le contenu demandé dans le cache ; un défaut exige de le récupérer à un niveau plus lent, ce qui ajoute un délai à cet accès.
Un défaut pour un élément de liste peut aussi charger les octets voisins, permettant aux accès suivants de réussir dans le cache.
Système d’exploitation
Un système d’exploitation gère les ressources matérielles et fournit les services que les applications utilisent pour s’exécuter, accéder aux fichiers et communiquer avec les périphériques.
Un éditeur demande un fichier par son nom tandis que le système d’exploitation localise ses données et coordonne le périphérique de stockage.
Système d’exploitation temps réel
Un système d’exploitation temps réel fournit des garanties de temps de réponse fixées pour des tâches dont la correction dépend du respect des délais.
Une réponse de commande industrielle doit arriver avant son délai, même si une réponse ultérieure calculerait la même valeur.
Système de fichiers
Un système de fichiers organise le contenu stocké en fichiers et dossiers nommés et suit leurs emplacements, leurs tailles, leurs dates et leurs autorisations d’accès.
Le chemin /home/sam/notes.txt désigne un fichier Linux sans révéler quels blocs de stockage le contiennent.
Système embarqué
Un système embarqué est un ordinateur intégré à un appareil plus grand pour effectuer une tâche précise à l’aide de son processeur, de sa mémoire et de ses entrées-sorties.
Le contrôleur d’un lave-linge lit des capteurs et commande son moteur au moyen d’un programme de commande enregistré.
Système sur puce
Un système sur puce réunit plusieurs fonctions informatiques, comme le processeur, les circuits graphiques et les circuits de commande des périphériques, dans une seule puce intégrée.
Un téléphone utilise un système sur puce pour réunir de nombreuses fonctions informatiques dans un petit appareil économe en énergie.

T

Table de vérité
Une table de vérité indique la sortie d’un circuit pour chaque combinaison possible de ses entrées, rendant explicite la règle complète entre entrées et sortie.
Une porte à deux entrées nécessite quatre lignes parce que ses deux bits offrent quatre combinaisons d’entrées possibles.
Tas
Le tas est une zone mémoire d’un processus utilisée pour les allocations demandées pendant l’exécution, par exemple pour stocker une collection qui grandit.
Un programme qui construit une liste de taille variable peut obtenir de la mémoire sur le tas à mesure qu’il reçoit de nouveaux éléments.
Taux de succès
Le taux de succès est le nombre d’accès trouvés dans un cache divisé par le nombre total d’accès ; il exprime la fréquence à laquelle la copie rapide est disponible.
Un cache qui trouve 950 valeurs demandées sur 1 000 possède un taux de succès de 95 % et un taux de défaut de 5 %.
Temps d’accès et débit de transfert
Le temps d’accès est le délai jusqu’au début de l’arrivée des données, tandis que le débit de transfert est la quantité fournie par seconde une fois le transfert commencé.
Des milliers de tout petits fichiers subissent des délais d’accès répétés, tandis que pour un seul grand fichier le débit de transfert soutenu compte davantage.
Transistor
Un transistor est un composant commandé électroniquement qui fonctionne comme un interrupteur dans les circuits numériques et aide à représenter et à manipuler les bits.
Des groupes de transistors implémentent les règles des portes utilisées dans une unité arithmétique et logique et ses registres.

U

Unité arithmétique et logique
L’unité arithmétique et logique est le circuit du processeur qui effectue les opérations arithmétiques et logiques sur les bits, les décalages et les comparaisons, et enregistre les états des résultats.
Soustraire une valeur d’elle-même produit zéro, que l’UAL peut enregistrer pour un branchement conditionnel ultérieur.
Unité de commande
L’unité de commande coordonne l’exécution des instructions en les lisant et en les décodant, puis en émettant des signaux vers les autres parties du processeur.
Pour une instruction ADD, l’unité de commande sélectionne les opérandes tandis que l’UAL effectue l’addition elle-même.
Unité de gestion mémoire
L’unité de gestion mémoire est un composant matériel du processeur qui traduit les adresses virtuelles à l’aide des correspondances établies par le système d’exploitation et vérifie les autorisations d’accès.
Un accès à un emplacement protégé provoque une erreur lorsque la correspondance du processus n’autorise pas l’opération demandée.

V

Va-et-vient
Le va-et-vient déplace des pages mémoire entre la RAM et le stockage associé, permettant au contenu inactif de quitter la RAM pour que d’autres tâches utilisent l’espace libéré.
Une page conservée dans un fichier d’échange doit être récupérée avant que son contenu absent puisse être de nouveau utilisé en RAM.
Verrou
Un verrou est un circuit à rétroaction qui peut conserver un bit tant qu’il est alimenté et constitue un élément simple de stockage d’un état numérique.
Des portes couplées de façon croisée renvoient leurs sorties les unes vers les autres afin que le circuit puisse mémoriser son état.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer