Ordonnançabilité

Définition, exemples et bonnes pratiques

À retenir

  • C'est la garantie théorique que tout sera fini à temps.
  • C'est une notion vitale pour la sécurité des systèmes embarqués.
  • Elle dépend à la fois de la puissance du matériel et de l'efficacité du logiciel.

L'ordonnançabilité désigne la capacité d'un ensemble de tâches informatiques à être organisées et exécutées par un processeur tout en respectant des délais précis. C'est un peu comme gérer l'emploi du temps d'une cuisine de restaurant : on vérifie s'il est physiquement possible de préparer tous les plats commandés avant que les clients ne s'impatientent, compte tenu du nombre de fourneaux disponibles.

Étymologie

Il s'agit d'un néologisme construit sur le verbe « ordonnancer » (organiser selon un ordre précis) et le suffixe « -abilité » qui exprime une possibilité ou une qualité. C'est l'équivalent français du terme technique anglais schedulability.

Exemples d'usage

  • Le système de bord d'un avion qui doit traiter les données des capteurs toutes les 10 millisecondes.
  • Un robot industriel dont les mouvements doivent être synchronisés à la microseconde près pour éviter une collision.
  • Le moteur d'un jeu vidéo qui doit calculer les images et la physique avant chaque rafraîchissement d'écran.

Cas d'usage

Ce concept est crucial dans les systèmes temps réel (aéronautique, automobile, médical) et le développement de noyaux de systèmes d'exploitation. Il permet de prouver mathématiquement qu'aucune tâche critique ne sera en retard, même si le processeur est très sollicité.

Bonnes pratiques

Pour garantir l'ordonnançabilité, il faut estimer avec précision le temps d'exécution maximal de chaque programme (le pire cas possible). Il est aussi recommandé d'utiliser des algorithmes d'ordonnancement éprouvés, comme le Rate Monotonic ou le Earliest Deadline First.

Synonymes

faisabilité temporelle capacité d'ordonnancement

Antonymes

non-ordonnançabilité

Conseil

Si vous travaillez sur des systèmes simples (web, applications mobiles), vous n'aurez pas souvent à calculer l'ordonnançabilité. En revanche, si vous vous lancez dans l'électronique ou l'embarqué, apprenez à distinguer le temps d'exécution moyen du temps d'exécution critique.

Questions fréquentes

Que se passe-t-il si un système n'est pas ordonnançable ?

Le système risque de rater des échéances (deadlines). Dans un système critique, cela peut entraîner une panne matérielle ou un accident.

Est-ce que 'plus de puissance' règle toujours le problème ?

Pas forcément. Même avec un processeur ultra-rapide, une mauvaise organisation des priorités peut bloquer une tâche urgente au profit d'une tâche secondaire.