Multiprogrammation

Définition, exemples et bonnes pratiques

À retenir

  • Elle maximise l'utilisation du processeur en évitant les temps morts.
  • Plusieurs programmes sont présents en mémoire, mais un seul est exécuté à un instant T précis sur un processeur simple.
  • C'est l'ancêtre direct du multitâche moderne.

La multiprogrammation est une technique qui permet à un ordinateur de charger plusieurs programmes en même temps dans sa mémoire vive. L'objectif est de ne jamais laisser le processeur (le cerveau de l'ordinateur) inactif : dès qu'un programme s'arrête pour attendre une information (comme une saisie clavier ou une lecture de fichier), le système passe immédiatement la main à un autre programme.

Étymologie

Composé du préfixe latin multi- (plusieurs) et du terme programmation. Ce concept est né dans les années 1960 avec l'apparition des gros ordinateurs centraux (mainframes) pour rentabiliser le temps de calcul extrêmement coûteux à l'époque.

Exemples d'usage

  • Un serveur web qui traite les requêtes de plusieurs utilisateurs en alternant très rapidement entre elles.
  • Un ordinateur de bureau qui maintient ouverts simultanément un navigateur web, un lecteur de musique et un éditeur de texte.

Cas d'usage

Ce concept intervient principalement au cœur du système d'exploitation. Il est essentiel pour la gestion des serveurs, des systèmes de temps partagé et de n'importe quel ordinateur moderne où l'on souhaite effectuer plusieurs activités sans que l'une bloque les autres.

Bonnes pratiques

Pour qu'elle soit efficace, le système doit disposer d'une gestion de mémoire rigoureuse afin d'éviter qu'un programme n'écrase les données d'un autre. Il faut également un algorithme d'ordonnancement (un arbitre) performant pour décider quel programme doit utiliser le processeur à chaque instant.

Synonymes

multitâche (par extension) exécution concurrente

Antonymes

monoprogrammation traitement séquentiel

Conseil

Imaginez un cuisinier seul dans sa cuisine : pendant que l'eau bout (attente), il commence à couper les légumes (autre tâche). C'est exactement ce que fait la multiprogrammation pour votre ordinateur.

Questions fréquentes

Quelle est la différence avec le multitâche ?

Le multitâche est une évolution de la multiprogrammation qui ajoute la notion de partage de temps (time-sharing), permettant à l'utilisateur d'interagir avec tous les programmes de façon fluide.

Est-ce la même chose que le multiprocessing ?

Non. La multiprogrammation gère plusieurs programmes sur un seul processeur, alors que le multiprocessing utilise physiquement plusieurs processeurs en parallèle.