<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/Architectures matérielles</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Modèle de von Neumann, composants d'un ordinateur<br/>
(processeur, mémoire, périphériques d'entrée/sortie),<br/>
fonctionnement du processeur (cycle de von Neumann), notions<br/>
d'assembleur et de langage machine, hiérarchie mémoire.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q01 : Modèle de von Neumann</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quels sont les composants principaux d'un ordinateur selon<br/>
le <strong>modèle de von Neumann</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avant von Neumann, les ordinateurs séparaient<br/>
programmes et données (architecture Harvard). Le génie<br/>
de von Neumann : permettre au programme d'être traité<br/>
comme une donnée, ce qui ouvre la voie aux compilateurs,<br/>
systèmes d'exploitation, etc.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'écran, le clavier et la souris</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont des <strong>périphériques</strong> spécifiques.<br/>
Le modèle de von Neumann est plus général et<br/>
structurel.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une unité de calcul (processeur), une mémoire pour les données et les instructions, et des entrées/sorties</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le modèle de von Neumann (1945)<br/>
est l'architecture de référence des ordinateurs<br/>
actuels. Sa particularité : la mémoire stocke à la<br/>
fois les <strong>données</strong> et les <strong>instructions</strong> (du<br/>
programme).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Internet, l'écran et le clavier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Internet n'est pas un composant interne de<br/>
l'ordinateur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le système d'exploitation et les applications</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont des composants <strong>logiciels</strong>, pas<br/>
le modèle d'architecture matérielle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q02 : Rôle du processeur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le rôle principal du <strong>processeur</strong> (CPU) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un processeur moderne contient des milliards de<br/>
transistors. Il opère à plusieurs gigahertz (milliards<br/>
d'instructions par seconde) avec plusieurs cœurs en<br/>
parallèle.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Exécuter les instructions d'un programme : calculs arithmétiques, comparaisons, accès mémoire, etc.</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le processeur lit les instructions<br/>
en mémoire et les exécute une par une (cycle de<br/>
von Neumann). Il contient une <strong>unité arithmétique<br/>
et logique</strong> (UAL) et une <strong>unité de contrôle</strong>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Stocker les données à long terme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le rôle des disques durs ou SSD. Le<br/>
processeur exécute les calculs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Afficher les images à l'écran</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le rôle de la carte graphique (GPU)<br/>
plus que du CPU principal.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Stocker les fichiers en mémoire vive</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le rôle de la RAM (mémoire vive),<br/>
pas du processeur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q03 : Mémoire vive (RAM)</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la caractéristique principale de la <strong>mémoire<br/>
vive</strong> (RAM) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La hiérarchie mémoire moderne combine plusieurs niveaux<br/>
de vitesse : registres (CPU) &gt; cache (CPU) &gt; RAM &gt; SSD<br/>
&gt; disque dur &gt; stockage réseau. Plus c'est rapide, plus<br/>
c'est cher et limité en capacité.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est plus lente que le disque dur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse. La RAM est typiquement<br/>
1000 fois plus rapide qu'un disque dur, et 100<br/>
fois plus rapide qu'un SSD.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle stocke les programmes du système d'exploitation à long terme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le disque dur qui stocke à long<br/>
terme. La RAM contient temporairement les<br/>
programmes en cours d'exécution.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle conserve les données même après extinction de l'ordinateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la RAM est <strong>volatile</strong>, elle perd ses<br/>
données quand l'ordinateur s'éteint. C'est ce qui<br/>
la distingue du disque dur ou SSD.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle est rapide d'accès et volatile (perd ses données à l'extinction)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la RAM est utilisée comme zone de<br/>
travail pour les programmes en cours d'exécution.<br/>
Sa rapidité (nanosecondes) la rend bien plus<br/>
performante que les SSD ou disques durs (microsecondes<br/>
à millisecondes).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q04 : Cycle de von Neumann</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelles sont les étapes du <strong>cycle de von Neumann</strong><br/>
exécuté par le processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Ce cycle, simple en apparence, est largement optimisé<br/>
dans les processeurs modernes : pipelining (plusieurs<br/>
étapes en parallèle), exécution dans le désordre,<br/>
prédiction de branchement, etc.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Compiler, lier, exécuter</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le cycle de <strong>production d'un<br/>
exécutable</strong>, pas le cycle d'exécution des<br/>
instructions.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Allumer, démarrer, attendre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait plus une procédure de démarrage,<br/>
pas le cycle d'exécution des instructions.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Fetch (lire l'instruction en mémoire), Decode (la décoder), Execute (l'exécuter)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est le cycle « lecture, décodage,<br/>
exécution » qui se répète des milliards de fois par<br/>
seconde dans un processeur moderne. Certains modèles<br/>
ajoutent une étape « write back » (écriture du<br/>
résultat).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lire, écrire, supprimer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt le vocabulaire des opérations<br/>
sur fichiers, pas le cycle d'exécution.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q05 : Bus</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'un <strong>bus</strong> dans une architecture<br/>
d'ordinateur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les processeurs modernes ont des bus très spécialisés<br/>
(PCIe pour les cartes d'extension, DDR pour la RAM,<br/>
USB pour les périphériques externes, etc.).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un système de transport public</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : analogie possible mais sans rapport en<br/>
informatique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un programme qui transporte des fichiers entre dossiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec les programmes. Un bus<br/>
est physique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un type de mémoire vive</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible. Le bus relie les<br/>
composants, mais ce n'est pas une mémoire en<br/>
lui-même.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un ensemble de fils ou pistes conducteurs qui transportent des informations entre les composants</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le bus est l'autoroute interne de<br/>
l'ordinateur. On distingue le bus de <strong>données</strong><br/>
(qui transporte les valeurs), le bus d'<strong>adresses</strong><br/>
(où dans la mémoire ?), et le bus de <strong>contrôle</strong><br/>
(signaux de coordination).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q06 : Langage assembleur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce que le langage <strong>assembleur</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'assembleur est différent pour chaque architecture<br/>
processeur (x86 pour Intel/AMD, ARM pour<br/>
smartphones et Apple Silicon, RISC-V open source).<br/>
Connaître l'assembleur aide à comprendre comment un<br/>
programme s'exécute concrètement.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le langage utilisé par le système d'exploitation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les systèmes modernes sont surtout écrits<br/>
en C/C++ (avec un peu d'assembleur dans les<br/>
parties très bas niveau).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un compilateur qui transforme le code source en exécutable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un compilateur transforme un langage de<br/>
haut niveau (C, Java) en assembleur ou en machine.<br/>
L'assembleur est un langage, pas un outil.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un langage symbolique de bas niveau qui correspond directement aux instructions du processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque instruction assembleur<br/>
correspond généralement à une instruction machine.<br/>
Par exemple, MOV AX, 5 charge la valeur 5 dans<br/>
le registre AX. C'est plus lisible que le binaire<br/>
mais reste très proche du matériel.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un langage de très haut niveau comme Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse. L'assembleur est un<br/>
langage de <strong>bas niveau</strong>, très proche du matériel.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q07 : Unité arithmétique et logique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que fait l'<strong>unité arithmétique et logique</strong> (UAL) du<br/>
processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'UAL est composée de circuits logiques (additionneurs,<br/>
comparateurs, décaleurs, portes ET/OU/NON). C'est<br/>
l'application concrète de l'algèbre de Boole étudiée<br/>
en NSI.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle effectue les opérations arithmétiques (addition, soustraction, multiplication) et logiques (ET, OU, NON, XOR)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'UAL est le « calculateur » du<br/>
processeur. Elle prend deux opérandes en entrée et<br/>
produit un résultat selon l'opération demandée par<br/>
l'unité de contrôle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle stocke les fichiers du système</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun stockage. L'UAL est une unité de<br/>
calcul.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle gère les périphériques d'entrée/sortie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le rôle des contrôleurs d'E/S, pas<br/>
de l'UAL.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle décode les instructions</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'unité de <strong>contrôle</strong> qui décode.<br/>
L'UAL exécute les opérations une fois décodées.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q08 : Registres</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'un <strong>registre</strong> dans un processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un programme assembleur manipule essentiellement les<br/>
registres : on charge des données depuis la RAM dans<br/>
des registres, on calcule, et on écrit le résultat<br/>
ailleurs. C'est la base du fonctionnement à bas niveau.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une zone de mémoire ultra-rapide située à l'intérieur du processeur, utilisée pour stocker les valeurs en cours de traitement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les registres sont les zones de<br/>
stockage les plus rapides (accès en un cycle<br/>
d'horloge). Un processeur en contient typiquement<br/>
quelques dizaines à quelques centaines, contre des<br/>
milliards de bits en RAM.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La mémoire vive de l'ordinateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la RAM est externe au processeur. Les<br/>
registres sont <strong>internes</strong>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un type de bus</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un registre n'est pas un bus, c'est un<br/>
composant de stockage très rapide.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un fichier où l'on liste les utilisateurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec les utilisateurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q09 : Horloge du processeur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que mesure-t-on en <strong>gigahertz</strong> (GHz) sur un processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Attention : la fréquence n'est pas le seul facteur de<br/>
performance. Un processeur à 3 GHz peut être plus<br/>
rapide qu'un autre à 4 GHz s'il fait plus<br/>
d'opérations par cycle (pipeline, superscalaire) ou<br/>
s'il a plus de cœurs.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La consommation électrique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la consommation se mesure en watts, pas en<br/>
hertz.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La quantité de mémoire disponible</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la mémoire se mesure en octets, pas en<br/>
hertz.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La fréquence de l'horloge interne, combien de cycles par seconde le processeur peut effectuer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un processeur à 3 GHz fait<br/>
3 milliards de cycles par seconde. Chaque cycle<br/>
peut typiquement exécuter une (ou plusieurs)<br/>
instructions. Mais ce n'est qu'une mesure parmi<br/>
d'autres de la performance.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La taille des données traitées</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt l'<strong>architecture</strong> (32, 64<br/>
bits) qui définit la taille des mots traités.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q10 : Préfixes pour les octets</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien d'octets contient un <strong>kibioctet</strong> (Kio) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Hiérarchie : 1 Kio = 2¹⁰ o ; 1 Mio = 2²⁰ o ;<br/>
1 Gio = 2³⁰ o ; 1 Tio = 2⁴⁰ o. Les<br/>
fabricants de disques durs utilisent souvent les<br/>
préfixes décimaux (KO, MO, GO), ce qui crée des<br/>
différences avec les kibi/mébi/gibioctets affichés par<br/>
les systèmes.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1\ 000</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 1 kilooctet (KO) en notation<br/>
décimale (base 10). Le <strong>kibioctet</strong> utilise la<br/>
base 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1\ 048\ 576</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est 1 Mio (mébioctet, 2²⁰).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>1\ 024</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 1 Kio = 2¹⁰ = 1\ 024 octets.<br/>
Cette notation IEC (2000) distingue le kilooctet<br/>
(kilo = 1000) du kibioctet (kibi = 1024). En<br/>
informatique, on utilise traditionnellement les<br/>
puissances de 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 8 bits font un <strong>octet</strong>. Un kibioctet<br/>
est bien plus.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q11 : Hiérarchie mémoire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi a-t-on plusieurs <strong>niveaux de mémoire</strong> dans un<br/>
ordinateur (registres, cache, RAM, disque) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Si l'on devait faire toute la mémoire au niveau des<br/>
registres, on aurait moins d'un kilooctet à coût<br/>
raisonnable. Si on faisait tout au niveau du disque,<br/>
le processeur passerait son temps à attendre.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour rendre l'ordinateur plus complexe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la complexité n'est pas un objectif.<br/>
C'est un compromis pratique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que les ingénieurs n'ont pas su choisir</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la hiérarchie est un choix délibéré, pas<br/>
un défaut.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour rendre les programmes incompatibles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la hiérarchie est invisible aux programmes<br/>
(gérée par le matériel et le système d'exploitation).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Pour faire un compromis entre vitesse, capacité et coût</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les registres et caches sont<br/>
ultra-rapides mais très petits et coûteux ; la RAM<br/>
est rapide et de taille modérée ; le disque dur est<br/>
lent mais énorme et bon marché. Combiner les trois<br/>
permet d'avoir à la fois la performance et la<br/>
capacité.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q12 : Mémoire cache</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert la <strong>mémoire cache</strong> d'un processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les processeurs modernes ont 3 niveaux de cache (L1,<br/>
L2, L3) avec des tailles et vitesses croissantes mais<br/>
restant bien plus rapides que la RAM. La gestion du<br/>
cache est un domaine complexe qui influe énormément<br/>
sur les performances.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Compresser les données</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec la compression.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Stocker les fichiers temporaires du système</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec le cache du<br/>
navigateur ou du système. Ici on parle du cache<br/>
processeur (interne).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Sauvegarder les fichiers avant l'extinction</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la cache processeur est volatile, comme<br/>
la RAM. Elle ne sert pas à la sauvegarde.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Conserver les données récemment utilisées pour y accéder plus rapidement que via la RAM</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la cache exploite le principe de<br/>
<strong>localité</strong> (les programmes ont tendance à réutiliser<br/>
les mêmes données ou des données voisines). En<br/>
gardant les données chaudes dans une mémoire<br/>
ultra-rapide proche du processeur, on évite des<br/>
accès lents à la RAM.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q13 : Adresse mémoire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'une <strong>adresse mémoire</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En programmation, on manipule rarement les adresses<br/>
mémoire directement (sauf en C/C++ avec les pointeurs).<br/>
Le système d'exploitation gère la <strong>mémoire virtuelle</strong><br/>
pour donner à chaque programme l'illusion d'avoir<br/>
toute la mémoire à lui.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un identifiant unique pour chaque programme installé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt un PID (Process ID). Une<br/>
adresse mémoire est plus bas niveau.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nom d'un fichier sur le disque</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion avec un chemin. Une adresse<br/>
mémoire est numérique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un numéro qui identifie un emplacement dans la mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la mémoire est vue comme un<br/>
immense tableau d'octets, indexés de 0 à<br/>
quelques milliards. L'adresse identifie où lire ou<br/>
écrire. Sur un processeur 64 bits, les adresses<br/>
peuvent aller jusqu'à 2⁶⁴.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nom du processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le nom commercial du<br/>
processeur (par exemple<br/>
Intel Core i7) est une<br/>
dénomination, pas une<br/>
adresse mémoire. Une<br/>
adresse mémoire est un<br/>
entier qui désigne un<br/>
emplacement précis dans<br/>
la RAM.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q14 : Architecture 64 bits</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie qu'un processeur est en <strong>architecture<br/>
64 bits</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le passage à 64 bits (2003 pour AMD, 2006 pour<br/>
Apple Silicon) a permis de dépasser la barre des<br/>
4 Gio adressables, qui posait problème avec les<br/>
grandes bases de données et le calcul scientifique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il a 64 fils dans ses bus</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trop simpliste. Le « 64 bits » concerne<br/>
la taille des registres et des adresses, pas le<br/>
nombre de fils physiques.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il fait 64 instructions par seconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il en fait des milliards par seconde, pas<br/>
64.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Ses registres principaux et ses adresses mémoire font 64 bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : il peut traiter des entiers jusqu'à<br/>
2⁶⁴ - 1 en une seule instruction et adresser<br/>
jusqu'à 2⁶⁴ octets de mémoire (environ<br/>
16 exaoctets, largement plus que toute mémoire<br/>
actuelle). Les processeurs modernes sont presque<br/>
tous en 64 bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il a 64 cœurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le nombre de cœurs et la taille des mots<br/>
sont indépendants. Un processeur 64 bits peut<br/>
avoir 1 ou 128 cœurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q15 : Multi-cœurs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'apporte un processeur <strong>multi-cœurs</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le multi-cœur a redéfini la programmation depuis les<br/>
années 2000. Beaucoup d'algorithmes ont dû être<br/>
repensés pour exploiter le parallélisme efficacement<br/>
(problèmes de synchronisation, de partage de données).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il fonctionne sans système d'exploitation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport. Le SE est nécessaire pour<br/>
orchestrer les processus.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il peut exécuter plusieurs instructions en parallèle, accélérant ainsi les tâches qui le permettent</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec N cœurs, on peut exécuter<br/>
N programmes (ou N threads) en vrai parallèle.<br/>
C'est devenu indispensable car les fréquences<br/>
d'horloge stagnent depuis les années 2005.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il consomme moins d'énergie que les anciens</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas la motivation principale du<br/>
multi-cœur (même si l'efficacité énergétique est un<br/>
avantage indirect).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il a une mémoire vive plus grande</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la mémoire est externe et ne dépend pas<br/>
du nombre de cœurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q16 : Langage machine</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce que le <strong>langage machine</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le langage machine est spécifique à chaque architecture<br/>
(x86, ARM, RISC-V). Un programme en langage machine<br/>
pour x86 ne tourne pas tel quel sur un Mac M1<br/>
(ARM), il faut le recompiler ou utiliser un<br/>
émulateur.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un langage de programmation comme C ou Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : C et Python sont des langages de <strong>haut<br/>
niveau</strong>, qu'il faut traduire en langage machine<br/>
pour qu'ils s'exécutent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un protocole réseau</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Un protocole réseau (TCP,<br/>
HTTP, etc.) régit les échanges<br/>
entre machines. Le langage<br/>
machine, lui, est purement<br/>
interne au processeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La représentation binaire des instructions exécutables directement par le processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque instruction est codée en<br/>
binaire selon une grammaire précise (opcode,<br/>
opérandes). Le processeur lit ces bits et les<br/>
exécute. L'assembleur est une notation <strong>symbolique</strong><br/>
du langage machine.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un langage parlé par les robots</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le langage machine est<br/>
un encodage binaire<br/>
interne au processeur,<br/>
pas une langue parlée.<br/>
Les robots qui « parlent »<br/>
utilisent la synthèse vocale,<br/>
ce qui est tout autre chose.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q17 : Compteur ordinal</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce que le <strong>compteur ordinal</strong> (ou compteur de<br/>
programme, PC) du processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le PC est central dans le fonctionnement séquentiel<br/>
des programmes. Comprendre le PC permet de comprendre<br/>
comment fonctionnent les boucles, conditions, et<br/>
appels de fonction au niveau matériel.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un compteur de bugs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le compteur ordinal n'a<br/>
aucun rapport avec les<br/>
bugs : c'est un registre<br/>
matériel qui pointe sur<br/>
la prochaine instruction<br/>
à exécuter.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un identifiant unique de l'utilisateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le PC est interne au<br/>
processeur et change à<br/>
chaque cycle. Il n'identifie<br/>
ni l'utilisateur ni la session.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un registre qui contient l'adresse de la prochaine instruction à exécuter</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : à chaque cycle, le processeur lit<br/>
l'instruction à l'adresse pointée par le PC,<br/>
l'exécute, puis incrémente le PC pour passer à la<br/>
suivante. Les sauts (if, boucles, fonctions)<br/>
modifient le PC autrement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un compteur qui mesure la durée du programme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il ne mesure pas le temps. Il pointe sur<br/>
une instruction.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q18 : Interruption</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'une <strong>interruption</strong> matérielle ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les interruptions sont gérées par le <strong>vecteur<br/>
d'interruptions</strong> : une table d'adresses de routines<br/>
à exécuter selon le type d'interruption. C'est un<br/>
mécanisme fondamental pour le multitâche et la gestion<br/>
des périphériques.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une panne du processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait un crash, pas une interruption.<br/>
Les interruptions sont un mécanisme normal de<br/>
fonctionnement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un signal qui interrompt l'exécution du programme courant pour traiter un événement urgent (clavier appuyé, paquet réseau reçu, etc.)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sans interruptions, le processeur<br/>
devrait constamment vérifier (« sondage ») chaque<br/>
périphérique. Avec elles, le périphérique signale<br/>
au processeur quand quelque chose se passe, ce qui<br/>
libère le CPU pour d'autres tâches.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un message d'erreur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les messages d'erreur sont logiciels. Les<br/>
interruptions sont des signaux électriques.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La fin du programme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fin de programme est plutôt un appel<br/>
système, pas une interruption matérielle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q19 : SSD vs disque dur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence principale entre un <strong>SSD</strong> et<br/>
un <strong>disque dur classique</strong> (HDD) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour un usage usuel : SSD pour le système et les<br/>
applications (rapidité critique), HDD pour les gros<br/>
fichiers d'archive (économique). Les disques durs<br/>
mécaniques tendent à disparaître hors usage de stockage<br/>
massif.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le SSD utilise des disques magnétiques en rotation, le HDD des puces de mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse exact. Le HDD a des<br/>
plateaux mécaniques, le SSD est purement<br/>
électronique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune différence fondamentale</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ils ont des technologies très différentes<br/>
avec des compromis différents.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le SSD coûte moins cher au gigaoctet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt l'inverse, même si l'écart se<br/>
réduit. Pour de gros volumes, le HDD reste moins<br/>
cher.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le SSD utilise des puces de mémoire flash sans pièce mobile, alors que le HDD utilise des plateaux mécaniques en rotation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le SSD est beaucoup plus rapide<br/>
(pas de temps d'accès mécanique), plus silencieux,<br/>
plus résistant aux chocs. Mais il a une durée de<br/>
vie limitée par le nombre d'écritures par cellule.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q20 : ROM vs RAM</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence entre <strong>ROM</strong> et <strong>RAM</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>ROM = Read-Only Memory ; RAM = Random Access Memory.<br/>
Aujourd'hui, la « ROM » des ordinateurs est en réalité<br/>
souvent une mémoire flash, modifiable mais<br/>
non-volatile (firmware UEFI mis à jour par exemple).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>ROM concerne la mémoire externe (disque), RAM la mémoire interne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux sont des mémoires internes,<br/>
c'est leur volatilité qui les distingue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>ROM (mémoire morte) est non volatile et généralement non modifiable ; RAM (mémoire vive) est volatile et modifiable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la ROM contient typiquement le<br/>
firmware ou BIOS, qui doit être conservé même<br/>
quand l'ordinateur est éteint. La RAM est la zone<br/>
de travail temporaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>ROM est plus rapide que RAM</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la RAM est généralement plus rapide d'accès.<br/>
La ROM se distingue par sa <strong>persistance</strong> et sa<br/>
non-modifiabilité (dans sa version de base).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>ROM est plus grande que RAM</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est généralement l'inverse. La ROM est<br/>
souvent de petite taille (firmware), la RAM bien<br/>
plus grande pour les programmes en cours.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q21 : Pipeline</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce que le <strong>pipeline</strong> dans un processeur moderne ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le pipeline est l'une des principales optimisations<br/>
des processeurs modernes. Mais il pose des défis :<br/>
branchements (sauts conditionnels), dépendances de<br/>
données. La <strong>prédiction de branchement</strong> et<br/>
<strong>l'exécution spéculative</strong> sont des techniques<br/>
avancées pour minimiser les pertes.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un câble pour brancher des périphériques</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le pipeline n'est pas un<br/>
composant physique externe.<br/>
C'est une organisation<br/>
interne du circuit qui<br/>
découpe l'exécution d'une<br/>
instruction en plusieurs<br/>
étages.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un mécanisme qui permet de superposer les étapes du cycle de von Neumann sur plusieurs instructions simultanément, comme une chaîne de montage</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pendant que l'instruction 1 est<br/>
exécutée, l'instruction 2 est décodée et<br/>
l'instruction 3 est lue. On gagne un facteur<br/>
× 3 ou × 4 en théorie, plus en<br/>
pratique avec des pipelines plus profonds.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une connexion physique entre deux processeurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt un bus ou une<br/>
interconnexion. Le pipeline est interne au<br/>
processeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un système de refroidissement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le refroidissement (ventilateur,<br/>
dissipateur) est un dispositif<br/>
thermique. Le pipeline, lui,<br/>
est une technique d'organisation<br/>
de l'unité d'exécution.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q22 : Boutisme (endianness)</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce que le <strong>boutisme</strong> (ou <em>endianness</em>) d'une<br/>
architecture ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le terme vient des « Voyages de Gulliver » (deux<br/>
camps : ceux qui mangent leur œuf par le gros bout vs<br/>
le petit bout). Important quand on échange des<br/>
données binaires entre architectures différentes<br/>
(sérialisation, protocoles réseau).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La quantité de mémoire d'un processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec la quantité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le sens de rangement des octets d'un mot multi-octets en mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour un entier 32 bits, on peut<br/>
stocker l'octet de poids fort en premier<br/>
(<em>big-endian</em>) ou en dernier (<em>little-endian</em>).<br/>
x86 est little-endian, certaines architectures<br/>
réseau sont big-endian. Cela peut poser des<br/>
problèmes de compatibilité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La fréquence d'horloge</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La fréquence d'horloge<br/>
(mesurée en gigahertz)<br/>
décrit la cadence du<br/>
processeur, pas l'ordre<br/>
de stockage des octets<br/>
en mémoire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nombre d'instructions disponibles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q23 : Mémoire virtuelle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert la <strong>mémoire virtuelle</strong> gérée par le système<br/>
d'exploitation ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La pagination utilise le disque comme « swap » quand<br/>
la RAM est pleine. Très utile mais bien plus lent que<br/>
la RAM : si l'ordinateur swappe beaucoup, les<br/>
performances chutent drastiquement.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À partager toute la mémoire entre tous les programmes simultanément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'opposé. La mémoire virtuelle<br/>
isole les programmes les uns des autres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À chiffrer la RAM</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec le chiffrement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À ralentir l'ordinateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la mémoire virtuelle a un léger surcoût<br/>
mais offre des bénéfices essentiels.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À donner à chaque programme l'illusion d'avoir une grande mémoire continue à lui seul, et à isoler les programmes les uns des autres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque processus voit un espace<br/>
d'adressage qui lui est propre, traduit par<br/>
l'unité de gestion mémoire (MMU) en adresses<br/>
physiques réelles. Cela permet l'isolation<br/>
(sécurité), le partage et la pagination (utiliser le<br/>
disque comme extension de la RAM).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q24 : RISC vs CISC</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence principale entre les architectures<br/>
<strong>RISC</strong> et <strong>CISC</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'arrivée d'Apple Silicon (M1, M2, M3, M4,<br/>
tous ARM/RISC) a montré que RISC peut concurrencer<br/>
voire surpasser x86 en performance et efficacité<br/>
énergétique pour le grand public.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>RISC est plus rapide, CISC plus lent</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : trop simpliste. Les performances dépendent<br/>
de nombreux facteurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>RISC a moins d'instructions, plus simples ; CISC a un jeu d'instructions très riche, parfois complexes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : RISC (<em>Reduced Instruction Set<br/>
Computer</em>) : ARM, RISC-V, MIPS. CISC (<em>Complex<br/>
Instruction Set Computer</em>) : x86. Les deux<br/>
philosophies ont coexisté et convergé : x86<br/>
moderne est en réalité décomposé en micro-opérations<br/>
internes proches du RISC.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>RISC est plus ancien</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt CISC qui est plus ancien.<br/>
RISC a émergé dans les années 1980 comme<br/>
réaction à la complexité croissante des CISC.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>RISC est utilisé sur PC, CISC sur smartphones</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse historiquement. ARM<br/>
(RISC) domine les smartphones, x86 (CISC)<br/>
dominait les PC (mais ARM y arrive aussi avec les<br/>
Mac Apple Silicon).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q25 : Évolution historique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lequel des énoncés suivants est <strong>vrai</strong> sur l'évolution<br/>
des architectures matérielles depuis 50 ans ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'avenir s'oriente vers un retour à du calcul<br/>
spécialisé : processeurs graphiques pour<br/>
l'intelligence artificielle, processeurs<br/>
neuronaux pour les téléphones, circuits logiques<br/>
programmables dans les serveurs. À plus long<br/>
terme, on attend l'arrivée à grande échelle du<br/>
calcul quantique et neuromorphique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La fréquence d'horloge des processeurs grand public a continué de doubler chaque année</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fréquence stagne autour de 3-5 GHz<br/>
depuis 2005 environ. Le gain de performance vient<br/>
d'autres techniques (multi-cœurs, parallélisme,<br/>
architecture).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La complexité (nombre de transistors) a continué de croître exponentiellement (loi de Moore), mais la performance par cœur s'est stabilisée et le multi-cœur s'est généralisé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la loi de Moore reste globalement<br/>
vraie pour la densité, mais traduite différemment :<br/>
plus de cœurs, plus de cache, plus d'unités<br/>
spécialisées (GPU, NPU). La performance brute par<br/>
fil d'exécution stagne depuis ~2005.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les ordinateurs sont aujourd'hui aussi performants que dans les années 1970</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la performance a augmenté de plusieurs<br/>
ordres de grandeur depuis les années 1970.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le modèle de von Neumann est obsolète depuis longtemps</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le modèle de von Neumann reste la base de<br/>
tous les ordinateurs modernes, même s'il est<br/>
enrichi par de nombreuses optimisations.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q26 : Périphériques d'entrée/sortie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les éléments suivants, lequel <strong>n'est pas</strong> un<br/>
périphérique d'entrée/sortie ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les périphériques d'entrée/sortie permettent à<br/>
l'ordinateur de dialoguer avec l'utilisateur ou<br/>
avec d'autres machines. Un même appareil peut<br/>
assurer les deux rôles : un disque dur (lecture<br/>
et écriture), un écran tactile (affichage et<br/>
saisie) ou une carte réseau (réception et envoi).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'imprimante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>L'imprimante est un périphérique de sortie :<br/>
elle reçoit des données de l'ordinateur pour<br/>
produire un document physique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le transistor</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un transistor est un composant<br/>
électronique élémentaire utilisé pour fabriquer<br/>
des portes logiques au cœur du processeur. Il<br/>
ne sert pas à communiquer avec l'extérieur, il<br/>
est interne au matériel.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le clavier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le clavier est un périphérique d'entrée :<br/>
chaque touche enfoncée envoie un code à<br/>
l'ordinateur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La souris</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La souris est bien un périphérique d'entrée :<br/>
elle transmet à l'ordinateur la position du<br/>
curseur et les clics de l'utilisateur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q27 : Loi de Moore</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que dit la <strong>loi de Moore</strong>, énoncée par Gordon Moore en<br/>
1965 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Énoncée à partir de l'observation de quelques années,<br/>
la loi de Moore est devenue une feuille de route pour<br/>
toute l'industrie : les fondeurs prévoient leurs<br/>
investissements en supposant cette progression. Elle<br/>
ralentit aujourd'hui pour des raisons physiques (taille<br/>
des transistors approchant celle de l'atome).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La taille des ordinateurs est divisée par deux tous les deux ans</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la loi parle d'augmentation de la<br/>
<strong>densité</strong> de transistors, pas de réduction de la<br/>
taille des machines. Les ordinateurs ont rapetissé,<br/>
mais c'est une conséquence indirecte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La vitesse d'horloge des processeurs double tous les deux ans</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est une conséquence partielle, mais ce<br/>
n'est pas l'énoncé original. La vitesse d'horloge<br/>
a même cessé de croître depuis le milieu des<br/>
années 2000 (limites thermiques), alors que la<br/>
loi de Moore continue plus ou moins à s'appliquer.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La puissance d'un ordinateur double chaque année</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ni la période (deux ans, pas un an), ni<br/>
la grandeur visée (transistors, pas puissance) ne<br/>
sont correctes. La puissance globale a longtemps<br/>
suivi la loi, mais ce n'est pas l'énoncé direct.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le nombre de transistors intégrables sur une puce double environ tous les deux ans</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est une observation empirique sur<br/>
l'industrie des semi-conducteurs, qui s'est<br/>
remarquablement vérifiée pendant plus de cinquante<br/>
ans. Elle traduit la miniaturisation continue des<br/>
transistors, à coût équivalent.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q28 : Mesure de performance en FLOPS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que mesure l'unité <strong>FLOPS</strong> (\text{FLoating-point}<br/>
\text{Operations Per Second}) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour comparer des processeurs ou des<br/>
supercalculateurs, on utilise plusieurs unités<br/>
complémentaires : FLOPS (calculs flottants), MIPS<br/>
(instructions entières), Hz (cadence d'horloge),<br/>
Go/s (débit mémoire). Aucune n'est suffisante seule :<br/>
un programme peut être limité par les calculs, par<br/>
la mémoire ou par les entrées/sorties.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La fréquence d'horloge du processeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fréquence d'horloge se mesure en hertz<br/>
(Hz), pas en FLOPS. Un processeur peut tourner à<br/>
3 GHz et n'effectuer qu'un nombre limité de<br/>
calculs flottants par cycle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le débit du bus mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le débit mémoire se mesure en octets par<br/>
seconde (Go/s, GT/s). Les FLOPS portent sur les<br/>
calculs effectués, pas sur les transferts.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nombre d'instructions entières par seconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'unité <strong>MIPS</strong> (millions<br/>
d'instructions par seconde) qui mesure les<br/>
instructions entières. Les FLOPS visent<br/>
spécifiquement les calculs en virgule flottante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le nombre d'opérations sur des nombres flottants effectuées par seconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un FLOPS est une opération sur des<br/>
nombres à virgule flottante (addition,<br/>
multiplication, etc.) par seconde. Les<br/>
supercalculateurs modernes atteignent plusieurs<br/>
exaflops, soit 10¹⁸ opérations flottantes par<br/>
seconde.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
