<?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>Le génie de von Neumann : permettre au programme d'être traité<br/>
comme une donnée (mémoire unique), ce qui ouvre la voie aux<br/>
compilateurs, aux 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, la souris et les haut-parleurs</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="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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Internet, l'écran et le clavier de l'ordinateur</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="100" format="html">
    <text><![CDATA[<p>Un processeur, une mémoire 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>
</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</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 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 durablement 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>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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Afficher les images et les vidéos à 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>
</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 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="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>
  <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 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="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>
</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, se répète sans<br/>
interruption : après chaque exécution, le compteur<br/>
ordinal désigne l'instruction suivante et le cycle<br/>
recommence.</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 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 puis attendre une action de l'utilisateur</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>Lire, décoder, 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 : le processeur lit<br/>
l'instruction désignée par le compteur ordinal, la<br/>
décode puis l'exécute.</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>Un bus est partagé par plusieurs composants : le<br/>
processeur indique sur le bus d'adresses avec quel<br/>
emplacement il échange, et les valeurs circulent<br/>
sur le bus 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>Un type particulier 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>Des fils conducteurs reliant les composants entre eux</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>
  <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>
</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>Un langage de très haut niveau comme Python ou Java</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>
  <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, proche 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>
</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="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="100" format="html">
    <text><![CDATA[<p>Elle effectue les calculs arithmétiques et logiques</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 gère tous les périphériques d'entrée et de 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="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="100" format="html">
    <text><![CDATA[<p>Une mémoire ultra-rapide interne au processeur</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>Un fichier où l'on liste les utilisateurs du système</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec les utilisateurs.</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>
</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 exécute plus<br/>
d'opérations par cycle ou 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="100" format="html">
    <text><![CDATA[<p>Le nombre de cycles par seconde de l'horloge</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 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="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 taille des données traitées par instruction</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 : Reconnaître un actionneur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un robot aspirateur comporte les composants suivants. Lequel est un<br/>
<strong>actionneur</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les capteurs transmettent des mesures au programme (entrées), les<br/>
actionneurs exécutent ses commandes (sorties) : moteurs,<br/>
haut-parleurs, voyants lumineux, 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>Le détecteur de vide au bord des escaliers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce détecteur est un <strong>capteur</strong> : il signale au programme<br/>
l'absence de sol. C'est ensuite le programme qui commande les<br/>
moteurs pour s'arrêter.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La caméra qui repère les obstacles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la caméra est un <strong>capteur</strong> : elle recueille des images<br/>
que le programme analyse. Elle ne produit aucune action sur<br/>
l'environnement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le moteur qui fait tourner les roues</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un actionneur agit sur le monde physique à partir<br/>
d'une commande du programme. Le moteur transforme un signal<br/>
électrique en mouvement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le capteur de choc placé à l'avant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le capteur de choc est un <strong>capteur</strong> : il mesure une<br/>
grandeur physique (un contact) et transmet l'information au<br/>
programme, sans agir lui-même.</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 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>
  <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>
</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>Stocker les fichiers temporaires du système d'exploitation</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>Garder les données récentes pour un accès plus rapide</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>
  <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>
</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 Python, on ne manipule pas directement les<br/>
adresses mémoire : l'interpréteur et le système<br/>
d'exploitation décident où ranger les valeurs.</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 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>
  <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>Un identifiant unique pour chaque programme installé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une adresse mémoire ne désigne pas un<br/>
programme, mais un emplacement précis de la<br/>
mémoire.</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>
</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 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="100" format="html">
    <text><![CDATA[<p>Ses registres et adresses 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 (soit<br/>
16 exbioctets, 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 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 possède exactement 64 cœurs de calcul</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>
  <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>
</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 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il fonctionne entièrement 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="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="100" format="html">
    <text><![CDATA[<p>Il exécute plusieurs instructions en parallèle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec N cœurs, on peut exécuter<br/>
N programmes en vrai parallèle, un par cœur.<br/>
C'est devenu indispensable car les fréquences<br/>
d'horloge stagnent depuis 2005 environ.</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 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>
  <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 du 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 de programmation de haut niveau comme C ou Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : C et Python sont des langages de <strong>haut niveau</strong>, qu'il faut traduire en langage machine<br/>
pour qu'ils s'exécutent.</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="100" format="html">
    <text><![CDATA[<p>Le registre pointant la prochaine instruction</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 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="0" format="html">
    <text><![CDATA[<p>Un compteur qui mesure la durée totale 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 — 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>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="100" format="html">
    <text><![CDATA[<p>Le SSD utilise de la mémoire flash, le HDD des plateaux mécaniques</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>
  <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="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>
</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 signifie Read-Only Memory (mémoire en lecture<br/>
seule) ; RAM signifie Random Access Memory (mémoire<br/>
à accès direct). Aujourd'hui, la « ROM » des<br/>
ordinateurs est souvent une mémoire flash,<br/>
modifiable mais non volatile.</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 ROM est généralement plus grande que la 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, la RAM bien plus grande<br/>
pour les programmes en cours.</p>]]></text>
    </feedback>
  </answer>
  <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>La ROM est non volatile et fixe, la RAM volatile et modifiable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la ROM conserve son contenu,<br/>
fixé à la fabrication, même quand l'ordinateur<br/>
est éteint. La RAM est la zone de travail<br/>
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>
</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="100" format="html">
    <text><![CDATA[<p>Le nombre de transistors croît toujours, mais la performance par cœur stagne</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 de<br/>
chaque cœur stagne depuis 2005 environ.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le modèle de von Neumann est totalement 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>
  <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="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>
</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="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>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>
  <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="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>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q27 : Comparer deux processeurs sur une tâche parallèle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Deux processeurs sont proposés pour un travail de <strong>rendu vidéo</strong>,<br/>
tâche qui se parallélise très bien :<br/>
le processeur <strong>A</strong> est cadencé à 4 GHz et possède 4 cœurs ;<br/>
le processeur <strong>B</strong> est cadencé à 3 GHz et possède 8 cœurs.<br/>
Lequel sera, en pratique, le plus performant sur cette tâche ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sur une tâche très parallèle, le débit total se rapproche<br/>
du produit fréquence par nombre de cœurs ; sur une tâche<br/>
séquentielle (qui n'utilise qu'un cœur), c'est la fréquence<br/>
seule qui compte. Le choix d'un processeur dépend donc du<br/>
profil de la charge de travail visée.</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>Le processeur B, car doubler les cœurs compense l'écart de fréquence sur une tâche parallèle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour une tâche qui se parallélise bien,<br/>
le débit total est approximativement proportionnel au<br/>
produit fréquence par nombre de cœurs.<br/>
Pour A on a 4 × 4 = 16 unités de travail<br/>
par seconde (en notation simplifiée), et pour B<br/>
3 × 8 = 24. B l'emporte donc nettement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucun des deux, car la performance d'un processeur ne dépend ni de la fréquence ni du nombre de cœurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces deux paramètres sont des indicateurs réels<br/>
de performance, simplement non suffisants à eux seuls<br/>
(la taille des caches, l'architecture interne et le jeu<br/>
d'instructions interviennent aussi).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le processeur A, car les processeurs à haute fréquence sont systématiquement les plus récents</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fréquence d'horloge stagne depuis le milieu<br/>
des années 2000. Un processeur à 3 GHz peut être bien<br/>
plus récent et performant qu'un autre à 4 GHz.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le processeur A, car une fréquence d'horloge plus élevée signifie qu'il exécute toujours plus d'instructions par seconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fréquence d'horloge ne mesure que la cadence<br/>
d'un seul cœur. Pour les charges parallèles, le nombre<br/>
de cœurs est au moins aussi déterminant.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q28 : Pourquoi la fréquence stagne</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le nombre de transistors par puce ne cesse d'augmenter<br/>
régulièrement, mais la <strong>fréquence d'horloge</strong> des<br/>
processeurs grand public a cessé d'augmenter significativement<br/>
depuis le milieu des années 2000 (elle plafonne autour de<br/>
3 à 5 GHz). Quelle en est la cause principale ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cette barrière physique a réorienté l'industrie vers le<br/>
<strong>parallélisme</strong> (multi-cœurs, GPU, processeurs spécialisés)<br/>
pour continuer à exploiter l'augmentation du nombre de<br/>
transistors. C'est une illustration concrète des limites<br/>
de la loi de Moore, qui décrit la densité d'intégration et<br/>
non la vitesse d'horloge.</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>La consommation et la chaleur croissent trop vite avec la fréquence pour être évacuées</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la puissance dissipée par un circuit<br/>
augmente très vite avec la fréquence. Au-delà d'un<br/>
certain seuil, la chaleur produite ne peut plus être<br/>
évacuée sans refroidissement extrême. Les fabricants<br/>
ont donc privilégié la multiplication des cœurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les constructeurs se sont mis d'accord pour ne plus vendre de processeurs au-dessus de 5 GHz, par souci de standardisation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'existe aucun accord de ce type, la<br/>
contrainte est physique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les transistors ne sont plus utilisés dans les processeurs récents, qui reposent sur d'autres technologies</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les processeurs actuels sont toujours composés<br/>
de milliards de transistors, simplement gravés plus<br/>
finement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les utilisateurs ne demandent plus de processeurs rapides depuis l'arrivée des smartphones</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la demande de performance n'a jamais cessé,<br/>
la limite est technologique et non commerciale.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q29 : Rôle d'un capteur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le rôle d'un <strong>capteur</strong> dans un système<br/>
informatique ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Capteurs et actionneurs sont les périphériques des<br/>
objets connectés : le capteur est une entrée (il<br/>
mesure), l'actionneur une sortie (il agit), et le<br/>
programme fait le lien entre les deux.</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>Produire un mouvement ou une action physique (rotation, chauffe, éclairage) à partir d'un ordre du programme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est la définition d'un actionneur, la sortie du<br/>
système.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Convertir une grandeur physique (température, lumière, distance) en valeur lisible par un programme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le capteur est une entrée : il mesure et fournit<br/>
un nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Exécuter le programme qui traite les mesures et décide des actions à mener en fonction des résultats</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>L'exécution revient au processeur ; le capteur ne<br/>
fait que fournir des données.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Conserver les mesures effectuées (température, lumière, distance) afin que le programme les relise plus tard</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le stockage relève de la mémoire ; le capteur<br/>
mesure, il ne retient rien.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q30 : Le sens des informations dans un thermostat</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un thermostat connecté comprend une sonde de<br/>
température, un microcontrôleur qui exécute le<br/>
programme et un relais qui allume le chauffage.<br/>
Dans quel sens circulent les informations ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La chaîne est toujours la même : capteur, puis<br/>
programme, puis actionneur. Le capteur est un<br/>
périphérique d'entrée, l'actionneur un périphérique<br/>
de sortie ; le programme lit l'un et commande<br/>
l'autre.</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>De la sonde vers le relais directement, le programme se contentant d'observer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Sans le programme, aucune décision n'est prise ;<br/>
le relais ne sait pas interpréter une<br/>
température.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Du relais vers le programme, puis du programme vers la sonde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le relais n'a rien à mesurer et la sonde ne<br/>
reçoit pas d'ordre : les rôles sont inversés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>De la sonde vers le programme, puis du programme vers le relais</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La sonde (capteur) fournit une mesure, le<br/>
programme décide, le relais (actionneur) exécute.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Du programme vers la sonde et vers le relais, qui lui renvoient tous deux une mesure</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Seule la sonde mesure ; le relais reçoit un<br/>
ordre, il ne renvoie pas de valeur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q31 : Convertir la lecture d'un capteur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un capteur de tension fournit au programme un entier<br/>
n compris entre 0 et 1023, proportionnel à une<br/>
tension de 0 à 5 V (0 pour 0 V, 1023 pour<br/>
5 V). Quelle expression calcule la tension en<br/>
volts ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une conversion proportionnelle s'écrit<br/>
valeur_max_physique * n / valeur_max_capteur.<br/>
Vérifier sur les bornes (0 et 1023) suffit à<br/>
écarter les expressions fausses ; n = 512 donne<br/>
environ 2{,}5 V.</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>n * 1023 / 5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Même erreur : la tension calculée grimperait<br/>
au-delà de 200 000 au lieu de s'arrêter à 5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>n * 5 / 1023</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Pour n = 1023, on obtient 5{,}0 ; pour<br/>
n = 0, on obtient 0 : la relation est bien<br/>
proportionnelle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>5 / n</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Ce quotient décroît quand n augmente et échoue<br/>
pour n = 0 (division par zéro).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n / 5 * 1023</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Pour n = 1023, cette expression dépasse<br/>
200 000 ; les facteurs sont inversés.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q32 : Dérouler quatre instructions machine</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un processeur exécute la séquence suivante, où LDR charge une<br/>
valeur dans un registre, ADD additionne et STR range un registre<br/>
en mémoire :<br/>
`<code><br/>
LDR R0, 5<br/>
LDR R1, 3<br/>
ADD R2, R0, R1<br/>
STR R2, [100]<br/>
</code>`<br/>
Que contient la case mémoire d'adresse 100 à la fin ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une instruction machine fait une seule chose : charger, calculer ou<br/>
ranger. Dérouler un programme consiste à suivre les registres et la<br/>
mémoire instruction par instruction.</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>100</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 100 est l'adresse où le résultat est rangé, pas la<br/>
valeur rangée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ADD R2, R0, R1 calcule R0 + R1, pas leur<br/>
différence.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : R0 reçoit 5, R1 reçoit 3, R2<br/>
reçoit leur somme 8, puis cette somme est écrite à<br/>
l'adresse 100.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>15</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ADD additionne, elle ne multiplie pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q33 : Le goulot d'étranglement de von Neumann</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On parle de « goulot d'étranglement de von Neumann ». De quoi<br/>
s'agit-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les mémoires caches, placées près du processeur, servent à réduire<br/>
ce goulot en évitant une partie des accès à la mémoire vive.</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>Du bus unique entre processeur et mémoire, qui limite le débit</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : instructions et données transitent par le même<br/>
chemin. Le processeur, bien plus rapide que la mémoire, passe<br/>
une partie de son temps à attendre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>De la chaleur dégagée par le processeur à haute fréquence</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la dissipation thermique limite la fréquence, mais ce<br/>
n'est pas ce que désigne l'expression.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>De l'impossibilité de stocker un programme et ses données en mémoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : stocker le programme en mémoire est précisément le<br/>
principe du modèle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>De la taille limitée des registres du processeur, trop peu nombreux</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les registres sont rapides et peu nombreux par choix ;<br/>
le goulot concerne les échanges avec la mémoire.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q34 : Un intrus parmi les composants</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les éléments suivants, lequel ne fait pas partie du modèle<br/>
de von Neumann ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le modèle de von Neumann décrit une organisation matérielle ; les<br/>
logiciels, système d'exploitation compris, s'exécutent dessus.</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>Le système d'exploitation</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le système d'exploitation est un logiciel. Le<br/>
modèle de von Neumann décrit le matériel : unité de commande,<br/>
unité arithmétique et logique, mémoire, entrées-sorties.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'unité arithmétique et logique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : elle fait partie du processeur décrit par le modèle,<br/>
chargée des calculs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les dispositifs d'entrée et de sortie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les entrées-sorties sont l'un des quatre blocs du<br/>
modèle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La mémoire contenant programme et données</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la mémoire unique pour le programme et les données est<br/>
au cœur du modèle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q35 : La durée d'un milliard d'instructions</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un processeur cadencé à 2 GHz exécute en moyenne une instruction<br/>
par cycle d'horloge. Combien de temps lui faut-il pour exécuter<br/>
un milliard d'instructions ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La fréquence donne le nombre de cycles par seconde. À une<br/>
instruction par cycle, un processeur à 2 GHz en traite<br/>
2 milliards chaque seconde.</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>Environ 2 s</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le rapport est inversé. La durée est le nombre<br/>
d'instructions divisé par la fréquence, pas le contraire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Environ 2 × 10⁹ s</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 2 × 10⁹ est un nombre de cycles, pas une durée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Environ 0{,}5 s</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 2 GHz, c'est 2 × 10⁹ cycles par<br/>
seconde, donc autant d'instructions. un milliard d'instructions<br/>
demandent 0{,}5 s.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Environ 1 s, une instruction par nanoseconde</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : à 2 GHz, un cycle dure moins d'une nanoseconde ;<br/>
la durée dépend de la fréquence et du nombre d'instructions.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q36 : Le jeu d'instructions</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'appelle-t-on le jeu d'instructions d'un processeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Deux processeurs de familles différentes n'ont pas le même jeu<br/>
d'instructions : un programme compilé pour l'un ne s'exécute pas<br/>
sur l'autre.</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>L'ensemble des opérations élémentaires qu'il sait exécuter</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : charger, ranger, additionner, comparer, sauter<br/>
: chaque processeur dispose d'une liste finie d'instructions<br/>
câblées, chacune avec son code binaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les fonctions prédéfinies d'un langage comme Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les fonctions d'un langage sont traduites en de<br/>
nombreuses instructions machine.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le programme actuellement en cours d'exécution sur la machine</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un programme est une suite d'instructions choisies<br/>
dans le jeu ; le jeu lui-même est fixé par le processeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La liste des périphériques reconnus par la machine</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les périphériques relèvent des entrées-sorties, pas du<br/>
jeu d'instructions.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q37 : Le rôle d'un saut conditionnel</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert une instruction de saut conditionnel dans un programme<br/>
en langage machine ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Toutes les structures de contrôle d'un langage évolué, conditions<br/>
et boucles, se ramènent en langage machine à des sauts,<br/>
conditionnels ou non.</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>À modifier le compteur ordinal selon un test</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sans saut, les instructions s'exécutent dans<br/>
l'ordre. Le saut conditionnel permet de passer ailleurs si une<br/>
condition est vraie, ce qui traduit if et while.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À transférer des données entre deux registres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le transfert entre registres est une instruction de<br/>
déplacement, pas un saut.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À sauter une instruction erronée pour éviter un plantage</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le saut n'a rien d'un mécanisme de sécurité ; il<br/>
exprime la logique du programme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À accélérer le processeur en passant au cycle suivant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un saut ne change pas la vitesse, seulement l'adresse<br/>
de la prochaine instruction.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q38 : Le compteur ordinal après une instruction</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le compteur ordinal vaut 100 et l'instruction située à cette<br/>
adresse occupe 4 octets. En l'absence de saut, que vaut le<br/>
compteur ordinal après son exécution ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le compteur ordinal contient l'adresse de la prochaine instruction.<br/>
Il progresse automatiquement, et seuls les sauts le modifient<br/>
autrement.</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>96</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme avance vers les adresses croissantes, sauf<br/>
saut explicite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>100</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : s'il ne changeait pas, la même instruction serait<br/>
exécutée indéfiniment.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>101</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les adresses comptent des octets, et une instruction en<br/>
occupe 4.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>104</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le compteur ordinal avance de la taille de<br/>
l'instruction pour désigner la suivante, à l'adresse<br/>
100 + 4.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q39 : Une boucle en langage machine</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un processeur exécute ce programme, où SUB R0, R0, 1 retire 1 à<br/>
R0, CMP compare et BNE saute à l'étiquette si la dernière<br/>
comparaison n'a pas donné l'égalité :<br/>
`<code><br/>
    LDR R0, 3<br/>
boucle:<br/>
    SUB R0, R0, 1<br/>
    CMP R0, 0<br/>
    BNE boucle<br/>
</code><br/>
Combien de fois l'instruction SUB` est-elle exécutée ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une boucle en langage machine est un saut arrière conditionnel.<br/>
La dérouler, c'est suivre le registre compteur jusqu'à ce que le<br/>
saut ne soit plus pris.</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>4 fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : dès que R0 vaut 0, BNE ne saute plus et la<br/>
boucle s'arrête.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une infinité de fois, BNE sautant toujours</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : BNE ne saute que si la comparaison n'a pas donné<br/>
l'égalité, ce qui finit par arriver.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>3 fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : R0 part de 3 et perd 1 à chaque tour. Le<br/>
saut arrière a lieu tant que R0 n'est pas nul, soit 3<br/>
passages par SUB.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le dernier tour, qui fait passer R0 de 1 à 0,<br/>
exécute aussi SUB avant que BNE ne laisse passer.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q40 : La capacité d'une mémoire adressable</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Les adresses d'une mémoire sont codées sur 16 bits et chaque<br/>
adresse désigne un octet. Combien d'octets cette mémoire peut-elle<br/>
contenir au maximum ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La taille des adresses fixe la mémoire accessible : 32 bits<br/>
donnent 4 Gio, raison pour laquelle les architectures sont<br/>
passées à 64 bits.</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>16 octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 16 est le nombre de bits d'une adresse, pas le<br/>
nombre d'adresses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>65 536 octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 16 bits permettent 2¹⁶ = 65 536 adresses<br/>
différentes, donc autant d'octets adressables.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>256 octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le nombre d'adresses est une puissance de deux,<br/>
2¹⁶.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>32 octets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les adresses se combinent, elles ne s'additionnent<br/>
pas ; chaque bit double le nombre d'adresses.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Architectures matérielles — Q41 : Un document perdu à la coupure de courant</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pendant une coupure de courant, Lina perd le texte qu'elle n'avait<br/>
pas enregistré, mais retrouve ses fichiers précédents. Comment<br/>
l'expliquer ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mémoire vive rapide mais volatile, stockage de masse lent mais<br/>
durable : enregistrer fait passer les données de l'une à l'autre.</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>Les fichiers précédents étaient en mémoire vive et le texte sur le disque</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse : ce qui survit à la coupure est ce<br/>
qui était sur le disque.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le système d'exploitation efface les documents ouverts en cas de panne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun effacement n'est décidé par le système ; la<br/>
mémoire vive perd simplement son contenu sans courant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le disque n'avait plus de place pour enregistrer automatiquement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la place n'est pas en cause ; sans ordre<br/>
d'enregistrement, le texte n'avait jamais quitté la mémoire<br/>
vive.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le texte était en mémoire vive, volatile, les fichiers sur le disque</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la mémoire vive s'efface sans alimentation.<br/>
Enregistrer copie les données vers un support qui les conserve<br/>
hors tension.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
