Ressource critique

Définition, exemples et bonnes pratiques

À retenir

  • Accès exclusif : un seul utilisateur à la fois.
  • Nécessite une protection (verrouillage) pour éviter les crashs.
  • Un mauvais partage peut mener à une condition de concurrence (race condition).

Une ressource critique est un composant (matériel ou logiciel) qui ne peut être utilisé que par un seul programme ou une seule tâche à la fois. Si plusieurs processus essayaient d'y accéder en même temps, cela provoquerait des erreurs ou des incohérences, un peu comme deux personnes essayant d'écrire simultanément sur la même feuille de papier avec le même stylo.

Étymologie

Le terme vient du latin resurgere (ressource, ce qui aide) associé à l'adjectif critique (du grec kritikos), qui désigne ici un point de décision crucial ou une zone de danger. En informatique, cela souligne l'aspect vital de la gestion de cet élément pour la stabilité du système.

Exemples d'usage

  • Une imprimante : elle ne peut imprimer qu'un seul document à la fois.
  • Un fichier de configuration : si deux logiciels tentent de le modifier exactement au même instant, le fichier risque d'être corrompu.
  • Une variable globale dans un code informatique partagé entre plusieurs fils d'exécution (threads).

Cas d'usage

On rencontre ce concept principalement en programmation concurrente (multithreading) et dans la conception des systèmes d'exploitation. Il intervient dès qu'un système doit coordonner l'accès à du matériel (disque dur, port série) ou à des données partagées pour éviter les conflits.

Bonnes pratiques

Pour gérer une ressource critique, il est impératif d'utiliser des mécanismes de synchronisation comme les verrous (locks), les mutex ou les sémaphores. La règle d'or est de libérer la ressource le plus rapidement possible après usage pour ne pas bloquer les autres programmes.

Synonymes

ressource exclusive section critique (pour le code)

Antonymes

ressource partageable ressource réentrante

Conseil

Si vous débutez en programmation, voyez la ressource critique comme une place de parking unique : avant de s'y garer, il faut vérifier qu'elle est libre et mettre un panneau 'occupé' pour que personne d'autre ne tente de s'y mettre en même temps que vous.

Questions fréquentes

Que se passe-t-il si on ne protège pas une ressource critique ?

Cela crée une 'race condition' (condition de concurrence) : les données peuvent être corrompues, le programme peut produire des résultats imprévisibles ou le système peut totalement planter.

Comment un programme réserve-t-il une ressource ?

Il utilise généralement un 'mutex' (mutual exclusion), une sorte de ticket qui donne le droit exclusif d'accès tant qu'il n'est pas rendu.