Préemption

Définition, exemples et bonnes pratiques

À retenir

  • Empêche un programme de monopoliser ou de faire geler l'ordinateur.
  • Assure la réactivité de l'interface utilisateur.
  • Est gérée par l'ordonnanceur (scheduler) du noyau du système d'exploitation.

La préemption est le mécanisme par lequel le système d'exploitation interrompt temporairement un programme en cours pour donner la priorité à un autre. Imaginez un agent de circulation qui arrête une file de voitures pour laisser passer une ambulance : le système s'assure ainsi qu'aucune application ne bloque tout l'ordinateur en monopolisant le processeur.

Étymologie

Issu du latin praeemptio (« achat préalable »), formé de prae (avant) et emptio (achat/prise). En informatique, le terme a évolué pour désigner le fait de reprendre la main sur une ressource (le processeur) avant qu'elle ne soit volontairement libérée.

Exemples d'usage

  • Le passage fluide entre votre logiciel de traitement de texte et votre navigateur web sur Windows, Linux ou macOS.
  • Une alerte de sécurité critique qui suspend un calcul lourd en arrière-plan pour être affichée immédiatement.
  • Le fonctionnement des smartphones où l'arrivée d'un appel téléphonique suspend les autres activités en cours.

Cas d'usage

Ce concept intervient principalement dans le multitâche des systèmes d'exploitation modernes. Il est également vital dans les systèmes temps réel (aviation, médical) où certaines tâches critiques ne peuvent pas attendre que les autres aient terminé pour s'exécuter.

Bonnes pratiques

Pour les développeurs, il est crucial de protéger les données partagées entre plusieurs tâches (via des mutex ou des verrous). Comme le système peut interrompre un programme à tout moment, deux tâches pourraient tenter de modifier la même information simultanément, provoquant des erreurs ou des plantages.

Synonymes

multitâche préemptif interruption forcée

Antonymes

multitâche coopératif exécution séquentielle

Conseil

Si vous débutez en programmation système, voyez la préemption comme une sécurité : c'est elle qui permet à votre souris de continuer à bouger même quand un logiciel lourd est en train de charger.

Questions fréquentes

Pourquoi la préemption est-elle meilleure que le mode coopératif ?

Dans le mode coopératif, si un logiciel bugge et refuse de rendre la main, tout l'ordinateur se fige. La préemption évite cela en redonnant le contrôle au système de force.

Est-ce que cela rend l'ordinateur moins puissant ?

Le processus d'interruption consomme un tout petit peu de temps processeur, mais c'est un prix négligeable pour obtenir un système stable et fluide.