Adloun

Un processeur exécute une instruction en nanoseconde

Exercice d'entraînement · niveau 3 (difficile) · NSI (première), chapitre 9 — Machines, systèmes et réseaux · Circuits et langage machine

Énoncé

Un processeur exécute une instruction en nanoseconde. On lui donne le programme de boucle du cours, avec et .

Corrigé

1. Deux CHARGE au début, un RANGE à la fin ; le test fois, le corps ( et ) fois chacun :

Contrôle : donne , ce qu'on avait compté à la main dans l'exercice de TD ; donne , le programme qui n'entre jamais dans la boucle.

2. instructions, soit seconde.

3. Le rapport est d'environ . Il ne mesure pas une qualité de langage : il mesure ce qu'une instruction Python fait par rapport à une instruction machine. Exécuter n = n - 1 en Python, c'est retrouver l'objet entier, vérifier son type, allouer un nouvel objet, mettre à jour la variable — des dizaines d'instructions machine là où le processeur en fait une. En échange, Python garantit ce que le langage machine ne garantit pas : pas de débordement d'entier, pas d'écriture hors mémoire, un message d'erreur plutôt qu'un plantage.

La conclusion honnête : on choisit un niveau de langage, pas une qualité. Le chapitre 7 en donne l'autre moitié : changer d'algorithme fait gagner des facteurs , là où changer de langage en fait gagner .

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.