Introduction

Les unités de mesures en informatique

Une ambiguïté historique

Historiquement, les informaticiens utilisaient les préfixes usuels (comme kilo et méga) pour désigner des puissances de 2 au lieu des puissances de 10. Ainsi, un kilooctet ne désignait non pas \(1,000\) octets comme on pourrait s’y attendre, mais \(2^{10} = 1024\) octets. Un mégaoctet ne désignait pas \(10^6 = 1,000,000\) octets mais \(2^{20} = 1024\times 1024\) octets, soit \(1024\) kilooctets.

L’ambiguïté entre ce système binaire et le système décimal usuel amenait notamment à des incohérences entre les capacités annoncées pour un disque dur (notamment sur les publicités) et les capacités affichés par un ordinateur:

En effet, un disque dur annoncé à \(100\) mégaoctets avait une capacité de \(100\) millions d’octets pour le fabriquant, soit \(100,000,000\) octets. Or, les systèmes d’exploitations comptant en base 2, le capacité réellement affichée était de \(95,4\text{Mo}\), puisque \(95,4\times 1024\times 1024 \approx 100,000,000\). Cela a notamment engendré des problèmes légaux pour publicité mensongère aux USA.

Normalisation internationale

Devant les problèmes, la communauté internationale a normalisé toutes les unités utilisées en informatique en 1998. Il y a à présent deux systèmes de mesure, selon que l’on compte en base 10 ou en base 2, ce qui enlève toute ambiguïté.

Les préfixes décimaux utilisés en informatique sont le kilooctet, le mégaoctet, etc. Ce sont les unités recommandées par le Système International (SI) de mesures:

Nom Symbole Valeur
kilooctet ko \(10^3\)
mégaoctet Mo \(10^6\)
gigaoctet Go \(10^9\)
téraoctet To \(10^{12}\)
pétaoctet Po \(10^{15}\)

Le kilooctet est de l’ordre de grandeur d’un petit fichier texte. Le mégaoctet correspond davantage à la taille d’une photographie de basse qualité. La mémoire vive d’un ordinateur moderne (en 2020) est de l’ordre de quelques gigaoctets (milliard d’octets). La capacité actuelle des disques durs et de l’ordre de quelques téraoctets (milliers de milliards d’octets). Le pétaoctet correspond à la taille des grandes bases de données stockées dans des datacenter de part le monde.

Les préfixes binaires ressemblent aux préfixes décimaux:

Nom Symbole Valeur
kibioctet Kio \(2^{10}\)
mébiooctet Mio \(2^{20}\)
gibioctet Gio \(2^{30}\)
tébiooctet Tio \(2^{40}\)
pébioctet Pio \(2^{50}\)

Nécessité des types construits en informatique

Devant la capacité toujours plus importante de mémoire disponible sur un ordinateur (de l’ordre de quelques milliards d’octets pour la mémoire vive à quelque milliers de milliards pour un disque dur de taille moyenne), la nécessité de pouvoir traiter des quantités de données importantes dans un langage de programmation se fait sentir.

Utiliser des variables associées à des données simples (comme des nombres entiers, des nombres à virgule flottante ou même des chaînes de caractères) ne permet guère d’envisager ce genre de traitement.

Imaginons par exemple que l’on souhaite gérer la liste des élèves d’une classe. On pourrait naïvement procéder comme suit:

prénom1 = "Pauline"
nom1 = "Durand"
prénom2 = "Antoine"
nom2 = "Darboux"
prénom3 = "Murielle"
nom3 = "Liskov"

On voit immédiatement que cela n’est guère extensible:

  • Il faut trouver des noms de variables pour chaque donnée.
  • La multiplication des noms de variables (même en utilisant un suffixe numérique) interdit tout traitement en boucle, ce qui annihile d’un seul coup un des atouts majeurs de la programmation.

Les langages de programmation offrent tous la possibilité d’utiliser des types de données construits, c’est-à-dire un moyen d’agréger plusieurs données en une seule entité, que l’on peut en outre référencer en une seule variable. On parle aussi de données structurées.

Python offre plusieurs moyens de réaliser cela: on dispose de tableaux qui permettent de regrouper séquentiellement plusieurs données de même type, de dictionnaires qui permettent d’associer des données à des noms, et enfin de tuples qui permettent de regrouper des données de types distincts.

Ces trois structures de données sont extrêmement puissantes, et seront étudiées tout au long de l’année de Première.